aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore11
-rw-r--r--DPDK_VPP_VER2
-rw-r--r--GPL/tools/trex/trex_astf_assert.py2
-rw-r--r--GPL/tools/trex/trex_astf_profile.py6
-rw-r--r--GPL/tools/trex/trex_astf_stop.py65
-rw-r--r--GPL/tools/trex/trex_stl_assert.py9
-rw-r--r--GPL/tools/trex/trex_stl_profile.py160
-rw-r--r--GPL/tools/trex/trex_stl_stop.py67
-rw-r--r--GPL/traffic_profiles/trex/profile_trex_astf_base_class.py2
-rw-r--r--GPL/traffic_profiles/trex/profile_trex_stateless_scale_class.py196
-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-ip4dst1-udir.py84
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst1000-udir.py107
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst10000-udir.py107
-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-ip4dst2-udir.py107
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst20000-udir.py107
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst4-udir.py107
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst40-udir.py107
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst400-udir.py107
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst40000-udir.py107
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst5000-udir.py107
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst60000-udir.py107
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst8-udir.py107
-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.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1000-2cnf.py165
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1000-4cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1000-8cnf.py166
-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.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst10000-2cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst10000-4cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst10000-8cnf.py166
-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-ip4dst2.py135
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst20000-1cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst20000-2cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst20000-4cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst20000-8cnf.py166
-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.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst4-4cnf.py166
-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.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40-2cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40-4cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40-8cnf.py166
-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.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst400-2cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst400-4cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst400-8cnf.py166
-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.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40000-2cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40000-4cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40000-8cnf.py166
-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.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst5000-2cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst5000-4cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst5000-8cnf.py166
-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.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst60000-2cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst60000-4cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst60000-8cnf.py166
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst60000.py136
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst8.py135
-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.py2
-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-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-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-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.py139
-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.py139
-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.py139
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst500000-2p.py113
-rw-r--r--GPL/traffic_profiles/trex/trex-stl-ethip6-ip6src253.py139
-rw-r--r--PyPI/MLRsearch/MANIFEST.in6
-rw-r--r--PyPI/MLRsearch/README.rst144
-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.py52
-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.md106
-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_UBUNTU_FOCAL1
-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/Procfile (renamed from resources/tools/dash/app/Procfile)0
-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.py1342
-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 -> 8303 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/_metadata/trending_soakbin0 -> 9328 bytes
-rw-r--r--csit.infra.dash/app/cdash/data/data.py421
-rw-r--r--csit.infra.dash/app/cdash/data/data.yaml488
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.py311
-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.py (renamed from resources/tools/dash/app/pal/report/report.py)18
-rw-r--r--csit.infra.dash/app/cdash/routes.py (renamed from resources/tools/dash/app/pal/routes.py)10
-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.svg (renamed from resources/tools/dash/app/pal/static/dist/img/favicon.svg)0
-rw-r--r--csit.infra.dash/app/cdash/static/img/logo.svg (renamed from resources/tools/dash/app/pal/static/img/logo.svg)0
-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.py679
-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.py469
-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.py (renamed from resources/tools/dash/app/pal/utils/url_processing.py)6
-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.py (renamed from resources/tools/dash/app/wsgi.py)5
-rwxr-xr-xcsit.infra.dash/do_run.sh10
-rw-r--r--csit.infra.dash/docker-compose.yaml16
-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.json40
-rw-r--r--csit.infra.etl/coverage_mrr_rls2402.py170
-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_rls2206.py171
-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.json40
-rw-r--r--csit.infra.etl/iterative_mrr_rls2402.py170
-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_rls2206.py171
-rw-r--r--csit.infra.etl/iterative_soak_rls2402.py170
-rw-r--r--csit.infra.etl/local.py2
-rw-r--r--csit.infra.etl/stats.py2
-rw-r--r--csit.infra.etl/trending.py172
-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.json50
-rw-r--r--csit.infra.etl/trending_mrr.py171
-rw-r--r--csit.infra.etl/trending_ndrpdr.json10
-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.json10
-rw-r--r--csit.infra.etl/trending_soak.py171
-rw-r--r--csit.infra.hugo/docker-compose.yaml23
-rw-r--r--csit.infra.vagrant/Vagrantfile21
-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.md139
-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.md386
-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.rst119
-rw-r--r--docs/cpta/index.rst83
-rw-r--r--docs/cpta/introduction/dashboard.rst293
-rw-r--r--docs/cpta/introduction/failures.rst104
-rw-r--r--docs/cpta/introduction/introduction.rst24
-rw-r--r--docs/cpta/introduction/weekly.rst107
-rw-r--r--docs/cpta/methodology/index.rst8
-rw-r--r--docs/cpta/methodology/overview.rst6
-rw-r--r--docs/cpta/methodology/trend_analysis.rst229
-rw-r--r--docs/cpta/methodology/trend_presentation.rst35
-rw-r--r--docs/cpta/ndrpdr_latency_trending/container_memif-2n-clx-cx556a.rst18
-rw-r--r--docs/cpta/ndrpdr_latency_trending/container_memif-2n-clx-e810cq.rst18
-rw-r--r--docs/cpta/ndrpdr_latency_trending/container_memif-2n-clx-xxv710.rst34
-rw-r--r--docs/cpta/ndrpdr_latency_trending/container_memif-2n-icx-xxv710.rst18
-rw-r--r--docs/cpta/ndrpdr_latency_trending/container_memif-2n-skx-x710.rst18
-rw-r--r--docs/cpta/ndrpdr_latency_trending/container_memif-2n-skx-xxv710.rst34
-rw-r--r--docs/cpta/ndrpdr_latency_trending/container_memif-3n-skx-x710.rst18
-rw-r--r--docs/cpta/ndrpdr_latency_trending/container_memif-3n-skx-xxv710.rst34
-rw-r--r--docs/cpta/ndrpdr_latency_trending/container_memif.rst11
-rw-r--r--docs/cpta/ndrpdr_latency_trending/ip4-2n-clx-cx556a.rst50
-rw-r--r--docs/cpta/ndrpdr_latency_trending/ip4-2n-clx-e810cq.rst66
-rw-r--r--docs/cpta/ndrpdr_latency_trending/ip4-2n-clx-x710.rst18
-rw-r--r--docs/cpta/ndrpdr_latency_trending/ip4-2n-clx-xxv710.rst98
-rw-r--r--docs/cpta/ndrpdr_latency_trending/ip4-2n-icx-xxv710.rst66
-rw-r--r--docs/cpta/ndrpdr_latency_trending/ip4-2n-skx-x710.rst18
-rw-r--r--docs/cpta/ndrpdr_latency_trending/ip4-2n-skx-xxv710.rst82
-rw-r--r--docs/cpta/ndrpdr_latency_trending/ip4-3n-icx-xxv710.rst18
-rw-r--r--docs/cpta/ndrpdr_latency_trending/ip4-3n-skx-x710.rst18
-rw-r--r--docs/cpta/ndrpdr_latency_trending/ip4-3n-skx-xxv710.rst34
-rw-r--r--docs/cpta/ndrpdr_latency_trending/ip4.rst15
-rw-r--r--docs/cpta/ndrpdr_latency_trending/ip4_tunnels-2n-icx-xxv710.rst18
-rw-r--r--docs/cpta/ndrpdr_latency_trending/ip4_tunnels-3n-icx-xxv710.rst18
-rw-r--r--docs/cpta/ndrpdr_latency_trending/ip4_tunnels-3n-skx-xxv710.rst34
-rw-r--r--docs/cpta/ndrpdr_latency_trending/ip4_tunnels.rst10
-rw-r--r--docs/cpta/ndrpdr_latency_trending/ip6-2n-clx-cx556a.rst18
-rw-r--r--docs/cpta/ndrpdr_latency_trending/ip6-2n-clx-e810cq.rst18
-rw-r--r--docs/cpta/ndrpdr_latency_trending/ip6-2n-clx-x710.rst18
-rw-r--r--docs/cpta/ndrpdr_latency_trending/ip6-2n-clx-xxv710.rst66
-rw-r--r--docs/cpta/ndrpdr_latency_trending/ip6-2n-icx-xxv710.rst50
-rw-r--r--docs/cpta/ndrpdr_latency_trending/ip6-2n-skx-xxv710.rst66
-rw-r--r--docs/cpta/ndrpdr_latency_trending/ip6-3n-icx-xxv710.rst18
-rw-r--r--docs/cpta/ndrpdr_latency_trending/ip6-3n-skx-x710.rst18
-rw-r--r--docs/cpta/ndrpdr_latency_trending/ip6-3n-skx-xxv710.rst34
-rw-r--r--docs/cpta/ndrpdr_latency_trending/ip6.rst13
-rw-r--r--docs/cpta/ndrpdr_latency_trending/l2-2n-clx-cx556a.rst34
-rw-r--r--docs/cpta/ndrpdr_latency_trending/l2-2n-clx-e810cq.rst34
-rw-r--r--docs/cpta/ndrpdr_latency_trending/l2-2n-clx-x710.rst18
-rw-r--r--docs/cpta/ndrpdr_latency_trending/l2-2n-clx-xxv710.rst50
-rw-r--r--docs/cpta/ndrpdr_latency_trending/l2-2n-icx-xxv710.rst34
-rw-r--r--docs/cpta/ndrpdr_latency_trending/l2-2n-skx-x710.rst34
-rw-r--r--docs/cpta/ndrpdr_latency_trending/l2-2n-skx-xxv710.rst66
-rw-r--r--docs/cpta/ndrpdr_latency_trending/l2-3n-icx-xxv710.rst18
-rw-r--r--docs/cpta/ndrpdr_latency_trending/l2-3n-skx-x710.rst18
-rw-r--r--docs/cpta/ndrpdr_latency_trending/l2-3n-skx-xxv710.rst50
-rw-r--r--docs/cpta/ndrpdr_latency_trending/l2.rst15
-rw-r--r--docs/cpta/ndrpdr_latency_trending/nat44-det-bidir-2n-clx-xxv710.rst18
-rw-r--r--docs/cpta/ndrpdr_latency_trending/nat44-det-bidir-2n-icx-xxv710.rst18
-rw-r--r--docs/cpta/ndrpdr_latency_trending/nat44-det-bidir-2n-skx-xxv710.rst18
-rw-r--r--docs/cpta/ndrpdr_latency_trending/nat44-det-bidir.rst8
-rw-r--r--docs/cpta/ndrpdr_latency_trending/nat44-ed-unidir-2n-clx-xxv710.rst18
-rw-r--r--docs/cpta/ndrpdr_latency_trending/nat44-ed-unidir-2n-icx-xxv710.rst18
-rw-r--r--docs/cpta/ndrpdr_latency_trending/nat44-ed-unidir-2n-skx-xxv710.rst18
-rw-r--r--docs/cpta/ndrpdr_latency_trending/nat44-ed-unidir.rst10
-rw-r--r--docs/cpta/ndrpdr_latency_trending/nat44.rst7
-rw-r--r--docs/cpta/ndrpdr_latency_trending/srv6-3n-icx-xxv710.rst18
-rw-r--r--docs/cpta/ndrpdr_latency_trending/srv6-3n-skx-xxv710.rst18
-rw-r--r--docs/cpta/ndrpdr_latency_trending/srv6.rst7
-rw-r--r--docs/cpta/ndrpdr_latency_trending/trex-2n-skx-x710.rst50
-rw-r--r--docs/cpta/ndrpdr_latency_trending/trex.rst6
-rw-r--r--docs/cpta/ndrpdr_latency_trending/vhost-2n-clx-cx556a.rst34
-rw-r--r--docs/cpta/ndrpdr_latency_trending/vhost-2n-clx-e810cq.rst18
-rw-r--r--docs/cpta/ndrpdr_latency_trending/vhost-2n-clx-xxv710.rst34
-rw-r--r--docs/cpta/ndrpdr_latency_trending/vhost-2n-icx-xxv710.rst18
-rw-r--r--docs/cpta/ndrpdr_latency_trending/vhost-2n-skx-x710.rst34
-rw-r--r--docs/cpta/ndrpdr_latency_trending/vhost-2n-skx-xxv710.rst66
-rw-r--r--docs/cpta/ndrpdr_latency_trending/vhost-3n-skx-x710.rst34
-rw-r--r--docs/cpta/ndrpdr_latency_trending/vhost-3n-skx-xxv710.rst82
-rw-r--r--docs/cpta/ndrpdr_latency_trending/vhost.rst12
-rw-r--r--docs/cpta/ndrpdr_trending/container_memif-2n-clx-cx556a.rst33
-rw-r--r--docs/cpta/ndrpdr_trending/container_memif-2n-clx-e810cq.rst33
-rw-r--r--docs/cpta/ndrpdr_trending/container_memif-2n-clx-xxv710.rst64
-rw-r--r--docs/cpta/ndrpdr_trending/container_memif-2n-icx-xxv710.rst33
-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-e810cq.rst130
-rw-r--r--docs/cpta/ndrpdr_trending/ip4-2n-clx-x710.rst43
-rw-r--r--docs/cpta/ndrpdr_trending/ip4-2n-clx-xxv710.rst225
-rw-r--r--docs/cpta/ndrpdr_trending/ip4-2n-icx-xxv710.rst132
-rw-r--r--docs/cpta/ndrpdr_trending/ip4-2n-skx-x710.rst43
-rw-r--r--docs/cpta/ndrpdr_trending/ip4-2n-skx-xxv710.rst192
-rw-r--r--docs/cpta/ndrpdr_trending/ip4-3n-icx-xxv710.rst33
-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-2n-icx-xxv710.rst33
-rw-r--r--docs/cpta/ndrpdr_trending/ip4_tunnels-3n-icx-xxv710 copy.rst33
-rw-r--r--docs/cpta/ndrpdr_trending/ip4_tunnels-3n-icx-xxv710.rst33
-rw-r--r--docs/cpta/ndrpdr_trending/ip4_tunnels-3n-skx-xxv710.rst64
-rw-r--r--docs/cpta/ndrpdr_trending/ip4_tunnels.rst9
-rw-r--r--docs/cpta/ndrpdr_trending/ip6-2n-clx-cx556a.rst35
-rw-r--r--docs/cpta/ndrpdr_trending/ip6-2n-clx-e810cq.rst39
-rw-r--r--docs/cpta/ndrpdr_trending/ip6-2n-clx-x710.rst43
-rw-r--r--docs/cpta/ndrpdr_trending/ip6-2n-clx-xxv710.rst167
-rw-r--r--docs/cpta/ndrpdr_trending/ip6-2n-icx-xxv710.rst101
-rw-r--r--docs/cpta/ndrpdr_trending/ip6-2n-skx-x710.rst43
-rw-r--r--docs/cpta/ndrpdr_trending/ip6-2n-skx-xxv710.rst134
-rw-r--r--docs/cpta/ndrpdr_trending/ip6-3n-icx-xxv710.rst33
-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-icx-xxv710.rst333
-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-e810cq.rst68
-rw-r--r--docs/cpta/ndrpdr_trending/l2-2n-clx-x710.rst43
-rw-r--r--docs/cpta/ndrpdr_trending/l2-2n-clx-xxv710.rst130
-rw-r--r--docs/cpta/ndrpdr_trending/l2-2n-icx-xxv710.rst66
-rw-r--r--docs/cpta/ndrpdr_trending/l2-2n-skx-x710.rst101
-rw-r--r--docs/cpta/ndrpdr_trending/l2-2n-skx-xxv710.rst159
-rw-r--r--docs/cpta/ndrpdr_trending/l2-3n-icx-xxv710.rst33
-rw-r--r--docs/cpta/ndrpdr_trending/l2-3n-skx-x710.rst35
-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-icx-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.rst8
-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-icx-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.rst8
-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-tcp-tput-2n-clx-xxv710.rst64
-rw-r--r--docs/cpta/ndrpdr_trending/nat44-ed-tcp-tput-2n-icx-xxv710.rst64
-rw-r--r--docs/cpta/ndrpdr_trending/nat44-ed-tcp-tput-2n-skx-xxv710.rst64
-rw-r--r--docs/cpta/ndrpdr_trending/nat44-ed-tcp-tput.rst8
-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-icx-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.rst8
-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-udp-tput-2n-clx-xxv710.rst64
-rw-r--r--docs/cpta/ndrpdr_trending/nat44-ed-udp-tput-2n-icx-xxv710.rst64
-rw-r--r--docs/cpta/ndrpdr_trending/nat44-ed-udp-tput-2n-skx-xxv710.rst64
-rw-r--r--docs/cpta/ndrpdr_trending/nat44-ed-udp-tput.rst8
-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-icx-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.rst10
-rw-r--r--docs/cpta/ndrpdr_trending/nat44.rst13
-rw-r--r--docs/cpta/ndrpdr_trending/srv6-3n-icx-xxv710.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/trex-2n-skx-x710.rst147
-rw-r--r--docs/cpta/ndrpdr_trending/trex.rst6
-rw-r--r--docs/cpta/ndrpdr_trending/vhost-2n-clx-cx556a.rst64
-rw-r--r--docs/cpta/ndrpdr_trending/vhost-2n-clx-e810cq.rst35
-rw-r--r--docs/cpta/ndrpdr_trending/vhost-2n-clx-xxv710.rst68
-rw-r--r--docs/cpta/ndrpdr_trending/vhost-2n-icx-xxv710.rst33
-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-skx-x710.rst64
-rw-r--r--docs/cpta/ndrpdr_trending/vhost-3n-skx-xxv710.rst157
-rw-r--r--docs/cpta/ndrpdr_trending/vhost.rst12
-rw-r--r--docs/cpta/stats/dpdk_mrr.rst98
-rw-r--r--docs/cpta/stats/trex_ndrpdr.rst14
-rw-r--r--docs/cpta/stats/vpp_mrr.rst158
-rw-r--r--docs/cpta/stats/vpp_ndrpdr.rst62
-rw-r--r--docs/cpta/trending/container_memif-2n-clx-cx556a.rst47
-rw-r--r--docs/cpta/trending/container_memif-2n-clx-e810cq.rst47
-rw-r--r--docs/cpta/trending/container_memif-2n-clx-xxv710.rst92
-rw-r--r--docs/cpta/trending/container_memif-2n-icx-xxv710.rst47
-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.rst47
-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.rst50
-rw-r--r--docs/cpta/trending/dpdk-2n-icx-xxv710.rst50
-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-tx2-xl710.rst50
-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-icx-xxv710.rst50
-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.rst17
-rw-r--r--docs/cpta/trending/ip4-2n-aws-nitro50g.rst68
-rw-r--r--docs/cpta/trending/ip4-2n-clx-cx556a.rst146
-rw-r--r--docs/cpta/trending/ip4-2n-clx-e810cq.rst192
-rw-r--r--docs/cpta/trending/ip4-2n-clx-x710.rst63
-rw-r--r--docs/cpta/trending/ip4-2n-clx-xxv710.rst233
-rw-r--r--docs/cpta/trending/ip4-2n-dnv-x553.rst47
-rw-r--r--docs/cpta/trending/ip4-2n-icx-xxv710.rst191
-rw-r--r--docs/cpta/trending/ip4-2n-skx-x710.rst63
-rw-r--r--docs/cpta/trending/ip4-2n-skx-xxv710.rst341
-rw-r--r--docs/cpta/trending/ip4-2n-tx2-xl710.rst149
-rw-r--r--docs/cpta/trending/ip4-2n-zn2-cx556a.rst146
-rw-r--r--docs/cpta/trending/ip4-2n-zn2-x710.rst63
-rw-r--r--docs/cpta/trending/ip4-2n-zn2-xxv710.rst234
-rw-r--r--docs/cpta/trending/ip4-3n-alt-xl710.rst92
-rw-r--r--docs/cpta/trending/ip4-3n-aws-nitro50g.rst68
-rw-r--r--docs/cpta/trending/ip4-3n-dnv-x553.rst50
-rw-r--r--docs/cpta/trending/ip4-3n-icx-xxv710.rst47
-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.rst25
-rw-r--r--docs/cpta/trending/ip4_tunnels-2n-clx-xxv710.rst47
-rw-r--r--docs/cpta/trending/ip4_tunnels-2n-icx-xxv710.rst47
-rw-r--r--docs/cpta/trending/ip4_tunnels-2n-skx-xxv710.rst47
-rw-r--r--docs/cpta/trending/ip4_tunnels-2n-zn2-xxv710.rst47
-rw-r--r--docs/cpta/trending/ip4_tunnels-3n-alt-xl710.rst47
-rw-r--r--docs/cpta/trending/ip4_tunnels-3n-dnv-x553.rst56
-rw-r--r--docs/cpta/trending/ip4_tunnels-3n-icx-e810xxv.rst47
-rw-r--r--docs/cpta/trending/ip4_tunnels-3n-icx-xxv710.rst47
-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.rst15
-rw-r--r--docs/cpta/trending/ip6-2n-aws-nitro50g.rst68
-rw-r--r--docs/cpta/trending/ip6-2n-clx-cx556a.rst50
-rw-r--r--docs/cpta/trending/ip6-2n-clx-e810cq.rst56
-rw-r--r--docs/cpta/trending/ip6-2n-clx-x710.rst62
-rw-r--r--docs/cpta/trending/ip6-2n-clx-xxv710.rst243
-rw-r--r--docs/cpta/trending/ip6-2n-dnv-x553.rst57
-rw-r--r--docs/cpta/trending/ip6-2n-icx-xxv710.rst146
-rw-r--r--docs/cpta/trending/ip6-2n-skx-x710.rst62
-rw-r--r--docs/cpta/trending/ip6-2n-skx-xxv710.rst194
-rw-r--r--docs/cpta/trending/ip6-2n-tx2-xl710.rst98
-rw-r--r--docs/cpta/trending/ip6-2n-zn2-cx556a.rst50
-rw-r--r--docs/cpta/trending/ip6-2n-zn2-x710.rst62
-rw-r--r--docs/cpta/trending/ip6-2n-zn2-xxv710.rst242
-rw-r--r--docs/cpta/trending/ip6-3n-alt-xl710.rst50
-rw-r--r--docs/cpta/trending/ip6-3n-dnv-x553.rst56
-rw-r--r--docs/cpta/trending/ip6-3n-icx-xxv710.rst47
-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.rst24
-rw-r--r--docs/cpta/trending/ipsec-2n-tx2-xl710.rst292
-rw-r--r--docs/cpta/trending/ipsec-3n-alt-xl710.rst272
-rw-r--r--docs/cpta/trending/ipsec-3n-aws-nitro50g.rst99
-rw-r--r--docs/cpta/trending/ipsec-3n-dnv-x553.rst98
-rw-r--r--docs/cpta/trending/ipsec-3n-icx-xxv710.rst485
-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.rst12
-rw-r--r--docs/cpta/trending/l2-2n-clx-cx556a.rst92
-rw-r--r--docs/cpta/trending/l2-2n-clx-e810cq.rst98
-rw-r--r--docs/cpta/trending/l2-2n-clx-x710.rst62
-rw-r--r--docs/cpta/trending/l2-2n-clx-xxv710.rst230
-rw-r--r--docs/cpta/trending/l2-2n-dnv-x553.rst50
-rw-r--r--docs/cpta/trending/l2-2n-icx-xxv710.rst92
-rw-r--r--docs/cpta/trending/l2-2n-skx-x710.rst146
-rw-r--r--docs/cpta/trending/l2-2n-skx-xxv710.rst186
-rw-r--r--docs/cpta/trending/l2-2n-tx2-xl710.rst191
-rw-r--r--docs/cpta/trending/l2-2n-zn2-cx556a.rst92
-rw-r--r--docs/cpta/trending/l2-2n-zn2-x710.rst62
-rw-r--r--docs/cpta/trending/l2-2n-zn2-xxv710.rst230
-rw-r--r--docs/cpta/trending/l2-3n-alt-xl710.rst95
-rw-r--r--docs/cpta/trending/l2-3n-dnv-x553.rst50
-rw-r--r--docs/cpta/trending/l2-3n-icx-xxv710.rst47
-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.rst23
-rw-r--r--docs/cpta/trending/nat44-det-bidir-2n-clx-xxv710.rst47
-rw-r--r--docs/cpta/trending/nat44-det-bidir-2n-icx-xxv710.rst47
-rw-r--r--docs/cpta/trending/nat44-det-bidir-2n-skx-xxv710.rst47
-rw-r--r--docs/cpta/trending/nat44-det-bidir-2n-zn2-xxv710.rst47
-rw-r--r--docs/cpta/trending/nat44-det-bidir.rst9
-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-icx-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.rst8
-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-tcp-tput-2n-clx-xxv710.rst92
-rw-r--r--docs/cpta/trending/nat44-ed-tcp-tput-2n-icx-xxv710.rst92
-rw-r--r--docs/cpta/trending/nat44-ed-tcp-tput-2n-skx-xxv710.rst92
-rw-r--r--docs/cpta/trending/nat44-ed-tcp-tput.rst8
-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-icx-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.rst8
-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-udp-tput-2n-clx-xxv710.rst92
-rw-r--r--docs/cpta/trending/nat44-ed-udp-tput-2n-icx-xxv710.rst92
-rw-r--r--docs/cpta/trending/nat44-ed-udp-tput-2n-skx-xxv710.rst92
-rw-r--r--docs/cpta/trending/nat44-ed-udp-tput.rst8
-rw-r--r--docs/cpta/trending/nat44-ed-unidir-2n-clx-xxv710.rst47
-rw-r--r--docs/cpta/trending/nat44-ed-unidir-2n-icx-xxv710.rst47
-rw-r--r--docs/cpta/trending/nat44-ed-unidir-2n-skx-xxv710.rst47
-rw-r--r--docs/cpta/trending/nat44-ed-unidir.rst10
-rw-r--r--docs/cpta/trending/nat44.rst13
-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-icx-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.rst8
-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-icx-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.rst8
-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-icx-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-icx-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.rst8
-rw-r--r--docs/cpta/trending/nf_service_density_vnfc.rst8
-rw-r--r--docs/cpta/trending/srv6-3n-dnv-x553.rst55
-rw-r--r--docs/cpta/trending/srv6-3n-icx-xxv710.rst47
-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-e810cq.rst50
-rw-r--r--docs/cpta/trending/vhost-2n-clx-xxv710.rst182
-rw-r--r--docs/cpta/trending/vhost-2n-icx-xxv710.rst47
-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-alt-xl710.rst47
-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.rst16
-rw-r--r--docs/data/variables.yaml2
-rw-r--r--docs/go.mod5
-rw-r--r--docs/ietf/draft-ietf-bmwg-mlrsearch-02.md1359
-rw-r--r--docs/ietf/draft-ietf-bmwg-mlrsearch-06.md1634
-rw-r--r--docs/ietf/process.txt14
l---------docs/job_specs/mlr_weekly/trex-2n-skx.md1
l---------docs/job_specs/mlr_weekly/vpp-2n-aws.md1
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-icx.md1
l---------docs/job_specs/mlr_weekly/vpp-2n-skx.md1
l---------docs/job_specs/mlr_weekly/vpp-2n-tx2.md1
l---------docs/job_specs/mlr_weekly/vpp-2n-zn2.md1
l---------docs/job_specs/mlr_weekly/vpp-3n-alt.md1
l---------docs/job_specs/mlr_weekly/vpp-3n-aws.md1
l---------docs/job_specs/mlr_weekly/vpp-3n-dnv.md1
l---------docs/job_specs/mlr_weekly/vpp-3n-icx.md1
l---------docs/job_specs/mlr_weekly/vpp-3n-skx.md1
l---------docs/job_specs/mlr_weekly/vpp-3n-snr.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
l---------docs/job_specs/mrr_daily/vpp-3n-dnv.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-icx.md11
-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-icx.md11
-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-icx.md160
-rw-r--r--docs/job_specs/mrr_weekly/vpp-3n-skx.md165
-rw-r--r--docs/job_specs/perf_tests_job_specs.md139
-rw-r--r--docs/job_specs/report_coverage/2n-aws/vpp-00.md52
l---------docs/job_specs/report_coverage/2n-clx/dpdk-00.md1
-rw-r--r--docs/job_specs/report_coverage/2n-clx/gso-00.md38
-rw-r--r--docs/job_specs/report_coverage/2n-clx/ip4-00.md317
-rw-r--r--docs/job_specs/report_coverage/2n-clx/ip4-01.md79
-rw-r--r--docs/job_specs/report_coverage/2n-clx/ip4-02.md59
-rw-r--r--docs/job_specs/report_coverage/2n-clx/ip4-03.md59
-rw-r--r--docs/job_specs/report_coverage/2n-clx/ip4-04.md59
-rw-r--r--docs/job_specs/report_coverage/2n-clx/ip4-05.md82
-rw-r--r--docs/job_specs/report_coverage/2n-clx/ip4-06.md106
-rw-r--r--docs/job_specs/report_coverage/2n-clx/ip4-07.md50
-rw-r--r--docs/job_specs/report_coverage/2n-clx/ip4tun-00.md78
-rw-r--r--docs/job_specs/report_coverage/2n-clx/ip6-00.md137
-rw-r--r--docs/job_specs/report_coverage/2n-clx/ip6-01.md247
-rw-r--r--docs/job_specs/report_coverage/2n-clx/l2-00.md257
-rw-r--r--docs/job_specs/report_coverage/2n-clx/l2-01.md137
-rw-r--r--docs/job_specs/report_coverage/2n-clx/lb-00.md79
-rw-r--r--docs/job_specs/report_coverage/2n-clx/memif-00.md79
-rw-r--r--docs/job_specs/report_coverage/2n-clx/vhost-00.md139
l---------docs/job_specs/report_coverage/2n-dnv/dpdk-00.md1
-rw-r--r--docs/job_specs/report_coverage/2n-dnv/ip4-00.md88
-rw-r--r--docs/job_specs/report_coverage/2n-dnv/ip4-01.md58
-rw-r--r--docs/job_specs/report_coverage/2n-dnv/ip6-00.md58
-rw-r--r--docs/job_specs/report_coverage/2n-dnv/ip6-01.md78
-rw-r--r--docs/job_specs/report_coverage/2n-dnv/l2-00.md57
-rw-r--r--docs/job_specs/report_coverage/2n-dnv/l2-01.md48
-rw-r--r--docs/job_specs/report_coverage/2n-icx/dpdk-00.md23
-rw-r--r--docs/job_specs/report_coverage/2n-icx/gso-00.md38
-rw-r--r--docs/job_specs/report_coverage/2n-icx/ip4-00.md159
-rw-r--r--docs/job_specs/report_coverage/2n-icx/ip4-01.md79
-rw-r--r--docs/job_specs/report_coverage/2n-icx/ip4-02.md59
-rw-r--r--docs/job_specs/report_coverage/2n-icx/ip4-03.md59
-rw-r--r--docs/job_specs/report_coverage/2n-icx/ip4-04.md59
-rw-r--r--docs/job_specs/report_coverage/2n-icx/ip4-05.md82
-rw-r--r--docs/job_specs/report_coverage/2n-icx/ip4-06.md106
-rw-r--r--docs/job_specs/report_coverage/2n-icx/ip4-07.md50
-rw-r--r--docs/job_specs/report_coverage/2n-icx/ip4tun-00.md78
-rw-r--r--docs/job_specs/report_coverage/2n-icx/ip6-00.md79
-rw-r--r--docs/job_specs/report_coverage/2n-icx/ip6-01.md139
-rw-r--r--docs/job_specs/report_coverage/2n-icx/l2-00.md99
-rw-r--r--docs/job_specs/report_coverage/2n-icx/l2-01.md79
-rw-r--r--docs/job_specs/report_coverage/2n-icx/lb-00.md79
-rw-r--r--docs/job_specs/report_coverage/2n-icx/memif-00.md79
-rw-r--r--docs/job_specs/report_coverage/2n-icx/vhost-00.md139
l---------docs/job_specs/report_coverage/2n-skx/dpdk-00.md1
-rw-r--r--docs/job_specs/report_coverage/2n-skx/gso-00.md43
-rw-r--r--docs/job_specs/report_coverage/2n-skx/ip4-00.md227
-rw-r--r--docs/job_specs/report_coverage/2n-skx/ip4-01.md84
-rw-r--r--docs/job_specs/report_coverage/2n-skx/ip4-02.md64
-rw-r--r--docs/job_specs/report_coverage/2n-skx/ip4-03.md64
-rw-r--r--docs/job_specs/report_coverage/2n-skx/ip4-04.md64
-rw-r--r--docs/job_specs/report_coverage/2n-skx/ip4-05.md87
-rw-r--r--docs/job_specs/report_coverage/2n-skx/ip4-06.md87
-rw-r--r--docs/job_specs/report_coverage/2n-skx/ip4-07.md55
-rw-r--r--docs/job_specs/report_coverage/2n-skx/ip4tun-00.md83
-rw-r--r--docs/job_specs/report_coverage/2n-skx/ip6-00.md107
-rw-r--r--docs/job_specs/report_coverage/2n-skx/ip6-01.md187
-rw-r--r--docs/job_specs/report_coverage/2n-skx/l2-00.md167
-rw-r--r--docs/job_specs/report_coverage/2n-skx/l2-01.md107
-rw-r--r--docs/job_specs/report_coverage/2n-skx/lb-00.md84
-rw-r--r--docs/job_specs/report_coverage/2n-skx/memif-00.md84
-rw-r--r--docs/job_specs/report_coverage/2n-skx/trex-00.md46
-rw-r--r--docs/job_specs/report_coverage/2n-skx/vhost-00.md144
l---------docs/job_specs/report_coverage/2n-tx2/dpdk-00.md1
-rw-r--r--docs/job_specs/report_coverage/2n-tx2/ip4-00.md110
-rw-r--r--docs/job_specs/report_coverage/2n-tx2/ip4-01.md58
-rw-r--r--docs/job_specs/report_coverage/2n-tx2/ip4-02.md45
-rw-r--r--docs/job_specs/report_coverage/2n-tx2/ip4-03.md45
-rw-r--r--docs/job_specs/report_coverage/2n-tx2/ip4-04.md45
-rw-r--r--docs/job_specs/report_coverage/2n-tx2/ip4-05.md51
-rw-r--r--docs/job_specs/report_coverage/2n-tx2/ip4-06.md51
-rw-r--r--docs/job_specs/report_coverage/2n-tx2/ip6-00.md58
-rw-r--r--docs/job_specs/report_coverage/2n-tx2/ip6-01.md58
-rw-r--r--docs/job_specs/report_coverage/2n-tx2/l2-00.md71
-rw-r--r--docs/job_specs/report_coverage/2n-tx2/l2-01.md58
-rw-r--r--docs/job_specs/report_coverage/2n-tx2/l2-02.md45
-rw-r--r--docs/job_specs/report_coverage/2n-tx2/l2-03.md45
-rw-r--r--docs/job_specs/report_coverage/2n-tx2/l2-04.md32
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/dpdk-00.md50
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/gso-00.md43
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/ip4-00.md259
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/ip4-01.md84
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/ip4-02.md64
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/ip4-03.md64
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/ip4-04.md64
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/ip4-05.md124
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/ip4tun-00.md83
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/ip6-00.md119
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/ip6-01.md209
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/l2-00.md199
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/l2-01.md119
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/lb-00.md84
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/memif-00.md84
-rw-r--r--docs/job_specs/report_coverage/2n-zn2/vhost-00.md145
l---------docs/job_specs/report_coverage/3n-alt/dpdk-00.md1
-rw-r--r--docs/job_specs/report_coverage/3n-alt/ip4-00.md75
-rw-r--r--docs/job_specs/report_coverage/3n-alt/ip4-01.md62
-rw-r--r--docs/job_specs/report_coverage/3n-alt/ip4-02.md49
-rw-r--r--docs/job_specs/report_coverage/3n-alt/ip4-03.md49
-rw-r--r--docs/job_specs/report_coverage/3n-alt/ip4tun-00.md49
-rw-r--r--docs/job_specs/report_coverage/3n-alt/ip6-00.md62
-rw-r--r--docs/job_specs/report_coverage/3n-alt/ip6-01.md62
-rw-r--r--docs/job_specs/report_coverage/3n-alt/l2-00.md75
-rw-r--r--docs/job_specs/report_coverage/3n-alt/l2-01.md62
-rw-r--r--docs/job_specs/report_coverage/3n-alt/l2-02.md49
-rw-r--r--docs/job_specs/report_coverage/3n-alt/l2-03.md49
-rw-r--r--docs/job_specs/report_coverage/3n-alt/l2-04.md36
-rw-r--r--docs/job_specs/report_coverage/3n-alt/memif-00.md75
-rw-r--r--docs/job_specs/report_coverage/3n-alt/srv6-00.md62
-rw-r--r--docs/job_specs/report_coverage/3n-alt/srv6-01.md62
-rw-r--r--docs/job_specs/report_coverage/3n-alt/vhost-00.md101
-rw-r--r--docs/job_specs/report_coverage/3n-alt/vhost-01.md49
-rw-r--r--docs/job_specs/report_coverage/3n-aws/vpp-00.md42
-rw-r--r--docs/job_specs/report_coverage/3n-dnv/crypto-00.md108
-rw-r--r--docs/job_specs/report_coverage/3n-dnv/crypto-01.md54
-rw-r--r--docs/job_specs/report_coverage/3n-dnv/crypto-02.md126
l---------docs/job_specs/report_coverage/3n-dnv/dpdk-00.md1
-rw-r--r--docs/job_specs/report_coverage/3n-dnv/ip4-00.md88
-rw-r--r--docs/job_specs/report_coverage/3n-dnv/ip4-01.md48
-rw-r--r--docs/job_specs/report_coverage/3n-dnv/ip4tun-00.md38
-rw-r--r--docs/job_specs/report_coverage/3n-dnv/ip6-00.md48
-rw-r--r--docs/job_specs/report_coverage/3n-dnv/ip6-01.md78
-rw-r--r--docs/job_specs/report_coverage/3n-dnv/l2-00.md58
-rw-r--r--docs/job_specs/report_coverage/3n-dnv/l2-01.md48
-rw-r--r--docs/job_specs/report_coverage/3n-icx/crypto-00.md159
-rw-r--r--docs/job_specs/report_coverage/3n-icx/crypto-01.md71
-rw-r--r--docs/job_specs/report_coverage/3n-icx/crypto-02.md63
-rw-r--r--docs/job_specs/report_coverage/3n-icx/crypto-03.md63
-rw-r--r--docs/job_specs/report_coverage/3n-icx/crypto-04.md235
-rw-r--r--docs/job_specs/report_coverage/3n-icx/crypto-05.md48
-rw-r--r--docs/job_specs/report_coverage/3n-icx/dpdk-00.md23
-rw-r--r--docs/job_specs/report_coverage/3n-icx/ip4-00.md99
-rw-r--r--docs/job_specs/report_coverage/3n-icx/ip4-01.md79
-rw-r--r--docs/job_specs/report_coverage/3n-icx/ip4-02.md59
-rw-r--r--docs/job_specs/report_coverage/3n-icx/ip4-03.md59
-rw-r--r--docs/job_specs/report_coverage/3n-icx/ip4-04.md59
-rw-r--r--docs/job_specs/report_coverage/3n-icx/ip4-05.md59
-rw-r--r--docs/job_specs/report_coverage/3n-icx/ip4-06.md59
-rw-r--r--docs/job_specs/report_coverage/3n-icx/ip4-07.md59
-rw-r--r--docs/job_specs/report_coverage/3n-icx/ip4tun-00.md59
-rw-r--r--docs/job_specs/report_coverage/3n-icx/ip4tun-02.md59
-rw-r--r--docs/job_specs/report_coverage/3n-icx/ip6-00.md79
-rw-r--r--docs/job_specs/report_coverage/3n-icx/ip6-01.md79
-rw-r--r--docs/job_specs/report_coverage/3n-icx/ip6tun-00.md59
-rw-r--r--docs/job_specs/report_coverage/3n-icx/l2-00.md99
-rw-r--r--docs/job_specs/report_coverage/3n-icx/l2-01.md79
-rw-r--r--docs/job_specs/report_coverage/3n-icx/l2-02.md59
-rw-r--r--docs/job_specs/report_coverage/3n-icx/l2-03.md59
-rw-r--r--docs/job_specs/report_coverage/3n-icx/l2-04.md59
-rw-r--r--docs/job_specs/report_coverage/3n-icx/l2-05.md59
-rw-r--r--docs/job_specs/report_coverage/3n-icx/l2-06.md59
-rw-r--r--docs/job_specs/report_coverage/3n-icx/l2-07.md59
-rw-r--r--docs/job_specs/report_coverage/3n-icx/l2-08.md39
-rw-r--r--docs/job_specs/report_coverage/3n-icx/l2-09.md39
-rw-r--r--docs/job_specs/report_coverage/3n-icx/l2-10.md39
-rw-r--r--docs/job_specs/report_coverage/3n-icx/memif-00.md99
-rw-r--r--docs/job_specs/report_coverage/3n-icx/srv6-00.md79
-rw-r--r--docs/job_specs/report_coverage/3n-icx/srv6-01.md79
-rw-r--r--docs/job_specs/report_coverage/3n-icx/vhost-00.md139
-rw-r--r--docs/job_specs/report_coverage/3n-icx/vhost-01.md59
-rw-r--r--docs/job_specs/report_coverage/3n-skx/crypto-00.md164
-rw-r--r--docs/job_specs/report_coverage/3n-skx/crypto-01.md76
-rw-r--r--docs/job_specs/report_coverage/3n-skx/crypto-02.md68
-rw-r--r--docs/job_specs/report_coverage/3n-skx/crypto-03.md68
-rw-r--r--docs/job_specs/report_coverage/3n-skx/crypto-04.md240
l---------docs/job_specs/report_coverage/3n-skx/dpdk-00.md1
-rw-r--r--docs/job_specs/report_coverage/3n-skx/ip4-00.md147
-rw-r--r--docs/job_specs/report_coverage/3n-skx/ip4-01.md84
-rw-r--r--docs/job_specs/report_coverage/3n-skx/ip4-02.md64
-rw-r--r--docs/job_specs/report_coverage/3n-skx/ip4-03.md64
-rw-r--r--docs/job_specs/report_coverage/3n-skx/ip4-04.md64
-rw-r--r--docs/job_specs/report_coverage/3n-skx/ip4-05.md64
-rw-r--r--docs/job_specs/report_coverage/3n-skx/ip4-06.md64
-rw-r--r--docs/job_specs/report_coverage/3n-skx/ip4-07.md64
-rw-r--r--docs/job_specs/report_coverage/3n-skx/ip4tun-00.md64
-rw-r--r--docs/job_specs/report_coverage/3n-skx/ip4tun-02.md64
-rw-r--r--docs/job_specs/report_coverage/3n-skx/ip6-00.md107
-rw-r--r--docs/job_specs/report_coverage/3n-skx/ip6-01.md107
-rw-r--r--docs/job_specs/report_coverage/3n-skx/ip6tun-00.md64
-rw-r--r--docs/job_specs/report_coverage/3n-skx/l2-00.md167
-rw-r--r--docs/job_specs/report_coverage/3n-skx/l2-01.md107
-rw-r--r--docs/job_specs/report_coverage/3n-skx/l2-02.md64
-rw-r--r--docs/job_specs/report_coverage/3n-skx/l2-03.md64
-rw-r--r--docs/job_specs/report_coverage/3n-skx/l2-04.md64
-rw-r--r--docs/job_specs/report_coverage/3n-skx/l2-05.md64
-rw-r--r--docs/job_specs/report_coverage/3n-skx/l2-06.md64
-rw-r--r--docs/job_specs/report_coverage/3n-skx/l2-07.md64
-rw-r--r--docs/job_specs/report_coverage/3n-skx/l2-08.md44
-rw-r--r--docs/job_specs/report_coverage/3n-skx/l2-09.md44
-rw-r--r--docs/job_specs/report_coverage/3n-skx/l2-10.md44
-rw-r--r--docs/job_specs/report_coverage/3n-skx/memif-00.md104
-rw-r--r--docs/job_specs/report_coverage/3n-skx/srv6-00.md84
-rw-r--r--docs/job_specs/report_coverage/3n-skx/srv6-01.md84
-rw-r--r--docs/job_specs/report_coverage/3n-skx/vhost-00.md144
-rw-r--r--docs/job_specs/report_coverage/3n-skx/vhost-01.md64
-rw-r--r--docs/job_specs/report_coverage/3n-snr/crypto-00.md108
-rw-r--r--docs/job_specs/report_coverage/3n-snr/crypto-01.md54
-rw-r--r--docs/job_specs/report_coverage/3n-snr/crypto-02.md126
l---------docs/job_specs/report_coverage/3n-snr/dpdk-00.md1
-rw-r--r--docs/job_specs/report_coverage/3n-snr/ip4-00.md88
-rw-r--r--docs/job_specs/report_coverage/3n-snr/ip4-01.md48
-rw-r--r--docs/job_specs/report_coverage/3n-snr/ip4tun-00.md38
-rw-r--r--docs/job_specs/report_coverage/3n-snr/ip6-00.md48
-rw-r--r--docs/job_specs/report_coverage/3n-snr/ip6-01.md78
-rw-r--r--docs/job_specs/report_coverage/3n-snr/l2-00.md58
-rw-r--r--docs/job_specs/report_coverage/3n-snr/l2-01.md48
l---------docs/job_specs/report_coverage/3n-tsh/dpdk-00.md1
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/ip4-00.md75
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/ip4-01.md62
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/ip4-02.md49
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/ip4-03.md49
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/ip4tun-00.md49
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/ip6-00.md62
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/ip6-01.md62
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/l2-00.md75
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/l2-01.md62
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/l2-02.md49
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/l2-03.md49
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/l2-04.md36
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/memif-00.md75
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/srv6-00.md62
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/srv6-01.md62
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/vhost-00.md101
-rw-r--r--docs/job_specs/report_coverage/3n-tsh/vhost-01.md49
-rw-r--r--docs/job_specs/report_iterative/2n-aws/vpp-mlr-00.md52
-rw-r--r--docs/job_specs/report_iterative/2n-aws/vpp-mrr-00.md52
-rw-r--r--docs/job_specs/report_iterative/2n-clx/dpdk-mlr-00.md45
-rw-r--r--docs/job_specs/report_iterative/2n-clx/dpdk-mrr-00.md21
-rw-r--r--docs/job_specs/report_iterative/2n-clx/nfv-density-mlr-00.md138
-rw-r--r--docs/job_specs/report_iterative/2n-clx/nfv-density-mrr-00.md138
-rw-r--r--docs/job_specs/report_iterative/2n-clx/reconf-00.md36
-rw-r--r--docs/job_specs/report_iterative/2n-clx/soak-00.md58
-rw-r--r--docs/job_specs/report_iterative/2n-clx/vpp-gso-mrr-00.md23
-rw-r--r--docs/job_specs/report_iterative/2n-clx/vpp-mlr-00.md663
-rw-r--r--docs/job_specs/report_iterative/2n-clx/vpp-mrr-00.md663
-rw-r--r--docs/job_specs/report_iterative/2n-clx/vsap-00.md39
-rw-r--r--docs/job_specs/report_iterative/2n-dnv/dpdk-mlr-00.md23
-rw-r--r--docs/job_specs/report_iterative/2n-dnv/dpdk-mrr-00.md11
-rw-r--r--docs/job_specs/report_iterative/2n-dnv/vpp-mlr-00.md94
-rw-r--r--docs/job_specs/report_iterative/2n-dnv/vpp-mrr-00.md94
-rw-r--r--docs/job_specs/report_iterative/2n-icx/dpdk-mlr-00.md23
-rw-r--r--docs/job_specs/report_iterative/2n-icx/dpdk-mrr-00.md11
-rw-r--r--docs/job_specs/report_iterative/2n-icx/nfv-density-mlr-00.md138
-rw-r--r--docs/job_specs/report_iterative/2n-icx/nfv-density-mrr-00.md138
-rw-r--r--docs/job_specs/report_iterative/2n-icx/reconf-00.md36
-rw-r--r--docs/job_specs/report_iterative/2n-icx/soak-00.md58
-rw-r--r--docs/job_specs/report_iterative/2n-icx/vpp-gso-mrr-00.md23
-rw-r--r--docs/job_specs/report_iterative/2n-icx/vpp-mlr-00.md365
-rw-r--r--docs/job_specs/report_iterative/2n-icx/vpp-mrr-00.md365
-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/trex-mlr-00.md31
-rw-r--r--docs/job_specs/report_iterative/2n-skx/trex-mrr-00.md31
-rw-r--r--docs/job_specs/report_iterative/2n-skx/vpp-gso-mrr-00.md28
-rw-r--r--docs/job_specs/report_iterative/2n-skx/vpp-mlr-00.md430
-rw-r--r--docs/job_specs/report_iterative/2n-skx/vpp-mrr-00.md430
-rw-r--r--docs/job_specs/report_iterative/2n-tx2/dpdk-mlr-00.md30
-rw-r--r--docs/job_specs/report_iterative/2n-tx2/dpdk-mrr-00.md12
-rw-r--r--docs/job_specs/report_iterative/2n-tx2/vpp-mlr-00.md279
-rw-r--r--docs/job_specs/report_iterative/2n-tx2/vpp-mrr-00.md279
-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.md63
-rw-r--r--docs/job_specs/report_iterative/2n-zn2/vpp-gso-mrr-00.md28
-rw-r--r--docs/job_specs/report_iterative/2n-zn2/vpp-mlr-00.md378
-rw-r--r--docs/job_specs/report_iterative/2n-zn2/vpp-mrr-00.md378
-rw-r--r--docs/job_specs/report_iterative/3n-alt/dpdk-mlr-00.md34
-rw-r--r--docs/job_specs/report_iterative/3n-alt/dpdk-mrr-00.md16
-rw-r--r--docs/job_specs/report_iterative/3n-alt/vpp-mlr-00.md245
-rw-r--r--docs/job_specs/report_iterative/3n-alt/vpp-mrr-00.md245
-rw-r--r--docs/job_specs/report_iterative/3n-aws/vpp-mlr-00.md42
-rw-r--r--docs/job_specs/report_iterative/3n-aws/vpp-mrr-00.md42
-rw-r--r--docs/job_specs/report_iterative/3n-dnv/dpdk-mlr-00.md23
-rw-r--r--docs/job_specs/report_iterative/3n-dnv/dpdk-mrr-00.md11
-rw-r--r--docs/job_specs/report_iterative/3n-dnv/vpp-mlr-00.md118
-rw-r--r--docs/job_specs/report_iterative/3n-dnv/vpp-mrr-00.md118
-rw-r--r--docs/job_specs/report_iterative/3n-icx/dpdk-mlr-00.md23
-rw-r--r--docs/job_specs/report_iterative/3n-icx/dpdk-mrr-00.md11
-rw-r--r--docs/job_specs/report_iterative/3n-icx/hoststack-00.md35
-rw-r--r--docs/job_specs/report_iterative/3n-icx/nfv-density-00.md60
-rw-r--r--docs/job_specs/report_iterative/3n-icx/vpp-mlr-00.md284
-rw-r--r--docs/job_specs/report_iterative/3n-icx/vpp-mrr-00.md283
-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/hoststack-00.md40
-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.md275
-rw-r--r--docs/job_specs/report_iterative/3n-skx/vpp-mrr-00.md275
-rw-r--r--docs/job_specs/report_iterative/3n-snr/dpdk-mlr-00.md24
-rw-r--r--docs/job_specs/report_iterative/3n-snr/dpdk-mrr-00.md11
-rw-r--r--docs/job_specs/report_iterative/3n-snr/vpp-mlr-00.md118
-rw-r--r--docs/job_specs/report_iterative/3n-snr/vpp-mrr-00.md118
-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.md231
-rw-r--r--docs/job_specs/report_iterative/3n-tsh/vpp-mrr-00.md231
-rw-r--r--docs/job_specs/vpp_device/vpp-1n-tx2.md158
-rw-r--r--docs/lab/fdio-dc-physical.md131
-rw-r--r--docs/lab/fdio-dc-physical.yaml567
-rw-r--r--docs/lab/testbed_specifications.md2408
-rw-r--r--docs/lab/testbeds_sm_clx_hw_bios_cfg.md1452
-rw-r--r--docs/lab/testbeds_sm_dnv_hw_bios_cfg.md351
-rw-r--r--docs/lab/testbeds_sm_icx_hw_bios_cfg.md1256
-rw-r--r--docs/lab/testbeds_sm_skx_hw_bios_cfg.md578
-rw-r--r--docs/lab/testbeds_sm_zn2_hw_bios_cfg.md634
-rw-r--r--docs/layouts/shortcodes/release_csit.html1
-rw-r--r--docs/layouts/shortcodes/release_vpp.html1
-rw-r--r--docs/model/current/schema/test_case.info.schema.json544
-rw-r--r--docs/model/current/schema/test_case.info.schema.yaml624
-rw-r--r--docs/model/current/schema/todos.txt8
-rw-r--r--docs/model/current/schema/yaml2json.py27
-rw-r--r--docs/model/current/top.rst83
-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.rst17
-rw-r--r--docs/report/detailed_test_results/dpdk_performance_results_2n_clx/index.rst12
-rw-r--r--docs/report/detailed_test_results/dpdk_performance_results_2n_dnv/index.rst12
-rw-r--r--docs/report/detailed_test_results/dpdk_performance_results_2n_icx/index.rst12
-rw-r--r--docs/report/detailed_test_results/dpdk_performance_results_2n_skx/index.rst12
-rw-r--r--docs/report/detailed_test_results/dpdk_performance_results_2n_tx2/index.rst12
-rw-r--r--docs/report/detailed_test_results/dpdk_performance_results_2n_zn2/index.rst12
-rw-r--r--docs/report/detailed_test_results/dpdk_performance_results_3n_alt/index.rst12
-rw-r--r--docs/report/detailed_test_results/dpdk_performance_results_3n_dnv/index.rst12
-rw-r--r--docs/report/detailed_test_results/dpdk_performance_results_3n_icx/index.rst12
-rw-r--r--docs/report/detailed_test_results/dpdk_performance_results_3n_skx/index.rst12
-rw-r--r--docs/report/detailed_test_results/dpdk_performance_results_3n_tsh/index.rst12
-rw-r--r--docs/report/detailed_test_results/trex_performance_results/index.rst6
-rw-r--r--docs/report/detailed_test_results/trex_performance_results_2n_skx/index.rst12
-rw-r--r--docs/report/detailed_test_results/vpp_device_results_ubuntu/index.rst12
-rw-r--r--docs/report/detailed_test_results/vpp_mrr_results/index.rst23
-rw-r--r--docs/report/detailed_test_results/vpp_mrr_results_2n_aws/index.rst12
-rw-r--r--docs/report/detailed_test_results/vpp_mrr_results_2n_clx/index.rst12
-rw-r--r--docs/report/detailed_test_results/vpp_mrr_results_2n_dnv/index.rst12
-rw-r--r--docs/report/detailed_test_results/vpp_mrr_results_2n_icx/index.rst12
-rw-r--r--docs/report/detailed_test_results/vpp_mrr_results_2n_skx/index.rst12
-rw-r--r--docs/report/detailed_test_results/vpp_mrr_results_2n_tx2/index.rst12
-rw-r--r--docs/report/detailed_test_results/vpp_mrr_results_2n_zn2/index.rst12
-rw-r--r--docs/report/detailed_test_results/vpp_mrr_results_3n_alt/index.rst12
-rw-r--r--docs/report/detailed_test_results/vpp_mrr_results_3n_aws/index.rst12
-rw-r--r--docs/report/detailed_test_results/vpp_mrr_results_3n_dnv/index.rst12
-rw-r--r--docs/report/detailed_test_results/vpp_mrr_results_3n_icx/index.rst12
-rw-r--r--docs/report/detailed_test_results/vpp_mrr_results_3n_skx/index.rst12
-rw-r--r--docs/report/detailed_test_results/vpp_mrr_results_3n_tsh/index.rst12
-rw-r--r--docs/report/detailed_test_results/vpp_performance_results/index.rst23
-rw-r--r--docs/report/detailed_test_results/vpp_performance_results_2n_aws/index.rst11
-rw-r--r--docs/report/detailed_test_results/vpp_performance_results_2n_clx/index.rst12
-rw-r--r--docs/report/detailed_test_results/vpp_performance_results_2n_dnv/index.rst12
-rw-r--r--docs/report/detailed_test_results/vpp_performance_results_2n_icx/index.rst12
-rw-r--r--docs/report/detailed_test_results/vpp_performance_results_2n_skx/index.rst12
-rw-r--r--docs/report/detailed_test_results/vpp_performance_results_2n_tx2/index.rst12
-rw-r--r--docs/report/detailed_test_results/vpp_performance_results_2n_zn2/index.rst12
-rw-r--r--docs/report/detailed_test_results/vpp_performance_results_3n_alt/index.rst12
-rw-r--r--docs/report/detailed_test_results/vpp_performance_results_3n_aws/index.rst11
-rw-r--r--docs/report/detailed_test_results/vpp_performance_results_3n_dnv/index.rst12
-rw-r--r--docs/report/detailed_test_results/vpp_performance_results_3n_icx/index.rst12
-rw-r--r--docs/report/detailed_test_results/vpp_performance_results_3n_skx/index.rst12
-rw-r--r--docs/report/detailed_test_results/vpp_performance_results_3n_tsh/index.rst12
-rw-r--r--docs/report/dpdk_performance_tests/comparisons/2n-clx_vs_2n-icx_testbeds.rst31
-rw-r--r--docs/report/dpdk_performance_tests/comparisons/2n-icx_vs_2n-skx_testbeds.rst31
-rw-r--r--docs/report/dpdk_performance_tests/comparisons/2n-skx_vs_2n-clx_testbeds.rst31
-rw-r--r--docs/report/dpdk_performance_tests/comparisons/3n-skx_vs_2n-skx_testbeds.rst35
-rw-r--r--docs/report/dpdk_performance_tests/comparisons/3n-skx_vs_3n-icx_testbeds.rst31
-rw-r--r--docs/report/dpdk_performance_tests/comparisons/current_vs_previous_release.rst215
-rw-r--r--docs/report/dpdk_performance_tests/comparisons/index.rst16
-rw-r--r--docs/report/dpdk_performance_tests/csit_release_notes.rst42
-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_alt.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-icx-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-alt-xl710.rst78
-rw-r--r--docs/report/dpdk_performance_tests/packet_latency/3n-icx-xxv710.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.rst61
-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-icx-xxv710.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.rst125
-rw-r--r--docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-zn2-xxv710.rst125
-rw-r--r--docs/report/dpdk_performance_tests/packet_throughput_graphs/3n-alt-xl710.rst125
-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-icx-xxv710.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.rst82
-rw-r--r--docs/report/dpdk_performance_tests/test_environment.rst68
-rw-r--r--docs/report/dpdk_performance_tests/throughput_speedup_multi_core/2n-clx-x710.rst78
-rw-r--r--docs/report/dpdk_performance_tests/throughput_speedup_multi_core/2n-clx-xxv710.rst78
-rw-r--r--docs/report/dpdk_performance_tests/throughput_speedup_multi_core/2n-icx-xxv710.rst78
-rw-r--r--docs/report/dpdk_performance_tests/throughput_speedup_multi_core/2n-skx-x710.rst78
-rw-r--r--docs/report/dpdk_performance_tests/throughput_speedup_multi_core/2n-skx-xxv710.rst78
-rw-r--r--docs/report/dpdk_performance_tests/throughput_speedup_multi_core/2n-tx2-xl710.rst78
-rw-r--r--docs/report/dpdk_performance_tests/throughput_speedup_multi_core/2n-zn2-x710.rst78
-rw-r--r--docs/report/dpdk_performance_tests/throughput_speedup_multi_core/2n-zn2-xxv710.rst78
-rw-r--r--docs/report/dpdk_performance_tests/throughput_speedup_multi_core/3n-alt-xl710.rst78
-rw-r--r--docs/report/dpdk_performance_tests/throughput_speedup_multi_core/3n-icx-xxv710.rst78
-rw-r--r--docs/report/dpdk_performance_tests/throughput_speedup_multi_core/3n-skx-x710.rst78
-rw-r--r--docs/report/dpdk_performance_tests/throughput_speedup_multi_core/3n-skx-xxv710.rst78
-rw-r--r--docs/report/dpdk_performance_tests/throughput_speedup_multi_core/3n-tsh-x520.rst78
-rw-r--r--docs/report/dpdk_performance_tests/throughput_speedup_multi_core/index.rst69
-rw-r--r--docs/report/dpdk_performance_tests/throughput_trending.rst17
-rw-r--r--docs/report/index.html.template102
-rw-r--r--docs/report/index.pdf.template12
-rw-r--r--docs/report/introduction/documentation/documentation.rst5
-rw-r--r--docs/report/introduction/documentation/index.rst12
-rw-r--r--docs/report/introduction/index.rst11
-rw-r--r--docs/report/introduction/introduction.rst119
-rw-r--r--docs/report/introduction/methodology.rst32
-rw-r--r--docs/report/introduction/methodology_acls.rst68
-rw-r--r--docs/report/introduction/methodology_autogen.rst139
-rw-r--r--docs/report/introduction/methodology_aws/aws_ami.rst45
-rw-r--r--docs/report/introduction/methodology_aws/aws_instances.rst77
-rw-r--r--docs/report/introduction/methodology_aws/aws_terraform.rst119
-rw-r--r--docs/report/introduction/methodology_aws/index.rst8
-rw-r--r--docs/report/introduction/methodology_containers.rst421
-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.rst151
-rw-r--r--docs/report/introduction/methodology_data_plane_throughput/methodology_mlrsearch_tests.rst50
-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.rst153
-rw-r--r--docs/report/introduction/methodology_geneve.rst73
-rw-r--r--docs/report/introduction/methodology_gso.rst136
-rw-r--r--docs/report/introduction/methodology_hoststack_testing/index.rst9
-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_hoststack_testing/methodology_udp_with_iperf3.rst42
-rw-r--r--docs/report/introduction/methodology_hoststack_testing/methodology_vsap_ab_with_nginx.rst37
-rw-r--r--docs/report/introduction/methodology_ipsec.rst88
-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_multi_core_speedup.rst58
-rw-r--r--docs/report/introduction/methodology_nat44.rst487
-rw-r--r--docs/report/introduction/methodology_nfv_service_density.rst109
-rw-r--r--docs/report/introduction/methodology_packet_flow_ordering.rst42
-rw-r--r--docs/report/introduction/methodology_packet_latency.rst43
-rw-r--r--docs/report/introduction/methodology_per_thread_resources.rst102
-rw-r--r--docs/report/introduction/methodology_reconf.rst75
-rw-r--r--docs/report/introduction/methodology_telemetry.rst503
-rw-r--r--docs/report/introduction/methodology_terminology.rst78
-rw-r--r--docs/report/introduction/methodology_trex_traffic_generator.rst213
-rw-r--r--docs/report/introduction/methodology_tunnel_encapsulations.rst39
-rw-r--r--docs/report/introduction/methodology_vpp_device_functional.rst11
-rw-r--r--docs/report/introduction/methodology_vpp_forwarding_modes.rst101
-rw-r--r--docs/report/introduction/methodology_vpp_startup_settings.rst45
-rw-r--r--docs/report/introduction/physical_testbeds.rst514
-rw-r--r--docs/report/introduction/report_history.rst38
-rw-r--r--docs/report/introduction/test_environment_changes_tg.rst14
-rw-r--r--docs/report/introduction/test_environment_changes_vpp.rst32
-rw-r--r--docs/report/introduction/test_environment_intro.rst126
-rw-r--r--docs/report/introduction/test_environment_pre_test_server_calib.rst26
-rw-r--r--docs/report/introduction/test_environment_sut_calib_alt.rst25
-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_icx.rst73
-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.rst53
-rw-r--r--docs/report/introduction/test_environment_sut_meltspec_alt.rst96
-rw-r--r--docs/report/introduction/test_environment_sut_meltspec_clx.rst251
-rw-r--r--docs/report/introduction/test_environment_sut_meltspec_dnv.rst347
-rw-r--r--docs/report/introduction/test_environment_sut_meltspec_icx.rst131
-rw-r--r--docs/report/introduction/test_environment_sut_meltspec_skx.rst178
-rw-r--r--docs/report/introduction/test_environment_sut_meltspec_tsh.rst452
-rw-r--r--docs/report/introduction/test_environment_sut_meltspec_tx2.rst143
-rw-r--r--docs/report/introduction/test_environment_sut_meltspec_zn2.rst327
-rw-r--r--docs/report/introduction/test_environment_tg.rst72
-rw-r--r--docs/report/introduction/test_scenarios_overview.rst67
-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-skx.svg2771
-rw-r--r--docs/report/stats/durations.rst68
-rw-r--r--docs/report/test_configuration/vpp_device_configuration_ubuntu/index.rst12
-rw-r--r--docs/report/test_configuration/vpp_mrr_configuration/index.rst23
-rw-r--r--docs/report/test_configuration/vpp_mrr_configuration_2n_aws/index.rst12
-rw-r--r--docs/report/test_configuration/vpp_mrr_configuration_2n_clx/index.rst12
-rw-r--r--docs/report/test_configuration/vpp_mrr_configuration_2n_dnv/index.rst12
-rw-r--r--docs/report/test_configuration/vpp_mrr_configuration_2n_icx/index.rst12
-rw-r--r--docs/report/test_configuration/vpp_mrr_configuration_2n_skx/index.rst12
-rw-r--r--docs/report/test_configuration/vpp_mrr_configuration_2n_tx2/index.rst12
-rw-r--r--docs/report/test_configuration/vpp_mrr_configuration_2n_zn2/index.rst12
-rw-r--r--docs/report/test_configuration/vpp_mrr_configuration_3n_alt/index.rst12
-rw-r--r--docs/report/test_configuration/vpp_mrr_configuration_3n_aws/index.rst12
-rw-r--r--docs/report/test_configuration/vpp_mrr_configuration_3n_dnv/index.rst12
-rw-r--r--docs/report/test_configuration/vpp_mrr_configuration_3n_icx/index.rst12
-rw-r--r--docs/report/test_configuration/vpp_mrr_configuration_3n_skx/index.rst12
-rw-r--r--docs/report/test_configuration/vpp_mrr_configuration_3n_tsh/index.rst12
-rw-r--r--docs/report/test_configuration/vpp_performance_configuration/index.rst23
-rw-r--r--docs/report/test_configuration/vpp_performance_configuration_2n_aws/index.rst11
-rw-r--r--docs/report/test_configuration/vpp_performance_configuration_2n_clx/index.rst12
-rw-r--r--docs/report/test_configuration/vpp_performance_configuration_2n_dnv/index.rst12
-rw-r--r--docs/report/test_configuration/vpp_performance_configuration_2n_icx/index.rst12
-rw-r--r--docs/report/test_configuration/vpp_performance_configuration_2n_skx/index.rst12
-rw-r--r--docs/report/test_configuration/vpp_performance_configuration_2n_tx2/index.rst12
-rw-r--r--docs/report/test_configuration/vpp_performance_configuration_2n_zn2/index.rst12
-rw-r--r--docs/report/test_configuration/vpp_performance_configuration_3n_alt/index.rst12
-rw-r--r--docs/report/test_configuration/vpp_performance_configuration_3n_aws/index.rst11
-rw-r--r--docs/report/test_configuration/vpp_performance_configuration_3n_dnv/index.rst12
-rw-r--r--docs/report/test_configuration/vpp_performance_configuration_3n_icx/index.rst12
-rw-r--r--docs/report/test_configuration/vpp_performance_configuration_3n_skx/index.rst12
-rw-r--r--docs/report/test_configuration/vpp_performance_configuration_3n_tsh/index.rst12
-rw-r--r--docs/report/test_operational_data/vpp_performance_operational_data/index.rst28
-rw-r--r--docs/report/test_operational_data/vpp_performance_operational_data_2n_aws/index.rst11
-rw-r--r--docs/report/test_operational_data/vpp_performance_operational_data_2n_clx/index.rst12
-rw-r--r--docs/report/test_operational_data/vpp_performance_operational_data_2n_dnv/index.rst12
-rw-r--r--docs/report/test_operational_data/vpp_performance_operational_data_2n_icx/index.rst12
-rw-r--r--docs/report/test_operational_data/vpp_performance_operational_data_2n_skx/index.rst12
-rw-r--r--docs/report/test_operational_data/vpp_performance_operational_data_2n_tx2/index.rst12
-rw-r--r--docs/report/test_operational_data/vpp_performance_operational_data_2n_zn2/index.rst12
-rw-r--r--docs/report/test_operational_data/vpp_performance_operational_data_3n_alt/index.rst12
-rw-r--r--docs/report/test_operational_data/vpp_performance_operational_data_3n_aws/index.rst11
-rw-r--r--docs/report/test_operational_data/vpp_performance_operational_data_3n_dnv/index.rst12
-rw-r--r--docs/report/test_operational_data/vpp_performance_operational_data_3n_icx/index.rst12
-rw-r--r--docs/report/test_operational_data/vpp_performance_operational_data_3n_skx/index.rst12
-rw-r--r--docs/report/test_operational_data/vpp_performance_operational_data_3n_tsh/index.rst12
-rw-r--r--docs/report/trex_performance_tests/csit_release_notes.rst28
-rw-r--r--docs/report/trex_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_skx.rst3
-rw-r--r--docs/report/trex_performance_tests/index.rst11
-rwxr-xr-xdocs/report/trex_performance_tests/logical-TRex-nic2nic.svg1
-rw-r--r--docs/report/trex_performance_tests/overview.rst83
-rw-r--r--docs/report/trex_performance_tests/packet_latency/2n-skx-x710.rst144
-rw-r--r--docs/report/trex_performance_tests/packet_latency/index.rst42
-rw-r--r--docs/report/trex_performance_tests/packet_throughput_graphs/2n-skx-x710.rst258
-rw-r--r--docs/report/trex_performance_tests/packet_throughput_graphs/index.rst55
-rw-r--r--docs/report/trex_performance_tests/test_environment.rst13
-rw-r--r--docs/report/trex_performance_tests/throughput_trending.rst14
-rw-r--r--docs/report/vpp_device_tests/csit_release_notes.rst20
-rw-r--r--docs/report/vpp_device_tests/index.rst8
-rw-r--r--docs/report/vpp_device_tests/overview.rst173
-rw-r--r--docs/report/vpp_device_tests/test_environment.rst581
-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_2n-icx_testbeds.rst55
-rw-r--r--docs/report/vpp_performance_tests/comparisons/2n-icx_vs_2n-skx_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-icx_testbeds.rst58
-rw-r--r--docs/report/vpp_performance_tests/comparisons/current_vs_previous_release.rst695
-rw-r--r--docs/report/vpp_performance_tests/comparisons/index.rst20
-rw-r--r--docs/report/vpp_performance_tests/comparisons/nic_comparison.rst112
-rw-r--r--docs/report/vpp_performance_tests/comparisons/soak_vs_ndr.rst37
-rw-r--r--docs/report/vpp_performance_tests/csit_release_notes.rst172
-rw-r--r--docs/report/vpp_performance_tests/gso_testing/2n-clx.rst96
-rw-r--r--docs/report/vpp_performance_tests/gso_testing/2n-icx.rst96
-rw-r--r--docs/report/vpp_performance_tests/gso_testing/2n-skx.rst96
-rw-r--r--docs/report/vpp_performance_tests/gso_testing/2n-zn2.rst96
-rw-r--r--docs/report/vpp_performance_tests/gso_testing/index.rst9
-rw-r--r--docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_aws.rst3
-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_icx.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_alt.rst3
-rw-r--r--docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_aws.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.rst9
-rw-r--r--docs/report/vpp_performance_tests/hoststack_testing/iperf3/tcp/index.rst54
-rw-r--r--docs/report/vpp_performance_tests/hoststack_testing/iperf3/udp/index.rst54
-rw-r--r--docs/report/vpp_performance_tests/hoststack_testing/quic/index.rst55
-rw-r--r--docs/report/vpp_performance_tests/hoststack_testing/vsap/index.rst316
-rw-r--r--docs/report/vpp_performance_tests/index.rst18
-rw-r--r--docs/report/vpp_performance_tests/nf_service_density/cnf_service_chains.rst688
-rw-r--r--docs/report/vpp_performance_tests/nf_service_density/cnf_service_chains_ipsec.rst611
-rw-r--r--docs/report/vpp_performance_tests/nf_service_density/cnf_service_pipelines.rst688
-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.rst687
-rw-r--r--docs/report/vpp_performance_tests/nf_service_density/vnf_service_chains_vxlan.rst684
-rw-r--r--docs/report/vpp_performance_tests/overview.rst378
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/container_memif-2n-clx-cx556a.rst112
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/container_memif-2n-clx-e810cq.rst151
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/container_memif-2n-clx-xxv710.rst154
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/container_memif-2n-icx-xxv710.rst154
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/container_memif-2n-skx-xxv710.rst154
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/container_memif-2n-tx2-xl710.rst91
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/container_memif-2n-zn2-xxv710.rst154
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/container_memif-3n-tsh-x520.rst112
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/container_memif.rst23
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/index.rst63
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip4-2n-clx-cx556a.rst175
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip4-2n-clx-e810cq.rst322
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip4-2n-clx-xxv710.rst380
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip4-2n-icx-xxv710.rst372
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip4-2n-skx-xxv710.rst483
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip4-2n-tx2-xl710.rst197
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip4-2n-zn2-xxv710.rst420
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip4-3n-alt-xl710.rst194
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip4-3n-icx-xxv710.rst74
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip4-3n-skx-xxv710.rst74
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip4-3n-tsh-x520.rst176
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip4.rst24
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip4_tunnels-2n-icx-xxv710.rst131
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip4_tunnels-3n-alt-xl710.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip4_tunnels-3n-icx-xxv710.rst153
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip4_tunnels-3n-skx-xxv710.rst154
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip4_tunnels-3n-tsh-x520.rst112
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip4_tunnels.rst20
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip6-2n-clx-cx556a.rst91
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip6-2n-clx-e810cq.rst154
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip6-2n-clx-xxv710.rst400
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip6-2n-icx-xxv710.rst217
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip6-2n-skx-xxv710.rst318
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip6-2n-tx2-xl710.rst111
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip6-2n-zn2-xxv710.rst339
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip6-3n-alt-xl710.rst111
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip6-3n-icx-xxv710.rst74
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip6-3n-skx-xxv710.rst74
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip6-3n-tsh-x520.rst51
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ip6.rst24
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ipsec-3n-alt-xl710.rst395
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/ipsec-3n-icx-xxv710.rst255
-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.rst17
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/l2-2n-clx-cx556a.rst192
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/l2-2n-clx-e810cq.rst316
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/l2-2n-clx-xxv710.rst336
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/l2-2n-icx-xxv710.rst294
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/l2-2n-skx-xxv710.rst274
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/l2-2n-tx2-xl710.rst278
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/l2-2n-zn2-xxv710.rst337
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/l2-3n-alt-xl710.rst254
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/l2-3n-icx-xxv710.rst174
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/l2-3n-skx-xxv710.rst174
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/l2-3n-tsh-x520.rst277
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/l2.rst24
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/nat44-2n-clx-xxv710.rst442
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/nat44-2n-icx-xxv710.rst114
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/nat44-2n-skx-xxv710.rst442
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/nat44-2n-zn2-xxv710.rst51
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/nat44.rst17
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/srv6-3n-icx-xxv710.rst71
-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.rst153
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/srv6.rst16
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/vm_vhost-2n-clx-cx556a.rst198
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/vm_vhost-2n-clx-e810cq.rst111
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/vm_vhost-2n-clx-xxv710.rst203
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/vm_vhost-2n-icx-xxv710.rst160
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/vm_vhost-2n-skx-xxv710.rst200
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/vm_vhost-2n-zn2-xxv710.rst202
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/vm_vhost-3n-alt-xl710.rst111
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/vm_vhost-3n-tsh-x520.rst112
-rw-r--r--docs/report/vpp_performance_tests/packet_latency/vm_vhost.rst23
-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-e810cq.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-icx-xxv710.rst71
-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-tx2-xl710.rst71
-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.rst27
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/index.rst167
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-aws-nitro50g.rst200
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-clx-cx556a.rst114
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-clx-e810cq.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.rst200
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-dnv-x553.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-icx-xxv710.rst200
-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.rst200
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-tx2-xl710.rst157
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-zn2-cx556a.rst114
-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.rst157
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-alt-xl710.rst114
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-aws-nitro50g.rst200
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-dnv-x553.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-icx-xxv710.rst71
-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.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-tsh-x520.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4.rst38
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-2n-clx-xxv710.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-2n-icx-xxv710.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-2n-skx-xxv710.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-2n-zn2-xxv710.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-alt-xl710.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-dnv-x553.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-icx-e810xxv.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-icx-xxv710.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-skx-xxv710.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-tsh-x520.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels.rst29
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-aws-nitro50g.rst200
-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-e810cq.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.rst157
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-dnv-x553.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-icx-xxv710.rst157
-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.rst157
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-tx2-xl710.rst114
-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.rst114
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-3n-alt-xl710.rst71
-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-icx-xxv710.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.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-3n-tsh-x520.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ip6.rst38
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-2n-tx2-xl710.rst286
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-3n-alt-xl710.rst286
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-3n-aws-nitro50g.rst200
-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-icx-xxv710.rst461
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-3n-skx-xxv710.rst200
-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.rst28
-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-e810cq.rst114
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-clx-x710.rst71
-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.rst115
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-icx-xxv710.rst114
-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.rst200
-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.rst71
-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-alt-xl710.rst114
-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-icx-xxv710.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.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/l2-3n-tsh-x520.rst110
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/l2.rst37
-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-icx.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.rst13
-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-icx.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.rst13
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-tput-2n-clx.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-tput-2n-icx.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-tput-2n-skx.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-tput.rst13
-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-icx.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.rst13
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-tput-2n-clx.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-tput-2n-icx.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-tput-2n-skx.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-tput.rst13
-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-icx.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.rst13
-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-icx-xxv710.rst71
-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.rst25
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-clx-cx556a.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-clx-e810cq.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-clx-xxv710.rst114
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-icx-xxv710.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-skx-xxv710.rst115
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-zn2-cx556a.rst71
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-zn2-xxv710.rst114
-rw-r--r--docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-3n-alt-xl710.rst71
-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/reconf_tests/index.rst18
-rw-r--r--docs/report/vpp_performance_tests/reconf_tests/ipsec_reconf.rst272
-rw-r--r--docs/report/vpp_performance_tests/reconf_tests/vnf_service_chains_reconf.rst286
-rw-r--r--docs/report/vpp_performance_tests/soak_tests/index.rst190
-rw-r--r--docs/report/vpp_performance_tests/test_environment.rst127
-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-e810cq.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-icx-xxv710.rst71
-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-tx2-xl710.rst71
-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.rst29
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/index.rst69
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-clx-cx556a.rst114
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-clx-e810cq.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.rst200
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-dnv-x553.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-icx-xxv710.rst200
-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.rst200
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-tx2-xl710.rst157
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-zn2-cx556a.rst114
-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.rst157
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-3n-alt-xl710.rst114
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-3n-dnv-x553.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-3n-icx-xxv710.rst71
-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.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-3n-tsh-x520.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4.rst39
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-2n-clx-xxv710.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-2n-icx-xxv710.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-2n-skx-xxv710.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-2n-zn2-xxv710.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-alt-xl710.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-dnv-x553.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-icx-e810xxv.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-icx-xxv710.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-skx-xxv710.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-tsh-x520.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels.rst31
-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-e810cq.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.rst157
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-dnv-x553.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-icx-xxv710.rst157
-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.rst157
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-tx2-xl710.rst114
-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-alt-xl710.rst71
-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-icx-xxv710.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.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-3n-tsh-x520.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6.rst39
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ipsec-2n-tx2-xl710.rst286
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ipsec-3n-alt-xl710.rst286
-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-icx-xxv710.rst460
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/ipsec-3n-skx-xxv710.rst157
-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.rst29
-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-e810cq.rst114
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-clx-x710.rst71
-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.rst115
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-icx-xxv710.rst114
-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.rst200
-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.rst71
-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-alt-xl710.rst114
-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-icx-xxv710.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.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-3n-tsh-x520.rst114
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2.rst39
-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-icx.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.rst13
-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-icx.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.rst13
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-tput-2n-clx.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-tput-2n-icx.rst72
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-tput-2n-skx.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-tput.rst13
-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-icx.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.rst13
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-tput-2n-clx.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-tput-2n-icx.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-tput-2n-skx.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-tput.rst13
-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-icx.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.rst13
-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-icx-xxv710.rst71
-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.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-clx-e810cq.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-clx-xxv710.rst114
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-icx-xxv710.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-skx-xxv710.rst114
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-zn2-cx556a.rst71
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-zn2-xxv710.rst114
-rw-r--r--docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-3n-alt-xl710.rst71
-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_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.svg (renamed from docs/report/introduction/testbed-2n-icx.svg)0
-rw-r--r--docs/static/testbed-2n-tx2.svg (renamed from docs/report/introduction/testbed-2n-tx2.svg)0
-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.svg (renamed from docs/report/introduction/testbed-3n-alt.svg)0
-rw-r--r--docs/static/testbed-3n-icx.svg (renamed from docs/report/introduction/testbed-3n-icx.svg)0
-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.rst880
-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.md11
-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/inventories/lf_inventory/group_vars/all.yaml3
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.16.yaml67
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.17.yaml68
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.18.yaml68
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.19.yaml68
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.20.yaml67
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.21.yaml51
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.22.yaml48
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.23.yaml29
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.24.yaml29
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.25.yaml29
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.26.yaml29
-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.yaml4
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.37.yaml4
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.38.yaml3
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.44.yaml32
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.45.yaml32
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.46.yaml32
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.47.yaml32
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.48.yaml32
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.49.yaml2
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.50.yaml53
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.51.yaml53
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.52.yaml60
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.53.yaml55
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.54.yaml53
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.55.yaml53
-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.yaml22
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.59.yaml27
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.60.yaml32
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.69.yaml8
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.70.yaml71
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.71.yaml71
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.72.yaml3
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.73.yaml3
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.74.yaml4
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.75.yaml5
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.76.yaml5
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.77.yaml5
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.78.yaml5
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.79.yaml5
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.80.yaml5
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.81.yaml5
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.82.yaml5
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.83.yaml5
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.84.yaml5
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.85.yaml5
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.86.yaml5
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.87.yaml5
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.88.yaml5
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.89.yaml4
-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.yaml35
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.92.yaml35
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.93.yaml4
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.94.yaml4
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.10.yaml33
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.11.yaml30
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.12.yaml30
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.13.yaml30
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.18.yaml6
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.19.yaml6
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.20.yaml6
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.21.yaml6
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.22.yaml6
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.23.yaml6
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.24.yaml5
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.25.yaml5
-rw-r--r--fdio.infra.ansible/inventories/lf_inventory/hosts53
-rw-r--r--fdio.infra.ansible/inventories/sample_inventory/group_vars/all.yaml3
-rw-r--r--fdio.infra.ansible/inventories/vagrant_inventory/group_vars/vagrant.yml3
-rw-r--r--fdio.infra.ansible/roles/ab/defaults/main.yaml2
-rw-r--r--fdio.infra.ansible/roles/ab/tasks/main.yaml4
-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.yaml19
-rw-r--r--fdio.infra.ansible/roles/aws/tasks/main.yaml106
-rw-r--r--fdio.infra.ansible/roles/aws/tasks/ubuntu_focal.yaml10
-rw-r--r--fdio.infra.ansible/roles/aws/tasks/ubuntu_jammy.yaml31
-rw-r--r--fdio.infra.ansible/roles/calibration/defaults/main.yaml16
-rw-r--r--fdio.infra.ansible/roles/calibration/tasks/main.yaml18
-rw-r--r--fdio.infra.ansible/roles/calibration/tasks/x86_64.yaml10
-rw-r--r--fdio.infra.ansible/roles/cleanup/tasks/clean_images.yaml6
-rw-r--r--fdio.infra.ansible/roles/cleanup/tasks/kill_containers.yaml20
-rw-r--r--fdio.infra.ansible/roles/cleanup/tasks/kill_process.yaml9
-rw-r--r--fdio.infra.ansible/roles/cleanup/tasks/main.yaml19
-rw-r--r--fdio.infra.ansible/roles/cleanup/tasks/nomad.yaml12
-rw-r--r--fdio.infra.ansible/roles/cleanup/tasks/remove_package.yaml10
-rw-r--r--fdio.infra.ansible/roles/cleanup/tasks/sut.yaml17
-rw-r--r--fdio.infra.ansible/roles/cleanup/tasks/tg.yaml2
-rw-r--r--fdio.infra.ansible/roles/cleanup/tasks/vpp_device.yaml4
-rw-r--r--fdio.infra.ansible/roles/common/defaults/main.yaml25
-rw-r--r--fdio.infra.ansible/roles/common/handlers/main.yaml2
-rw-r--r--fdio.infra.ansible/roles/common/tasks/main.yaml17
-rw-r--r--fdio.infra.ansible/roles/consul/defaults/main.yaml37
-rw-r--r--fdio.infra.ansible/roles/consul/handlers/main.yaml2
-rw-r--r--fdio.infra.ansible/roles/consul/meta/main.yaml23
-rw-r--r--fdio.infra.ansible/roles/consul/tasks/main.yaml131
-rw-r--r--fdio.infra.ansible/roles/consul/templates/ports.hcl.j22
-rw-r--r--fdio.infra.ansible/roles/consul/templates/services.json.j213
-rw-r--r--fdio.infra.ansible/roles/consul/vars/main.yaml2
-rw-r--r--fdio.infra.ansible/roles/csit_sut_image/files/Dockerfile166
-rw-r--r--fdio.infra.ansible/roles/csit_sut_image/tasks/main.yaml30
-rw-r--r--fdio.infra.ansible/roles/docker/defaults/main.yaml2
-rw-r--r--fdio.infra.ansible/roles/docker/meta/main.yaml1
-rw-r--r--fdio.infra.ansible/roles/docker/tasks/focal.yaml30
-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 fdio.infra.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.yaml7
-rw-r--r--fdio.infra.ansible/roles/dpdk/meta/main.yaml22
-rw-r--r--fdio.infra.ansible/roles/dpdk/molecule/default/molecule.yml4
-rw-r--r--fdio.infra.ansible/roles/dpdk/tasks/deploy_block.yaml33
-rw-r--r--fdio.infra.ansible/roles/dpdk/tasks/main.yaml52
-rw-r--r--fdio.infra.ansible/roles/intel/defaults/main.yaml108
-rw-r--r--fdio.infra.ansible/roles/intel/tasks/dsa.yaml39
-rw-r--r--fdio.infra.ansible/roles/intel/tasks/i40e.yaml16
-rw-r--r--fdio.infra.ansible/roles/intel/tasks/iavf.yaml14
-rw-r--r--fdio.infra.ansible/roles/intel/tasks/ice.yaml54
-rw-r--r--fdio.infra.ansible/roles/intel/tasks/main.yaml99
-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.yaml5
-rw-r--r--fdio.infra.ansible/roles/iperf/tasks/main.yaml14
-rw-r--r--fdio.infra.ansible/roles/jenkins_job_health_exporter/defaults/main.yaml25
-rw-r--r--fdio.infra.ansible/roles/jenkins_job_health_exporter/tasks/main.yaml6
-rw-r--r--fdio.infra.ansible/roles/kernel/defaults/main.yaml14
-rw-r--r--fdio.infra.ansible/roles/kernel/handlers/main.yaml2
-rw-r--r--fdio.infra.ansible/roles/kernel/tasks/ubuntu_focal.yaml62
-rw-r--r--fdio.infra.ansible/roles/kernel/tasks/ubuntu_jammy.yaml18
-rw-r--r--fdio.infra.ansible/roles/kernel_vm/tasks/main.yaml22
-rw-r--r--fdio.infra.ansible/roles/kubernetes/defaults/main.yaml15
-rw-r--r--fdio.infra.ansible/roles/kubernetes/tasks/main.yaml14
-rw-r--r--fdio.infra.ansible/roles/kubernetes/tasks/ubuntu_jammy.yaml37
-rw-r--r--fdio.infra.ansible/roles/mellanox/defaults/main.yaml16
-rw-r--r--fdio.infra.ansible/roles/mellanox/tasks/main.yaml16
-rw-r--r--fdio.infra.ansible/roles/mellanox/tasks/ofed.yaml21
-rw-r--r--fdio.infra.ansible/roles/nomad/defaults/main.yaml90
-rw-r--r--fdio.infra.ansible/roles/nomad/handlers/main.yaml4
-rw-r--r--fdio.infra.ansible/roles/nomad/meta/main.yaml26
-rw-r--r--fdio.infra.ansible/roles/nomad/tasks/main.yaml132
-rw-r--r--fdio.infra.ansible/roles/nomad/templates/cfssl.json8
-rw-r--r--fdio.infra.ansible/roles/nomad/templates/consul.hcl.j263
-rw-r--r--fdio.infra.ansible/roles/nomad/templates/nomad_systemd.service.j25
-rw-r--r--fdio.infra.ansible/roles/nomad/templates/server.hcl.j22
-rw-r--r--fdio.infra.ansible/roles/nomad/templates/telemetry.hcl.j230
-rw-r--r--fdio.infra.ansible/roles/nomad/templates/tls.hcl.j242
-rw-r--r--fdio.infra.ansible/roles/nomad/templates/vault.hcl.j269
-rw-r--r--fdio.infra.ansible/roles/nomad/vars/main.yaml2
-rw-r--r--fdio.infra.ansible/roles/performance_tuning/defaults/main.yaml2
-rw-r--r--fdio.infra.ansible/roles/performance_tuning/handlers/main.yaml8
-rw-r--r--fdio.infra.ansible/roles/performance_tuning/tasks/main.yaml42
-rw-r--r--fdio.infra.ansible/roles/prometheus_exporter/meta/main.yaml1
-rw-r--r--fdio.infra.ansible/roles/python_env/defaults/main.yaml11
-rw-r--r--fdio.infra.ansible/roles/python_env/tasks/main.yaml99
-rw-r--r--fdio.infra.ansible/roles/tg/files/csit-initialize-docker-tg.service12
-rwxr-xr-xfdio.infra.ansible/roles/tg/files/csit-initialize-docker-tg.sh58
-rw-r--r--fdio.infra.ansible/roles/tg/handlers/main.yaml10
-rw-r--r--fdio.infra.ansible/roles/tg/tasks/main.yaml30
-rw-r--r--fdio.infra.ansible/roles/topology/tasks/main.yaml8
-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-c6gn.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-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.yaml42
-rw-r--r--fdio.infra.ansible/roles/trex/tasks/deploy_block.yaml40
-rw-r--r--fdio.infra.ansible/roles/trex/tasks/main.yaml12
-rw-r--r--fdio.infra.ansible/roles/vagrant/tasks/main.yml15
-rw-r--r--fdio.infra.ansible/roles/vault/meta/main.yaml1
-rw-r--r--fdio.infra.ansible/roles/vpp/defaults/main.yaml14
-rw-r--r--fdio.infra.ansible/roles/vpp/tasks/main.yaml6
-rw-r--r--fdio.infra.ansible/roles/vpp_device/defaults/main.yaml6
-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-spr.sh28
-rw-r--r--fdio.infra.ansible/roles/vpp_device/handlers/main.yaml18
-rw-r--r--fdio.infra.ansible/roles/vpp_device/tasks/main.yaml74
-rw-r--r--fdio.infra.ansible/site.yaml2
-rw-r--r--fdio.infra.ansible/sut.yaml37
-rw-r--r--fdio.infra.ansible/tg.yaml47
-rw-r--r--fdio.infra.ansible/vpp_device.yaml8
-rw-r--r--fdio.infra.packer/aws_c5n/ubuntu_focal.pkr.hcl128
-rw-r--r--fdio.infra.packer/aws_c6gn/ubuntu_focal.pkr.hcl119
-rw-r--r--fdio.infra.pxe/docker-dnsmasq/Dockerfile61
-rwxr-xr-xfdio.infra.pxe/docker-dnsmasq/etc/dnsmasq.conf109
-rw-r--r--fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:42:68:6f:68:ee4
-rw-r--r--fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:42:68:6f:6f:c04
-rw-r--r--fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:f2:8b:7c:fb:124
-rw-r--r--fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:f2:8b:7c:fb:4a4
-rw-r--r--fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:fe:c8:58:1e:f64
-rw-r--r--fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:fe:c8:e5:68:324
-rw-r--r--fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:fe:c8:e5:68:c24
-rw-r--r--fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:fe:c8:e5:68:e04
-rw-r--r--fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:fe:c8:e5:6a:724
-rw-r--r--fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:fe:c8:e5:6c:764
-rw-r--r--fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-0c:c4:7a:fc:c9:584
-rw-r--r--fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-0c:c4:7a:fc:ca:904
-rw-r--r--fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-0c:c4:7a:fc:ca:cc4
-rw-r--r--fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-38:0e:4d:9c:4b:0c4
-rw-r--r--fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-38:0e:4d:9c:85:7a4
-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: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-40:8d:5c:e7:b2:6e4
-rw-r--r--fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-4c:00:82:ae:5a:f84
-rw-r--r--fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-58:ac:78:5c:90:784
-rw-r--r--fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-6c:41:6a:1f:39:264
-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:8a:8d:944
-rw-r--r--fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8a:8d:b64
-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:644
-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:54:c44
-rw-r--r--fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:54:c84
-rw-r--r--fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:55:784
-rw-r--r--fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:55:ae4
-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:8b:56:8c4
-rw-r--r--fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:56:b64
-rw-r--r--fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:56:e24
-rw-r--r--fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ab:d7:4a4
-rw-r--r--fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ab:d7:924
-rw-r--r--fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ab:d9:ae4
-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-b4:2e:99:ab:1d:dc4
-rw-r--r--fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-b4:2e:99:ab:1d:e84
-rw-r--r--fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-cc:46:d6:17:e0:584
-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-e0:d5:5e:ae:70:264
-rw-r--r--fdio.infra.pxe/docker-nginx/Dockerfile41
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:42:68:6f:68:ee/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:42:68:6f:6f:c0/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:f2:8b:7c:fb:12/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:f2:8b:7c:fb:4a/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:58:1e:f6/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:e5:68:32/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:e5:68:c2/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:e5:68:e0/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:e5:6a:72/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:e5:6c:76/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/0c:c4:7a:fc:c9:58/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/0c:c4:7a:fc:ca:90/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/0c:c4:7a:fc:ca:cc/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/38:0e:4d:9c:4b:0c/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/38:0e:4d:9c:85:7a/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/4c:00:82:ae:5a:f8/user-data120
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/58:ac:78:5c:90:78/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/6c:41:6a:1f:39:26/user-data120
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8a:8d:0a/user-data120
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8a:8d:94/user-data120
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8a:8d:b6/user-data120
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:53:64/user-data120
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:54:c4/user-data120
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:54:c8/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:55:78/user-data120
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:55:ae/user-data120
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:55:d8/user-data120
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:56:8c/user-data120
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:56:b6/user-data120
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:56:e2/user-data120
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ab:d7:4a/user-data120
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ab:d7:92/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ab:d9:ae/user-data120
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ac:d7:c0/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/cc:46:d6:17:e0:58/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/b4:2e:99:ab:1d:dc/meta-data0
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/b4:2e:99:ab:1d:dc/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/b4:2e:99:ab:1d:e8/meta-data0
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/b4:2e:99:ab:1d:e8/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/e0:d5:5e:ae:70:26/meta-data0
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:42:68:6f:68:ee/meta-data0
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:42:68:6f:68:ee/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:42:68:6f:6f:c0/meta-data0
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:42:68:6f:6f:c0/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:f2:8b:7c:fb:12/meta-data0
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:f2:8b:7c:fb:12/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:f2:8b:7c:fb:4a/meta-data0
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:f2:8b:7c:fb:4a/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:fe:c8:58:1e:f6/meta-data0
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:fe:c8:58:1e:f6/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:fe:c8:e5:68:c2/meta-data0
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:fe:c8:e5:68:c2/user-data83
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/58:ac:78:5c:90:78/meta-data0
-rw-r--r--fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/58:ac:78:5c:90:78/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:d4/meta-data0
-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:ac:d9:2e/meta-data0
-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:bb/meta-data0
-rw-r--r--fdio.infra.terraform/1n_nmd/main.tf60
-rw-r--r--fdio.infra.terraform/1n_nmd/minio/conf/nomad/mc.hcl73
-rw-r--r--fdio.infra.terraform/1n_nmd/minio/conf/nomad/minio.hcl223
-rw-r--r--fdio.infra.terraform/1n_nmd/minio/main.tf82
-rw-r--r--fdio.infra.terraform/1n_nmd/minio/outputs.tf4
-rw-r--r--fdio.infra.terraform/1n_nmd/minio/providers.tf13
-rw-r--r--fdio.infra.terraform/1n_nmd/minio/variables.tf170
-rw-r--r--fdio.infra.terraform/1n_nmd/providers.tf13
-rw-r--r--fdio.infra.terraform/1n_nmd/variables.tf35
-rw-r--r--fdio.infra.terraform/1n_nmd/versions.tf21
-rw-r--r--fdio.infra.terraform/1n_nmd/vpp_device/conf/nomad/csit_shim.hcl169
-rw-r--r--fdio.infra.terraform/1n_nmd/vpp_device/main.tf21
-rw-r--r--fdio.infra.terraform/1n_nmd/vpp_device/variables.tf43
-rw-r--r--fdio.infra.terraform/1n_nmd/vpp_device/versions.tf13
-rw-r--r--fdio.infra.terraform/3n_azure_fsv2/main.tf593
-rw-r--r--fdio.infra.terraform/3n_azure_fsv2/nic.tf133
-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.tf68
-rw-r--r--fdio.infra.terraform/terraform-aws-1n-aws-c5n/providers.tf2
-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.tf16
-rw-r--r--fdio.infra.terraform/terraform-aws-1n-aws-c5n/versions.tf10
-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.tf (renamed from fdio.infra.terraform/terraform-aws-2n-aws-c6gn/output.tf)0
-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.tf81
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-aws-c5n/providers.tf2
-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.tf18
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-aws-c5n/versions.tf12
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-aws-c6gn/main.tf322
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-aws-c6gn/variables.tf180
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-aws-c6gn/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.tf (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:42:68:6f:68:ee/meta-data)0
-rw-r--r--fdio.infra.terraform/terraform-aws-2n-c6gn/providers.tf (renamed from fdio.infra.terraform/terraform-aws-2n-aws-c6gn/providers.tf)0
-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.tf (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:42:68:6f:6f:c0/meta-data)0
-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.tf (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:f2:8b:7c:fb:12/meta-data)0
-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.tf93
-rw-r--r--fdio.infra.terraform/terraform-aws-3n-aws-c5n/providers.tf2
-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.tf22
-rw-r--r--fdio.infra.terraform/terraform-aws-3n-aws-c5n/versions.tf12
-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.tf (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:f2:8b:7c:fb:4a/meta-data)0
-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.tf (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:58:1e:f6/meta-data)0
-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.tf (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:e5:68:32/meta-data)0
-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/main.tf21
-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.tf22
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/versions.tf4
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/versions.tf4
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/main.tf224
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/variables.tf74
-rw-r--r--fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/versions.tf4
-rw-r--r--fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/main.tf13
-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/variables.tf32
-rw-r--r--fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/versions.tf11
-rw-r--r--fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/main.tf27
-rw-r--r--fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/variables.tf4
-rw-r--r--fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/versions.tf10
-rw-r--r--fdio.infra.terraform/terraform-aws-subnet/example/versions.tf6
-rw-r--r--fdio.infra.terraform/terraform-aws-subnet/versions.tf6
-rw-r--r--fdio.infra.terraform/terraform-aws-vpc/example/versions.tf6
-rw-r--r--fdio.infra.terraform/terraform-aws-vpc/versions.tf6
-rw-r--r--fdio.infra.terraform/terraform-nomad-loki/README.md52
-rw-r--r--fdio.infra.terraform/terraform-nomad-loki/conf/nomad/loki.hcl.tftpl261
-rw-r--r--fdio.infra.terraform/terraform-nomad-loki/main.tf40
-rw-r--r--fdio.infra.terraform/terraform-nomad-loki/variables.tf127
-rw-r--r--fdio.infra.terraform/terraform-nomad-loki/versions.tf9
-rw-r--r--fdio.infra.terraform/terraform-nomad-prometheus/conf/nomad/prometheus.hcl.tftpl262
-rw-r--r--fdio.infra.terraform/terraform-nomad-prometheus/fdio/main.tf2
-rw-r--r--fdio.infra.terraform/terraform-nomad-prometheus/fdio/versions.tf8
-rw-r--r--fdio.infra.terraform/terraform-nomad-prometheus/main.tf8
-rw-r--r--fdio.infra.terraform/terraform-nomad-prometheus/variables.tf14
-rw-r--r--fdio.infra.terraform/terraform-nomad-prometheus/versions.tf4
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/README.md10
-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/conf/nomad/etl-trending-soak.hcl.tftpl55
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl.hcl.tftpl322
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/fdio/main.tf264
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/fdio/variables.tf4
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/fdio/versions.tf8
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/main.tf4
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/variables.tf4
-rw-r--r--fdio.infra.terraform/terraform-nomad-pyspark-etl/versions.tf4
-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/fdio/variables.tf6
-rw-r--r--fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/versions.tf6
-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.sh (renamed from fdio.infra.pxe/build.sh)0
-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.cfg (renamed from fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg)3
-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-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:e5:68:c2/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:43:a3:ba/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:43:a3:ba/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:46:34:e8/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:e5:68:e0/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:46:34:e8/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:46:34:e8/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:7f:12/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:e5:6a:72/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:7f:12/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:b9:7f:12/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:80/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:e5:6c:76/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:80/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:b9:a6:80/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:92/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/0c:c4:7a:fc:c9:58/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:92/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:b9:a6:92/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:ba/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/0c:c4:7a:fc:ca:90/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:ba/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:b9:a6:ba/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:c6/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/0c:c4:7a:fc:ca:cc/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:c6/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:b9:a6:c6/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:ca/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/38:0e:4d:9c:4b:0c/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:ca/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:b9:a6:ca/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:cc:44/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/38:0e:4d:9c:85:7a/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:cc:44/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:b9:cc:44/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:cc:56/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:43:a3:ba/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:cc:56/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:b9:cc:56/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:85:8a/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:46:34:e8/meta-data)0
-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-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:b9:7f:12/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:26/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:bc:92:26/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:b2/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:b9:a6:80/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:b2/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:bc:92:b2/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:e4/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:b9:a6:92/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:e4/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:bc:92:e4/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:e8/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:b9:a6:ba/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:e8/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:bc:92:e8/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a0:d4/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:b9:a6:c6/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a0:d4/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:bc:a0:d4/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a0:ec/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:b9:a6:ca/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a0:ec/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:bc:a0:ec/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a1:ac/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:b9:cc:44/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a1:ac/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:bc:a1:ac/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a1:ea/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:b9:cc:56/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a1:ea/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:bc:a1:ea/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:dd:6b/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:bc:92:26/meta-data)0
-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-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:bc:92:b2/meta-data)0
-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-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:bc:92:e4/meta-data)0
-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-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:bc:92:e8/meta-data)0
-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-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:bc:a0:d4/meta-data)0
-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-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:bc:a0:ec/meta-data)0
-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-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:bc:a1:ac/meta-data)0
-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-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:bc:a1:ea/meta-data)0
-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-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/4c:00:82:ae:5a:f8/meta-data)0
-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-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/58:ac:78:5c:90:78/meta-data)0
-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-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/6c:41:6a:1f:39:26/meta-data)0
-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-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/a4:bf:01:55:ac:39/meta-data)0
-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-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/a4:bf:01:55:af:5e/meta-data)0
-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-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8a:8c:76/meta-data)0
-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-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8a:8d:0a/meta-data)0
-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-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8a:8d:94/meta-data)0
-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-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8a:8d:b6/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/a4:bf:01:55:ac:39/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/a4:bf:01:55:ac:39/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/a4:bf:01:55:af:5e/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:53:60/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/a4:bf:01:55:af:5e/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/a4:bf:01:55:af:5e/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:b4/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:53:64/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:b4/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:b4/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:d4/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:53:96/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:d4/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:d4/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6b:08/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:54:c4/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6b:08/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6b:08/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8a:8c:76/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:54:c8/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8a:8c:76/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8a:8c:76/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8a:8d:0a/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:55:78/meta-data)0
-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-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:55:ae/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8b:53:60/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:53:60/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8b:53:96/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:55:d8/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8b:53:96/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:53:96/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8b:55:d8/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:56:8c/meta-data)0
-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-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:56:b6/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:56/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ac:d7:56/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:76/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:56:e2/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:76/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ac:d7:76/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:8c/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ab:d7:4a/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:8c/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ac:d7:8c/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:ba/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ab:d7:92/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:ba/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ac:d7:ba/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:c0/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ab:d9:ae/meta-data)0
-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-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ac:d7:56/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:d6/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ac:d7:d6/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d9:2e/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ac:d7:76/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d9:2e/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d9:2e/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/40:8d:5c:e7:b2:6e/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ac:d7:8c/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/40:8d:5c:e7:b2:6e/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/40:8d:5c:e7:b2:6e/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/90:e2:ba:49:db:b4/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ac:d7:ba/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/90:e2:ba:49:db:b4/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/90:e2:ba:49:db:b4/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/90:e2:ba:55:be:32/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ac:d7:c0/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/90:e2:ba:55:be:32/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/90:e2:ba:55:be:32/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/a0:a3:3b:c1:12:fa/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ac:d7:d6/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/a0:a3:3b:c1:12:fa/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/a0:a3:3b:c1:12:fa/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/a0:a3:3b:c1:14:28/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/cc:46:d6:17:e0:58/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/a0:a3:3b:c1:14:28/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/a0:a3:3b:c1:14:28/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:02:b1:9f/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/40:8d:5c:e7:b2:6e/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:02:b1:9f/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:02:b1:9f/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:02:b1:bb/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/90:e2:ba:49:db:b4/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:02:b1:bb/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:02:b1:bb/user-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:e7:a9:6c/meta-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/90:e2:ba:55:be:32/meta-data)0
-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-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/a0:a3:3b:c1:12:fa/meta-data)0
-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-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/a0:a3:3b:c1:14:28/meta-data)0
-rw-r--r--fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/e0:d5:5e:ae:70:26/user-data (renamed from fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/e0:d5:5e:ae:70:26/user-data)0
-rw-r--r--pylint.cfg721
-rw-r--r--requirements.txt82
-rw-r--r--resources/api/vpp/supported_crcs.yaml580
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.md (renamed from docs/job_specs/mrr_daily/vpp-2n-aws.md)0
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.md (renamed from docs/job_specs/mrr_daily/vpp-2n-icx.md)0
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.md (renamed from docs/job_specs/mrr_daily/vpp-2n-zn2.md)0
l---------resources/job_specs/mrr_daily/vpp-3n-alt.md (renamed from docs/job_specs/mrr_daily/vpp-3n-alt.md)0
l---------resources/job_specs/mrr_daily/vpp-3n-aws.md (renamed from docs/job_specs/mrr_daily/vpp-3n-aws.md)0
l---------resources/job_specs/mrr_daily/vpp-3n-c6in.md1
l---------resources/job_specs/mrr_daily/vpp-3n-icx.md (renamed from docs/job_specs/mrr_daily/vpp-3n-icx.md)0
l---------resources/job_specs/mrr_daily/vpp-3n-icxd.md1
l---------resources/job_specs/mrr_daily/vpp-3n-snr.md (renamed from docs/job_specs/mrr_daily/vpp-3n-snr.md)0
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.md (renamed from docs/job_specs/mrr_weekly/dpdk-3n-alt.md)0
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.md (renamed from docs/job_specs/mrr_weekly/vpp-2n-aws.md)0
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.md (renamed from docs/job_specs/mrr_weekly/vpp-2n-icx.md)0
l---------resources/job_specs/mrr_weekly/vpp-3n-aws.md (renamed from docs/job_specs/mrr_weekly/vpp-3n-aws.md)0
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.md43
-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.md43
-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.md45
-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/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.md44
-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.md231
-rw-r--r--resources/job_specs/report_iterative/3n-icxd/vpp-ndrpdr-00.md219
-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.md231
-rw-r--r--resources/job_specs/report_iterative/3n-snr/vpp-ndrpdr-00.md219
-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.md (renamed from docs/job_specs/vpp_device/vpp-1n-skx.md)8
-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/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_docs.sh32
-rwxr-xr-xresources/libraries/bash/entry/bootstrap_report.sh6
-rwxr-xr-xresources/libraries/bash/entry/bootstrap_trending.sh32
-rwxr-xr-xresources/libraries/bash/entry/bootstrap_verify_perf.sh11
-rwxr-xr-xresources/libraries/bash/entry/bootstrap_vpp_device.sh9
-rwxr-xr-xresources/libraries/bash/entry/patch_l3fwd_flip_routes2
-rw-r--r--resources/libraries/bash/entry/per_patch_device.sh17
-rw-r--r--resources/libraries/bash/entry/per_patch_perf.sh29
-rw-r--r--resources/libraries/bash/entry/tox/README.txt14
-rw-r--r--resources/libraries/bash/entry/tox/copyright_year.sh9
-rw-r--r--resources/libraries/bash/entry/tox/doc_verify.sh51
-rw-r--r--resources/libraries/bash/entry/tox/fix_copyright_year.sh55
-rw-r--r--resources/libraries/bash/entry/tox/model_version.sh65
-rw-r--r--resources/libraries/bash/function/README.txt20
-rw-r--r--resources/libraries/bash/function/ansible.sh12
-rw-r--r--resources/libraries/bash/function/artifacts.sh79
-rw-r--r--resources/libraries/bash/function/branch.sh6
-rw-r--r--resources/libraries/bash/function/common.sh539
-rw-r--r--resources/libraries/bash/function/device.sh37
-rw-r--r--resources/libraries/bash/function/docs.sh267
-rw-r--r--resources/libraries/bash/function/dpdk.sh23
-rw-r--r--resources/libraries/bash/function/eb_version.sh159
-rw-r--r--resources/libraries/bash/function/gather.sh13
-rw-r--r--resources/libraries/bash/function/hugo.sh113
-rwxr-xr-xresources/libraries/bash/function/nginx.sh8
-rw-r--r--resources/libraries/bash/function/per_patch.sh216
-rw-r--r--resources/libraries/bash/function/terraform.sh115
-rwxr-xr-xresources/libraries/bash/k8s_setup.sh65
-rw-r--r--resources/libraries/bash/shell/k8s_utils.sh132
-rw-r--r--resources/libraries/python/Constants.py429
-rw-r--r--resources/libraries/python/ContainerUtils.py74
-rw-r--r--resources/libraries/python/CoreDumpUtil.py12
-rw-r--r--resources/libraries/python/CpuUtils.py178
-rw-r--r--resources/libraries/python/DMAUtil.py213
-rw-r--r--resources/libraries/python/DPDK/L3fwdTest.py59
-rw-r--r--resources/libraries/python/DPDK/TestpmdTest.py30
-rw-r--r--resources/libraries/python/DUTSetup.py232
-rw-r--r--resources/libraries/python/FlowUtil.py6
-rw-r--r--resources/libraries/python/HoststackUtil.py118
-rw-r--r--resources/libraries/python/IPTopology.py177
-rw-r--r--resources/libraries/python/IPUtil.py54
-rw-r--r--resources/libraries/python/IPsecUtil.py1946
-rw-r--r--resources/libraries/python/InterfaceUtil.py94
-rw-r--r--resources/libraries/python/Iperf3.py6
-rw-r--r--resources/libraries/python/L2Util.py20
-rw-r--r--resources/libraries/python/LispSetup.py2
-rw-r--r--resources/libraries/python/LoadBalancerUtil.py8
-rw-r--r--resources/libraries/python/MLRsearch/AbstractMeasurer.py32
-rw-r--r--resources/libraries/python/MLRsearch/AbstractSearchAlgorithm.py48
-rw-r--r--resources/libraries/python/MLRsearch/MeasurementDatabase.py157
-rw-r--r--resources/libraries/python/MLRsearch/MultipleLossRatioSearch.py485
-rw-r--r--resources/libraries/python/MLRsearch/PerDurationDatabase.py123
-rw-r--r--resources/libraries/python/MLRsearch/ProgressState.py60
-rw-r--r--resources/libraries/python/MLRsearch/ReceiveRateInterval.py74
-rw-r--r--resources/libraries/python/MLRsearch/ReceiveRateMeasurement.py125
-rw-r--r--resources/libraries/python/MLRsearch/WidthArithmetics.py137
-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.py12
-rw-r--r--resources/libraries/python/NGINX/NGINXTools.py14
-rw-r--r--resources/libraries/python/NodePath.py4
-rw-r--r--resources/libraries/python/PLRsearch/Integrator.py59
-rw-r--r--resources/libraries/python/PLRsearch/PLRsearch.py186
-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.py752
-rw-r--r--resources/libraries/python/PapiHistory.py24
-rw-r--r--resources/libraries/python/Policer.py16
-rw-r--r--resources/libraries/python/QATUtil.py92
-rw-r--r--resources/libraries/python/QemuUtils.py6
-rw-r--r--resources/libraries/python/SRv6.py11
-rw-r--r--resources/libraries/python/SetupFramework.py16
-rw-r--r--resources/libraries/python/TRexConfigGenerator.py301
-rw-r--r--resources/libraries/python/Tap.py4
-rw-r--r--resources/libraries/python/TelemetryUtil.py136
-rw-r--r--resources/libraries/python/TestConfig.py142
-rw-r--r--resources/libraries/python/TrafficGenerator.py606
-rw-r--r--resources/libraries/python/VPPUtil.py105
-rw-r--r--resources/libraries/python/VatExecutor.py397
-rw-r--r--resources/libraries/python/VatJsonUtil.py218
-rw-r--r--resources/libraries/python/VppApiCrc.py41
-rw-r--r--resources/libraries/python/VppConfigGenerator.py353
-rw-r--r--resources/libraries/python/WireGuardUtil.py94
-rw-r--r--resources/libraries/python/autogen/Regenerator.py164
-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/ExportLog.py148
-rw-r--r--resources/libraries/python/model/ExportResult.py221
-rw-r--r--resources/libraries/python/model/MemDump.py194
-rw-r--r--resources/libraries/python/model/export_json.py236
-rw-r--r--resources/libraries/python/model/mem2raw.py145
-rw-r--r--resources/libraries/python/model/parse.py112
-rw-r--r--resources/libraries/python/model/raw2info.py294
-rw-r--r--resources/libraries/python/model/util.py8
-rw-r--r--resources/libraries/python/model/validate.py41
-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.py51
-rw-r--r--resources/libraries/python/topology.py19
-rw-r--r--resources/libraries/robot/crypto/ipsec.robot37
-rw-r--r--resources/libraries/robot/features/acl.robot6
-rw-r--r--resources/libraries/robot/features/dma.robot28
-rw-r--r--resources/libraries/robot/hoststack/hoststack.robot192
-rw-r--r--resources/libraries/robot/ip/ip4.robot86
-rw-r--r--resources/libraries/robot/ip/ip6.robot10
-rw-r--r--resources/libraries/robot/l2/l2_bridge_domain.robot10
-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/overlay/srv6.robot12
-rw-r--r--resources/libraries/robot/performance/performance_actions.robot80
-rw-r--r--resources/libraries/robot/performance/performance_display.robot94
-rw-r--r--resources/libraries/robot/performance/performance_utils.robot109
-rw-r--r--resources/libraries/robot/performance/performance_vars.robot13
-rw-r--r--resources/libraries/robot/shared/container.robot12
-rw-r--r--resources/libraries/robot/shared/default.robot68
-rw-r--r--resources/libraries/robot/shared/interfaces.robot87
-rw-r--r--resources/libraries/robot/shared/suite_setup.robot52
-rw-r--r--resources/libraries/robot/shared/suite_teardown.robot1
-rw-r--r--resources/libraries/robot/shared/test_setup.robot4
-rw-r--r--resources/libraries/robot/shared/test_teardown.robot4
-rw-r--r--resources/libraries/robot/shared/vm.robot11
-rw-r--r--resources/libraries/robot/wireguard/wireguard.robot8
-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.yaml673
-rw-r--r--resources/templates/telemetry/perf_stat_runtime.yaml134
-rw-r--r--resources/templates/telemetry/vpp_clear_stats.yaml64
-rw-r--r--resources/templates/telemetry/vpp_runtime.yaml347
-rw-r--r--resources/templates/telemetry/vpp_show_stats.yaml60
-rw-r--r--resources/templates/telemetry/vpp_test_teardown.yaml60
-rw-r--r--resources/templates/telemetry/vppctl_clear_stats.yaml64
-rw-r--r--resources/templates/telemetry/vppctl_runtime.yaml306
-rw-r--r--resources/templates/telemetry/vppctl_show_stats.yaml60
-rw-r--r--resources/templates/telemetry/vppctl_test_teardown.yaml60
-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_dma.conf9
-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
-rwxr-xr-xresources/tools/ab/ABFork.py4
-rw-r--r--resources/tools/ab/ABTools.py135
-rw-r--r--resources/tools/dash/Dockerfile12
-rw-r--r--resources/tools/dash/app/.ebextensions/cron-linux.config14
-rw-r--r--resources/tools/dash/app/app.ini20
-rw-r--r--resources/tools/dash/app/config.py27
-rw-r--r--resources/tools/dash/app/pal/__init__.py69
-rw-r--r--resources/tools/dash/app/pal/data/__init__.py12
-rw-r--r--resources/tools/dash/app/pal/data/data.py351
-rw-r--r--resources/tools/dash/app/pal/data/data.yaml117
-rw-r--r--resources/tools/dash/app/pal/debug.py45
-rw-r--r--resources/tools/dash/app/pal/news/__init__.py12
-rw-r--r--resources/tools/dash/app/pal/news/layout.py707
-rw-r--r--resources/tools/dash/app/pal/news/news.py46
-rw-r--r--resources/tools/dash/app/pal/news/tables.py85
-rw-r--r--resources/tools/dash/app/pal/report/__init__.py12
-rw-r--r--resources/tools/dash/app/pal/report/graphs.py275
-rw-r--r--resources/tools/dash/app/pal/report/layout.py1446
-rw-r--r--resources/tools/dash/app/pal/report/layout.yaml240
-rw-r--r--resources/tools/dash/app/pal/static/dist/css/bootstrap.min.css12
-rw-r--r--resources/tools/dash/app/pal/stats/__init__.py12
-rw-r--r--resources/tools/dash/app/pal/stats/graphs.py138
-rw-r--r--resources/tools/dash/app/pal/stats/layout.py920
-rw-r--r--resources/tools/dash/app/pal/stats/layout.yaml117
-rw-r--r--resources/tools/dash/app/pal/stats/stats.py48
-rw-r--r--resources/tools/dash/app/pal/templates/base_layout.jinja222
-rw-r--r--resources/tools/dash/app/pal/templates/index_layout.jinja234
-rw-r--r--resources/tools/dash/app/pal/templates/news_layout.jinja217
-rw-r--r--resources/tools/dash/app/pal/templates/report_layout.jinja217
-rw-r--r--resources/tools/dash/app/pal/templates/stats_layout.jinja217
-rw-r--r--resources/tools/dash/app/pal/templates/trending_layout.jinja217
-rw-r--r--resources/tools/dash/app/pal/trending/__init__.py12
-rw-r--r--resources/tools/dash/app/pal/trending/graphs.py417
-rw-r--r--resources/tools/dash/app/pal/trending/layout.py1393
-rw-r--r--resources/tools/dash/app/pal/trending/layout.yaml210
-rw-r--r--resources/tools/dash/app/pal/trending/trending.py48
-rw-r--r--resources/tools/dash/app/pal/utils/__init__.py12
-rw-r--r--resources/tools/dash/app/pal/utils/constants.py312
-rw-r--r--resources/tools/dash/app/pal/utils/tooltips.yaml40
-rw-r--r--resources/tools/dash/app/pal/utils/utils.py344
-rw-r--r--resources/tools/dash/app/requirements.txt39
-rw-r--r--resources/tools/dash/docker-compose.yaml15
-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.py322
-rw-r--r--resources/tools/doc_gen/src/Makefile225
-rw-r--r--resources/tools/doc_gen/src/conf.py302
-rw-r--r--resources/tools/doc_gen/src/index.rst16
-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.trex.perf.rst2
-rw-r--r--resources/tools/doc_gen/src/tests.vpp.device.rst3
-rw-r--r--resources/tools/doc_gen/src/tests.vpp.perf.rst3
-rw-r--r--resources/tools/integrated/check_crc.py3
-rw-r--r--resources/tools/integrated/compare_bisect.py134
-rw-r--r--resources/tools/integrated/compare_perpatch.py129
-rw-r--r--resources/tools/presentation/README.md52
-rw-r--r--resources/tools/presentation/__init__.py34
-rw-r--r--resources/tools/presentation/convert_xml_json.py410
-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.rst1715
-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/generator_alerts.py554
-rw-r--r--resources/tools/presentation/generator_cpta.py998
-rw-r--r--resources/tools/presentation/generator_files.py436
-rw-r--r--resources/tools/presentation/generator_plots.py1863
-rw-r--r--resources/tools/presentation/generator_report.py270
-rw-r--r--resources/tools/presentation/generator_tables.py2305
-rw-r--r--resources/tools/presentation/input_data_files.py312
-rw-r--r--resources/tools/presentation/input_data_parser.py2162
-rw-r--r--resources/tools/presentation/json/template_0.1.0.json23
-rw-r--r--resources/tools/presentation/pal.py196
-rw-r--r--resources/tools/presentation/pal_errors.py83
-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.txt13
-rwxr-xr-xresources/tools/presentation/run_convert.sh35
-rw-r--r--resources/tools/presentation/specification_parser.py920
-rw-r--r--resources/tools/presentation/specifications/converter/environment.yaml130
-rw-r--r--resources/tools/presentation/specifications/converter/input.yaml21
-rw-r--r--resources/tools/presentation/specifications/report/data_sets.yaml1812
-rw-r--r--resources/tools/presentation/specifications/report/elements.yaml16319
-rw-r--r--resources/tools/presentation/specifications/report/environment.yaml251
-rw-r--r--resources/tools/presentation/specifications/report/layouts.yaml875
-rw-r--r--resources/tools/presentation/specifications/report_local/data_sets.yaml51
-rw-r--r--resources/tools/presentation/specifications/report_local/elements.yaml322
-rw-r--r--resources/tools/presentation/specifications/report_local/environment.yaml265
-rw-r--r--resources/tools/presentation/specifications/report_local/layouts.yaml875
-rw-r--r--resources/tools/presentation/specifications/trending/data_sets.yaml331
-rw-r--r--resources/tools/presentation/specifications/trending/elements.yaml7090
-rw-r--r--resources/tools/presentation/specifications/trending/environment.yaml196
-rw-r--r--resources/tools/presentation/specifications/trending/layouts.yaml212
-rw-r--r--resources/tools/presentation/sphinx_conf/report/conf.py304
-rw-r--r--resources/tools/presentation/sphinx_conf/trending/conf.py113
-rw-r--r--resources/tools/presentation/static_content.py62
-rwxr-xr-xresources/tools/scripts/topo_reservation.py21
-rwxr-xr-xresources/tools/telemetry/__main__.py4
-rw-r--r--resources/tools/telemetry/bundle_bpf.py19
-rw-r--r--resources/tools/telemetry/bundle_perf_stat.py112
-rw-r--r--resources/tools/telemetry/bundle_vppctl.py6
-rw-r--r--resources/tools/telemetry/constants.py4
-rw-r--r--resources/tools/telemetry/metrics.py8
-rw-r--r--resources/tools/telemetry/serializer.py2
-rw-r--r--tests/__init__.robot4
-rw-r--r--tests/dpdk/perf/10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.robot4
-rw-r--r--tests/dpdk/perf/10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.robot4
-rw-r--r--tests/dpdk/perf/2n1l-10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.robot4
-rw-r--r--tests/dpdk/perf/2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.robot4
-rw-r--r--tests/trex/perf/__init__.robot2
-rw-r--r--tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4-ip4base-tg-ndrpdr.robot8
-rw-r--r--tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4-ip4scale20k-tg-ndrpdr.robot93
-rw-r--r--tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4-ip4scale2m-tg-ndrpdr.robot93
-rw-r--r--tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4tcp-ip4base-h1024-p63-s64512-cps-tg-ndrpdr.robot7
-rw-r--r--tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4tcp-ip4base-h1024-p63-s64512-tput-tg-ndrpdr.robot6
-rw-r--r--tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg-ndrpdr.robot6
-rw-r--r--tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg-ndrpdr.robot6
-rw-r--r--tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4udp-ip4base-h1024-p63-s64512-cps-tg-ndrpdr.robot6
-rw-r--r--tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4udp-ip4base-h1024-p63-s64512-tput-tg-ndrpdr.robot6
-rw-r--r--tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4udp-ip4base-h262144-p63-s16515072-cps-tg-ndrpdr.robot6
-rw-r--r--tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4udp-ip4base-h262144-p63-s16515072-tput-tg-ndrpdr.robot6
-rw-r--r--tests/trex/perf/ip6/1n1l-10ge2p1x710-ethip6-ip6base-tg-ndrpdr.robot8
-rw-r--r--tests/trex/perf/ip6/1n1l-10ge2p1x710-ethip6-ip6scale20k-tg-ndrpdr.robot93
-rw-r--r--tests/trex/perf/ip6/1n1l-10ge2p1x710-ethip6-ip6scale2m-tg-ndrpdr.robot93
-rw-r--r--tests/trex/perf/l2/1n1l-10ge2p1x710-eth-l2bdscale1mmaclrn-tg-ndrpdr.robot4
-rw-r--r--tests/vpp/device/__init__.robot5
-rw-r--r--tests/vpp/device/ip4_tunnels/2n1l-10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-scapy.robot2
-rw-r--r--tests/vpp/device/ip4_tunnels/2n1l-10ge2p1x710-ethip4vxlan-l2xcbase-scapy.robot2
-rw-r--r--tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6ip6-ip6base-srv6enc1sid-scapy.robot4
-rw-r--r--tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-scapy.robot4
-rw-r--r--tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6enc2sids-scapy.robot4
-rw-r--r--tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-dyn-scapy.robot4
-rw-r--r--tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-masq-scapy.robot4
-rw-r--r--tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-stat-scapy.robot4
-rw-r--r--tests/vpp/device/vm_vhost/ethip4/2n1l-10ge2p1x710-ethip4-ip4base-eth-2vhost-1vm-scapy.robot2
-rw-r--r--tests/vpp/device/vm_vhost/ethip4/2n1l-10ge2p1x710-ethip4-l2bdbasemaclrn-eth-2vhost-1vm-scapy.robot2
-rw-r--r--tests/vpp/device/vm_vhost/ethip4/2n1l-10ge2p1x710-ethip4-l2xcbase-eth-2vhost-1vm-scapy.robot2
-rw-r--r--tests/vpp/device/vm_vhost/ethip6/2n1l-10ge2p1x710-ethip6-ip6base-eth-2vhost-1vm-scapy.robot2
-rw-r--r--tests/vpp/perf/__init__.robot8
-rw-r--r--tests/vpp/perf/container_memif/10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/container_memif/10ge2p1x710-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-2memif-1dcr-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/container_memif/10ge2p1x710-eth-l2xcbase-eth-2memif-1lxc-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/container_memif/10ge2p1x710-ethip4-ip4base-eth-2memif-1dcr-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/container_memif/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr.robot6
-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.robot4
-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.robot4
-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.robot4
-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-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr.robot5
-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.robot5
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot169
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-int-aes128gcm-ndrpdr.robot171
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-ndrpdr.robot171
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-policy-aes256gcm-ndrpdr.robot171
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot9
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes128gcm-ndrpdr.robot9
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm-ndrpdr.robot9
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm-ndrpdr.robot9
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-aes256gcm-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-dir-aes256gcm-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-fixtnlip-ip4base-policy-flow-rss-aes256gcm-ndrpdr.robot11
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot5
-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.robot5
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr.robot5
-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-aes256gcm-ndrpdr.robot5
-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.robot5
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot169
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-int-aes128gcm-ndrpdr.robot171
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr.robot171
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-policy-aes256gcm-ndrpdr.robot171
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot9
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes128gcm-ndrpdr.robot9
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm-ndrpdr.robot9
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm-ndrpdr.robot9
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot5
-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.robot5
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-ndrpdr.robot5
-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-aes256gcm-ndrpdr.robot5
-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.robot7
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes128gcm-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes256gcm-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-policy-fastpath-aes256gcm-ndrpdr.robot176
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot5
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128gcm-reconf.robot5
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes256gcm-reconf.robot5
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes128gcm-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot9
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes128gcm-ndrpdr.robot9
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm-ndrpdr.robot9
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-policy-aes256gcm-ndrpdr.robot169
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-ndrpdr.robot5
-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.robot7
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec10spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec10spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-policy-aes256gcm-udir-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes128gcm-udir-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlsw-ip4base-int-aes256gcm-udir-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-udir-reconf.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128gcm-udir-reconf.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes256gcm-udir-reconf.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes128gcm-udir-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-udir-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes128gcm-udir-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm-udir-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/crypto/2n1l-10ge2p1x710-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-udir-ndrpdr.robot7
-rwxr-xr-xtests/vpp/perf/crypto/regenerate_testcases.py2
-rw-r--r--tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-gso-iperf3-mrr.robot2
-rw-r--r--tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-iperf3-mrr.robot2
-rw-r--r--tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2vhost-gso-iperf3-mrr.robot4
-rw-r--r--tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2vhost-iperf3-mrr.robot4
-rwxr-xr-xtests/vpp/perf/gso/regenerate_testcases.py2
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpbase-ldpreload-iperf3-bps.robot2
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpbase-nsim-ldpreload-iperf3-bps.robot2
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-ldpreload-iperf3-bps.robot2
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-nsim-ldpreload-iperf3-bps.robot2
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpbase-ldpreload-iperf3-bps.robot2
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicbase-vppecho-bps.robot6
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale10cl10s-vppecho-bps.robot4
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale10cl1s-vppecho-bps.robot4
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale1cl10s-vppecho-bps.robot4
-rw-r--r--tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpscale1cl10s-ldpreload-iperf3-bps.robot2
-rw-r--r--tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-dma-ldpreload-nginx-1_21_5-cps.robot122
-rw-r--r--tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-dma-ldpreload-nginx-1_21_5-rps.robot122
-rw-r--r--tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_14_2-cps.robot123
-rw-r--r--tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_14_2-rps.robot123
-rw-r--r--tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps.robot123
-rw-r--r--tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps.robot123
-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.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-adlalwlistbase-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-iacldstbase-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-ipolicemarkbase-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale1m-ndrpdr.robot145
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale200k-ndrpdr.robot8
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale200k-rnd-ndrpdr.robot8
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale20k-ndrpdr.robot8
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale20k-rnd-ndrpdr.robot8
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale2m-ndrpdr.robot8
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4scale2m-rnd-ndrpdr.robot8
-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.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sf-100kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sf-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sl-100flows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sl-100kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl10sl-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sf-100flows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sf-100kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sf-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sl-100flows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sl-100kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl1sl-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sf-100flows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sf-100kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sl-100flows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sl-100kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sf-100flows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sf-100kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sf-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sl-100flows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sl-100kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl10sl-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sf-100flows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sf-100kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sf-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sl-100flows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sl-100kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl1sl-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sf-100flows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sf-100kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sl-100flows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sl-100kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-dot1q-ip4base-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-adlalwlistbase-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-iacldstbase-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-ipolicemarkbase-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-ndrpdr.robot4
-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.robot8
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale200k-rnd-ndrpdr.robot8
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale20k-ndrpdr.robot8
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale20k-rnd-ndrpdr.robot8
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale2m-ndrpdr.robot8
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4scale2m-rnd-ndrpdr.robot8
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h1024-p63-s64512-tput-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h16384-p63-s1032192-tput-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h262144-p63-s16515072-tput-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h4096-p63-s258048-tput-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-ip4base-h65536-p63-s4128768-tput-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h262144-p63-s16515072-tput-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h4096-p63-s258048-tput-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h1024-p63-s64512-tput-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h16384-p63-s1032192-tput-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h262144-p63-s16515072-tput-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h4096-p63-s258048-tput-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-h65536-p63-s4128768-tput-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl1sf-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl1sl-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h1-p1-s1-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h262144-p63-s16515072-tput-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h4096-p63-s258048-tput-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.robot2
-rwxr-xr-xtests/vpp/perf/ip4/regenerate_testcases.py2
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr.robot6
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-dot1q--ethip4vxlan-l2bdscale10l2bd10vlan10vxlan-ndrpdr.robot6
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-dot1q--ethip4vxlan-l2bdscale1kl2bd1kvlan1kvxlan-ndrpdr.robot6
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-dot1q--ethip4vxlan-l2bdscale1l2bd1vlan1vxlan-ndrpdr.robot6
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4gtpuhw-ip4base-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4gtpusw-ip4base-ndrpdr.robot4
-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.robot4
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4lispip6-ip4base-ndrpdr.robot4
-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.robot10
-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.robot8
-rw-r--r--tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4vxlan-l2xcbase-ndrpdr.robot6
-rw-r--r--tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-1024tun-ip4base-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-16tun-ip4base-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-1tun-ip4base-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-256tun-ip4base-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-4tun-ip4base-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip4_tunnels/2n1l-10ge2p1x710-ethip4--ethip4udpgeneve-64tun-ip4base-ndrpdr.robot4
-rwxr-xr-xtests/vpp/perf/ip4_tunnels/regenerate_testcases.py2
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-dot1q-ip6base-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-adlalwlistbase-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-iacldstbase-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale1m-ndrpdr.robot145
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale200k-ndrpdr.robot10
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale200k-rnd-ndrpdr.robot10
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale20k-ndrpdr.robot10
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale20k-rnd-ndrpdr.robot10
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale2m-ndrpdr.robot10
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale2m-rnd-ndrpdr.robot10
-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.robot4
-rw-r--r--tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6base-adlalwlistbase-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6base-iacldstbase-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6base-ndrpdr.robot4
-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.robot9
-rw-r--r--tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale200k-rnd-ndrpdr.robot9
-rw-r--r--tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale20k-ndrpdr.robot9
-rw-r--r--tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale20k-rnd-ndrpdr.robot9
-rw-r--r--tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale2m-ndrpdr.robot9
-rw-r--r--tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale2m-rnd-ndrpdr.robot9
-rwxr-xr-xtests/vpp/perf/ip6/regenerate_testcases.py2
-rw-r--r--tests/vpp/perf/ip6_tunnels/10ge2p1x710-ethip6lispip4-ip6base-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip6_tunnels/10ge2p1x710-ethip6lispip6-ip6base-ndrpdr.robot4
-rwxr-xr-xtests/vpp/perf/ip6_tunnels/regenerate_testcases.py2
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-dot1ad-l2xcbase-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-dot1q-l2bdbasemaclrn-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-dot1q-l2xcbase-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale100kmaclrn-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale10kmaclrn-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale1mmaclrn-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2patch-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/10ge2p1x710-eth-l2xcbase-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/l2/2n1l-10ge2p1x710-dot1q-l2xcbase-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdscale100kmaclrn-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdscale10kmaclrn-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdscale1mmaclrn-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2patch-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2xcbase-ndrpdr.robot4
-rwxr-xr-xtests/vpp/perf/l2/regenerate_testcases.py2
-rw-r--r--tests/vpp/perf/lb/2n1l-10ge2p1x710-ethip4-loadbalancer-l3dsr-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/lb/2n1l-10ge2p1x710-ethip4-loadbalancer-maglev-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/lb/2n1l-10ge2p1x710-ethip4-loadbalancer-nat4-ndrpdr.robot4
-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.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-10ch-20mif-10dcr2t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-10ch-40mif-20dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-12mif-6dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-12mif-6dcr2t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-16mif-8dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-16mif-8dcr2t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-20mif-10dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-20mif-10dcr2t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-2mif-1dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-2mif-1dcr2t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-4mif-2dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-4mif-2dcr2t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-8mif-4dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-1ch-8mif-4dcr2t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-16mif-8dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-16mif-8dcr2t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-24mif-12dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-24mif-12dcr2t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-32mif-16dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-32mif-16dcr2t-vppip4-ndrpdr.robot18
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-40mif-20dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-4mif-2dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-4mif-2dcr2t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-8mif-4dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-2ch-8mif-4dcr2t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-16mif-8dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-16mif-8dcr2t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-32mif-16dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-32mif-16dcr2t-vppip4-ndrpdr.robot18
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-48mif-24dcr1t-vppip4-ndrpdr.robot18
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-8mif-4dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-4ch-8mif-4dcr2t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-6ch-12mif-6dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-6ch-12mif-6dcr2t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-6ch-24mif-12dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-6ch-24mif-12dcr2t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-6ch-48mif-24dcr1t-vppip4-ndrpdr.robot18
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-8ch-16mif-8dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-8ch-16mif-8dcr2t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-8ch-32mif-16dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain/2n-10ge2p1x710-eth-l2bd-8ch-32mif-16dcr2t-vppip4-ndrpdr.robot18
-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.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec20000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec20000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec20000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec20000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec400tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot171
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec400tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec400tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec400tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec5000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec5000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec5000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec5000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec60000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec60000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec60000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec60000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot172
-rwxr-xr-xtests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/regenerate_testcases.py18
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-10pl-20mif-10dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-10pl-20mif-10dcr2t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-10pl-20mif-20dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-10dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-10dcr2t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-1dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-1dcr2t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-2dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-2dcr2t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-4dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-4dcr2t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-6dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-6dcr2t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-8dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-1pl-2mif-8dcr2t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-12dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-12dcr2t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-16dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-16dcr2t-vppip4-ndrpdr.robot18
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-20dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-2dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-2dcr2t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-4dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-4dcr2t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-8dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-4mif-8dcr2t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-8mif-4dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-2pl-8mif-4dcr2t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-4pl-8mif-16dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-4pl-8mif-16dcr2t-vppip4-ndrpdr.robot18
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-4pl-8mif-24dcr1t-vppip4-ndrpdr.robot18
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-4pl-8mif-8dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-4pl-8mif-8dcr2t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-6pl-12mif-12dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-6pl-12mif-12dcr2t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-6pl-12mif-24dcr1t-vppip4-ndrpdr.robot18
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-6pl-12mif-6dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-6pl-12mif-6dcr2t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-8pl-16mif-16dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-8pl-16mif-16dcr2t-vppip4-ndrpdr.robot18
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-8pl-16mif-8dcr1t-vppip4-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/nfv_density/dcr_memif/pipeline/2n-10ge2p1x710-eth-l2bd-8pl-16mif-8dcr2t-vppip4-ndrpdr.robot2
-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.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-10ch-20vh-10vm2t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-10ch-40vh-20vm1t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-12vh-6vm1t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-12vh-6vm2t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-16vh-8vm1t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-16vh-8vm2t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-20vh-10vm1t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-20vh-10vm2t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-2vh-1vm1t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-2vh-1vm2t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-4vh-2vm1t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-4vh-2vm2t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-8vh-4vm1t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-1ch-8vh-4vm2t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-16vh-8vm1t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-16vh-8vm2t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-24vh-12vm1t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-24vh-12vm2t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-32vh-16vm1t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-32vh-16vm2t-vppip4-ndrpdr.robot20
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-40vh-20vm1t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-4vh-2vm1t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-4vh-2vm2t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-8vh-4vm1t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-2ch-8vh-4vm2t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-16vh-8vm1t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-16vh-8vm2t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-32vh-16vm1t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-32vh-16vm2t-vppip4-ndrpdr.robot20
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-48vh-24vm1t-vppip4-ndrpdr.robot20
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-8vh-4vm1t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-4ch-8vh-4vm2t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-6ch-12vh-6vm1t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-6ch-12vh-6vm2t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-6ch-24vh-12vm1t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-6ch-24vh-12vm2t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-6ch-48vh-24vm1t-vppip4-ndrpdr.robot20
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-8ch-16vh-8vm1t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-8ch-16vh-8vm2t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-8ch-32vh-16vm1t-vppip4-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain/2n-10ge2p1x710-eth-l2bd-8ch-32vh-16vm2t-vppip4-ndrpdr.robot20
-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.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-10ch-1ach-20vh-10vm2t-testpmd-reconf.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-10ch-20vh-10vm1t-testpmd-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-10ch-20vh-10vm2t-testpmd-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm1t-testpmd-reconf.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-1ch-1ach-2vh-1vm2t-testpmd-reconf.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-1ch-2vh-1vm2t-testpmd-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm1t-testpmd-reconf.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-2ch-1ach-4vh-2vm2t-testpmd-reconf.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-2ch-4vh-2vm2t-testpmd-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm1t-testpmd-reconf.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-4ch-1ach-8vh-4vm2t-testpmd-reconf.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-4ch-8vh-4vm2t-testpmd-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-6ch-12vh-6vm2t-testpmd-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm1t-testpmd-reconf.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-6ch-1ach-12vh-6vm2t-testpmd-reconf.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-8ch-16vh-8vm1t-testpmd-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-8ch-16vh-8vm2t-testpmd-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-8ch-1ach-16vh-8vm1t-testpmd-reconf.robot4
-rw-r--r--tests/vpp/perf/nfv_density/vm_vhost/chain_dot1qip4vxlan/2n-10ge2p1x710-dot1qip4vxlan-l2bd-8ch-1ach-16vh-8vm2t-testpmd-reconf.robot4
-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.robot4
-rw-r--r--tests/vpp/perf/srv6/10ge2p1x710-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/srv6/10ge2p1x710-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/srv6/10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/srv6/10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/srv6/10ge2p1x710-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr.robot4
-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.robot5
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot5
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot165
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot166
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot162
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot163
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot6
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot6
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot6
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot6
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot6
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot6
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot6
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot6
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr.robot6
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr.robot6
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/vm_vhost/10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot7
-rw-r--r--tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot6
-rw-r--r--tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot6
-rw-r--r--tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2bdbasemaclrn-eth-2virtiovr1024-1vm-vppl2xc-ndrpdr.robot6
-rw-r--r--tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot6
-rw-r--r--tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot6
-rw-r--r--tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-dot1q-l2xcbase-eth-2virtiovr1024-1vm-vppl2xc-ndrpdr.robot6
-rw-r--r--tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot6
-rw-r--r--tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot6
-rw-r--r--tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-eth-2virtiovr1024-1vm-vppl2xc-ndrpdr.robot6
-rw-r--r--tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot6
-rw-r--r--tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot6
-rw-r--r--tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-eth-l2xcbase-eth-2virtiovr1024-1vm-vppl2xc-ndrpdr.robot6
-rw-r--r--tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr.robot6
-rw-r--r--tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr.robot6
-rw-r--r--tests/vpp/perf/vm_vhost/2n1l-10ge2p1x710-ethip4-ip4base-eth-2virtiovr1024-1vm-vppip4-ndrpdr.robot6
-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.robot3
-rw-r--r--tests/vpp/perf/vts/2n1l-10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-ndrpdr.robot3
-rw-r--r--tests/vpp/perf/vts/2n1l-10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr.robot5
-rwxr-xr-xtests/vpp/perf/vts/regenerate_testcases.py2
-rw-r--r--topologies/available/3n_c6gn.template78
-rw-r--r--topologies/available/3n_c6in.template78
-rw-r--r--topologies/available/lf_2n_clx_testbed27.yaml66
-rw-r--r--topologies/available/lf_2n_clx_testbed28.yaml64
-rw-r--r--topologies/available/lf_2n_clx_testbed29.yaml64
-rw-r--r--topologies/available/lf_2n_dnv_testbed26.yaml53
-rw-r--r--topologies/available/lf_2n_icx_testbed212.yaml42
-rw-r--r--topologies/available/lf_2n_icx_testbed213.yaml42
-rw-r--r--topologies/available/lf_2n_icx_testbed214.yaml46
-rw-r--r--topologies/available/lf_2n_icx_testbed215.yaml42
-rw-r--r--topologies/available/lf_2n_skx_testbed21.yaml155
-rw-r--r--topologies/available/lf_2n_skx_testbed22.yaml155
-rw-r--r--topologies/available/lf_2n_skx_testbed23.yaml155
-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.yaml109
-rw-r--r--topologies/available/lf_3n_dnv_testbed35.yaml74
-rw-r--r--topologies/available/lf_3n_icx_testbed37.yaml50
-rw-r--r--topologies/available/lf_3n_icx_testbed38.yaml48
-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.yaml212
-rw-r--r--topologies/available/lf_3n_skx_testbed32.yaml212
-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--tox.ini52
4253 files changed, 142884 insertions, 247921 deletions
diff --git a/.gitignore b/.gitignore
index 5df788a0b7..c0a62a7a4c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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
@@ -27,4 +30,6 @@ report.html
.idea
.vscode
*.raw.json
-*.info.json \ No newline at end of file
+*.info.json
+.webassets-cache
+bootstrap.css \ No newline at end of file
diff --git a/DPDK_VPP_VER b/DPDK_VPP_VER
index 3d4b13728a..ec06286257 100644
--- a/DPDK_VPP_VER
+++ b/DPDK_VPP_VER
@@ -1 +1 @@
-dpdk-22.03
+dpdk-23.11
diff --git a/GPL/tools/trex/trex_astf_assert.py b/GPL/tools/trex/trex_astf_assert.py
index c276051c02..107253f5f0 100644
--- a/GPL/tools/trex/trex_astf_assert.py
+++ b/GPL/tools/trex/trex_astf_assert.py
@@ -38,7 +38,7 @@ Functionality:
import sys
sys.path.insert(
- 0, u"/opt/trex-core-2.97/scripts/automation/trex_control_plane/interactive/"
+ 0, u"/opt/trex-core-3.03/scripts/automation/trex_control_plane/interactive/"
)
from trex.astf.api import ASTFClient, TRexError
diff --git a/GPL/tools/trex/trex_astf_profile.py b/GPL/tools/trex/trex_astf_profile.py
index 205bd260cd..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) 2022 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,7 +34,7 @@ import sys
import time
sys.path.insert(
- 0, u"/opt/trex-core-2.97/scripts/automation/trex_control_plane/interactive/"
+ 0, u"/opt/trex-core-3.03/scripts/automation/trex_control_plane/interactive/"
)
from trex.astf.api import ASTFClient, ASTFProfile, TRexError
@@ -222,7 +222,7 @@ def simple_burst(
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"]
lost_b = stats[port_1][u"opackets"] - stats[port_0][u"ipackets"]
diff --git a/GPL/tools/trex/trex_astf_stop.py b/GPL/tools/trex/trex_astf_stop.py
index 9185478a55..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) 2022 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,7 +39,7 @@ import sys
from collections import OrderedDict # Needed to parse xstats representation.
sys.path.insert(
- 0, u"/opt/trex-core-2.97/scripts/automation/trex_control_plane/interactive/"
+ 0, "/opt/trex-core-3.03/scripts/automation/trex_control_plane/interactive/"
)
from trex.astf.api import ASTFClient
@@ -53,60 +48,48 @@ 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.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=; "
@@ -114,5 +97,5 @@ def main():
)
-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 296dc5b958..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) 2022 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,15 +30,12 @@ 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.97/scripts/automation/trex_control_plane/interactive/"
+ 0, "/opt/trex-core-3.03/scripts/automation/trex_control_plane/interactive/"
)
from trex.stl.api import STLClient, STLError
@@ -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 abf79cdf14..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) 2022 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,7 +34,7 @@ import sys
import time
sys.path.insert(
- 0, u"/opt/trex-core-2.97/scripts/automation/trex_control_plane/interactive/"
+ 0, "/opt/trex-core-3.03/scripts/automation/trex_control_plane/interactive/"
)
from trex.stl.api import STLClient, STLProfile, STLError
@@ -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,8 +74,7 @@ def simple_burst(
duration,
framesize,
rate,
- port_0,
- port_1,
+ ports,
latency,
async_start=False,
traffic_directions=2,
@@ -103,8 +102,7 @@ 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.
@@ -114,8 +112,7 @@ def simple_burst(
: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
@@ -126,10 +123,8 @@ def simple_burst(
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:
@@ -149,46 +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
- # Even for unidir, both ports are needed to see both rx and tx.
- ports = [port_0, 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[:traffic_directions],
+ ports=ports[::] if traffic_directions == 2 else ports[::2],
mult=rate,
duration=duration,
force=force,
@@ -197,10 +199,9 @@ 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}")
- 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:
time_start = time.monotonic()
# wait_on_traffic fails if duration stretches by 30 seconds or more.
@@ -217,33 +218,35 @@ def simple_burst(
# Now finish the complete reset.
client.reset()
- print(u"##### Statistics #####")
- print(json.dumps(stats, indent=4, separators=(u",", u": ")))
+ print("##### Statistics #####")
+ print(json.dumps(stats, indent=4, separators=(",", ": ")))
- lost_a = stats[port_0][u"opackets"] - stats[port_1][u"ipackets"]
- 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"]))
+ str(lat_obj["total_min"]), str(lat_obj["average"]),
+ str(lat_obj["total_max"]), str(lat_obj["hdrh"]))
- total_sent = stats[0][u"opackets"] + stats[1][u"opackets"]
- total_rcvd = stats[0][u"ipackets"] + stats[1][u"ipackets"]
-
- print(f"\npackets lost from {port_0} --> {port_1}: {lost_a} pkts")
- 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:
@@ -257,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}; "
@@ -273,48 +276,44 @@ def main():
"""
parser = argparse.ArgumentParser()
parser.add_argument(
- u"-p", u"--profile", required=True, type=str,
- help=u"Python traffic profile."
- )
- parser.add_argument(
- u"-d", u"--duration", required=True, type=float,
- help=u"Duration of traffic run."
+ "-p", "--profile", required=True, type=str,
+ help="Python traffic profile."
)
parser.add_argument(
- u"-s", u"--frame_size", required=True,
- help=u"Size of a Frame without padding and IPG."
+ "-d", "--duration", required=True, type=float,
+ help="Duration of traffic run."
)
parser.add_argument(
- u"-r", u"--rate", required=True,
- help=u"Traffic rate with included units (pps)."
+ "-s", "--frame_size", required=True,
+ help="Size of a Frame without padding and IPG."
)
parser.add_argument(
- u"--port_0", required=True, type=int,
- help=u"Port 0 on the traffic generator."
+ "-r", "--rate", required=True,
+ help="Traffic rate with included units (pps)."
)
parser.add_argument(
- u"--port_1", required=True, type=int,
- help=u"Port 1 on the traffic generator."
+ "--ports", required=True, type=int, nargs="+",
+ help="Port list on the traffic generator."
)
parser.add_argument(
- u"--async_start", action=u"store_true", default=False,
- help=u"Non-blocking call of the script."
+ "--async_start", action="store_true", default=False,
+ help="Non-blocking call of the script."
)
parser.add_argument(
- u"--latency", action=u"store_true", default=False,
- help=u"Add latency stream."
+ "--latency", action="store_true", default=False,
+ help="Add latency stream."
)
parser.add_argument(
- u"--traffic_directions", type=int, default=2,
- help=u"Send bi- (2) or uni- (1) directional traffic."
+ "--traffic_directions", type=int, default=2,
+ help="Send bi- (2) or uni- (1) directional traffic."
)
parser.add_argument(
- u"--force", action=u"store_true", default=False,
- help=u"Force start regardless of ports state."
+ "--force", action="store_true", default=False,
+ help="Force start regardless of ports state."
)
parser.add_argument(
- u"--delay", required=True, type=float, default=0.0,
- help=u"Delay assumed for traffic, sleep time is increased by this [s]."
+ "--delay", required=True, type=float, default=0.0,
+ help="Delay assumed for traffic, sleep time is increased by this [s]."
)
args = parser.parse_args()
@@ -329,8 +328,7 @@ 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,
@@ -339,5 +337,5 @@ def main():
)
-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 bbd3a4f1c1..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) 2022 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,7 +39,7 @@ import sys
from collections import OrderedDict # Needed to parse xstats representation.
sys.path.insert(
- 0, u"/opt/trex-core-2.97/scripts/automation/trex_control_plane/interactive/"
+ 0, "/opt/trex-core-3.03/scripts/automation/trex_control_plane/interactive/"
)
from trex.stl.api import STLClient
@@ -53,59 +48,47 @@ 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 2c97201689..55aedd0543 100644
--- a/GPL/traffic_profiles/trex/profile_trex_astf_base_class.py
+++ b/GPL/traffic_profiles/trex/profile_trex_astf_base_class.py
@@ -135,7 +135,7 @@ class TrafficProfileBaseClass:
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.97/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-stl-2n-dot1qip4asym-ip4src254.py b/GPL/traffic_profiles/trex/trex-stl-2n-dot1qip4asym-ip4src254.py
deleted file mode 100644
index 91df41eba7..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-ip4dst1-udir.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst1-udir.py
deleted file mode 100644
index 48b15333b7..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst1-udir.py
+++ /dev/null
@@ -1,84 +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: 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-2n-ethip4-ip4dst1000-udir.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst1000-udir.py
deleted file mode 100644
index 7cd74e9b12..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst1000-udir.py
+++ /dev/null
@@ -1,107 +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
-"""
-
-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-2n-ethip4-ip4dst10000-udir.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst10000-udir.py
deleted file mode 100644
index 6fc948fab0..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst10000-udir.py
+++ /dev/null
@@ -1,107 +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
-"""
-
-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-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-ip4dst2-udir.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst2-udir.py
deleted file mode 100644
index 1d126056ed..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst2-udir.py
+++ /dev/null
@@ -1,107 +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.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-2n-ethip4-ip4dst20000-udir.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst20000-udir.py
deleted file mode 100644
index 0840be65c0..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst20000-udir.py
+++ /dev/null
@@ -1,107 +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
-"""
-
-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-2n-ethip4-ip4dst4-udir.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst4-udir.py
deleted file mode 100644
index 89e09cb26e..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst4-udir.py
+++ /dev/null
@@ -1,107 +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
-"""
-
-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-2n-ethip4-ip4dst40-udir.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst40-udir.py
deleted file mode 100644
index 5a81fc0eba..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst40-udir.py
+++ /dev/null
@@ -1,107 +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
-"""
-
-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-2n-ethip4-ip4dst400-udir.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst400-udir.py
deleted file mode 100644
index 6320e2fa43..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst400-udir.py
+++ /dev/null
@@ -1,107 +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
-"""
-
-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-2n-ethip4-ip4dst40000-udir.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst40000-udir.py
deleted file mode 100644
index 2983546d56..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst40000-udir.py
+++ /dev/null
@@ -1,107 +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
-"""
-
-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-2n-ethip4-ip4dst5000-udir.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst5000-udir.py
deleted file mode 100644
index ef9df96579..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst5000-udir.py
+++ /dev/null
@@ -1,107 +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
-"""
-
-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-2n-ethip4-ip4dst60000-udir.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst60000-udir.py
deleted file mode 100644
index 8bbfcc6102..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst60000-udir.py
+++ /dev/null
@@ -1,107 +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
-"""
-
-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-2n-ethip4-ip4dst8-udir.py b/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst8-udir.py
deleted file mode 100644
index 95286ce221..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-2n-ethip4-ip4dst8-udir.py
+++ /dev/null
@@ -1,107 +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.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-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 73c36ef2a1..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 535aa73e4f..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 a9039fa49f..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 615ca88bb4..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1000-1cnf.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=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 5f9a9d6b68..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1000-2cnf.py
+++ /dev/null
@@ -1,165 +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 04cfa5f2fb..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1000-4cnf.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=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 2b43760b05..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst1000-8cnf.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=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 a997d8f5bc..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst10000-1cnf.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.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 db49cb73bc..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst10000-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.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 749258b8c5..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst10000-4cnf.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.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 a5ae2e2b55..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst10000-8cnf.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.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-ip4dst2.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst2.py
deleted file mode 100644
index 90290b4890..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst2.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.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-3n-ethip4-ip4dst20000-1cnf.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst20000-1cnf.py
deleted file mode 100644
index 10e6a50d95..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst20000-1cnf.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.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 65f9d18ee0..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst20000-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.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 ff02a2b811..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst20000-4cnf.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.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 ce85e17c5e..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst20000-8cnf.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.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 b34518f4b9..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst4-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.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 3e941b98bd..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst4-4cnf.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.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 0acbfb701d..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40-1cnf.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.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 e58d437753..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40-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.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 6fce1ed791..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40-4cnf.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.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 7a65d7ccad..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40-8cnf.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.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 8b0df91ba5..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst400-1cnf.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.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 a40792ad0c..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst400-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.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 0553e6faeb..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst400-4cnf.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.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 9ee65eb354..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst400-8cnf.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.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 7da9933da0..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40000-1cnf.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.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 518e4b0d2d..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40000-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.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 d9dade68d0..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40000-4cnf.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.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 7dc9410fd7..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst40000-8cnf.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.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 367624ea07..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst5000-1cnf.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.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 c528be7a31..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst5000-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.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 9df1f4da36..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst5000-4cnf.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.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 4d062b4573..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst5000-8cnf.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.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 76cb46592b..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst60000-1cnf.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.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 f8d84c7696..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst60000-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.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 c97f1ca176..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst60000-4cnf.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.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 3d225f8ce3..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst60000-8cnf.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.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 53cef6b1ab..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-ip4dst8.py b/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst8.py
deleted file mode 100644
index 33452c18c0..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-3n-ethip4-ip4dst8.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.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-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 1cbbffdb2a..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 a9039fa49f..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 c84838d2f9..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 0e2ac5ecaf..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
#
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-rnd100000-2p.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd100000-2p.py
new file mode 100644
index 0000000000..8948e785a4
--- /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(
+ [
+ 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-rnd100000-6p.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd100000-6p.py
new file mode 100644
index 0000000000..374be384ef
--- /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(
+ [
+ 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-rnd1000000-2p.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd1000000-2p.py
new file mode 100644
index 0000000000..735888d265
--- /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(
+ [
+ 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-rnd1000000-6p.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst-rnd1000000-6p.py
new file mode 100644
index 0000000000..5cc32159e5
--- /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(
+ [
+ STLVmFlowVarRepeatableRandom(
+ 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-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
deleted file mode 100644
index 9aa4fd5ee4..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst10000.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::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(
- [
- 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-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
deleted file mode 100644
index f78d98c64f..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst100000.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::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(
- [
- 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-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
deleted file mode 100644
index 572eed4256..0000000000
--- a/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst1000000.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::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(
- [
- 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-ip6dst500000-2p.py b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst500000-2p.py
new file mode 100644
index 0000000000..3e314aeac1
--- /dev/null
+++ b/GPL/traffic_profiles/trex/trex-stl-ethip6-ip6dst500000-2p.py
@@ -0,0 +1,113 @@
+# 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::7:a11f"
+ },
+ # Direction E --> W:
+ {
+ "src_start_ip": "2200::1",
+ "dst_start_ip": "2100::0",
+ "dst_end_ip": "2100::7:a11f"
+ }
+ ]
+ 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-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/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/README.rst b/PyPI/MLRsearch/README.rst
index 8439fe71a1..bec1b7749e 100644
--- a/PyPI/MLRsearch/README.rst
+++ b/PyPI/MLRsearch/README.rst
@@ -9,13 +9,136 @@ 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
----------
+1.2.1: Updated the readme document.
+
+1.2.0: Changed the output structure to use Goal Result as described in draft-05.
+
+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.
+
0.4.0: Considarable logic improvements, more than two target ratios supported.
API is not backward compatible with previous versions.
@@ -25,20 +148,9 @@ API is not backward compatible with previous versions.
0.1.1: First officially released version.
-Usage
------
-
-TODO.
-
-Operation logic
----------------
-
-The latest published `IETF draft`_ describes logic of version 0.3,
-version 0.4 logic will be descibed in next draft version.
-
.. _CSIT: https://wiki.fd.io/view/CSIT
.. _fd.io: https://fd.io/
.. _LFN: https://www.linuxfoundation.org/projects/networking/
.. _PyPI: https://pypi.org/project/MLRsearch/
-.. _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-ietf-bmwg-mlrsearch-00
+.. _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 c3369e6589..0000000000
--- a/PyPI/MLRsearch/setup.py
+++ /dev/null
@@ -1,52 +0,0 @@
-"""A setup module for setuptools.
-
-See:
-https://packaging.python.org/en/latest/distributing.html
-
-TODO: Move as much as possible into setup.cfg
-"""
-
-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.4.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 cae0f41c03..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
@@ -90,6 +32,8 @@ A brief bottom-up description is provided here:
└── tests
   ├── dpdk
   │   └── perf # DPDK performance tests
+    ├── trex
+    │   └── perf # TRex performance tests
   └── vpp
   ├── device # VPP device tests
   └── perf # VPP performance tests
@@ -114,55 +58,39 @@ resources
```
.
-├── docs # Main documentaion
+│── 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 deployment
+|── fdio.infra.terraform # Virtual infrastructure provisioning
|── GPL # Files licensed under GPL
│   ├── traffic_profiles # Performance tests traffic profiles
-│   │   └── trex
│   └── 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
-│   │   ├── doc_gen # Code documentation generator
-│   │   ├── papi # PAPI driver
-│   │   ├── presentation # Report generator
-│   │   ├── scripts # Various tools
-│   │   ├── topology # Helper scripts for topology manipulation
-│   │   ├── trex # TRex driver
+│   │   └── papi # PAPI driver
│   ├── topology_schemas
└── 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.
-
-## Report
-
-[CSIT Report](https://s3-docs.fd.io/csit/master/report/).
-
-## Trending
-
-[CSIT Trending](https://s3-docs.fd.io/csit/master/trending/).
-
-## Code Documentation
+### CSIT Interactive Dashboard
-[CSIT Code Documentation](https://s3-docs.fd.io/csit/master/docs/).
+[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_UBUNTU b/VPP_DEVICE_IMAGE_UBUNTU
deleted file mode 100644
index e5b17e99b1..0000000000
--- a/VPP_DEVICE_IMAGE_UBUNTU
+++ /dev/null
@@ -1 +0,0 @@
-csit_sut-ubuntu2004:local \ No newline at end of file
diff --git a/VPP_DEVICE_IMAGE_UBUNTU_ARM b/VPP_DEVICE_IMAGE_UBUNTU_ARM
deleted file mode 100644
index 4dabdacb85..0000000000
--- a/VPP_DEVICE_IMAGE_UBUNTU_ARM
+++ /dev/null
@@ -1 +0,0 @@
-csit_sut-ubuntu2004: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_UBUNTU_FOCAL b/VPP_STABLE_VER_UBUNTU_FOCAL
deleted file mode 100644
index 4351f7015e..0000000000
--- a/VPP_STABLE_VER_UBUNTU_FOCAL
+++ /dev/null
@@ -1 +0,0 @@
-22.10-rc0~88-g389aae573 \ No newline at end of file
diff --git a/VPP_STABLE_VER_UBUNTU_JAMMY b/VPP_STABLE_VER_UBUNTU_JAMMY
new file mode 100644
index 0000000000..a50ded07fe
--- /dev/null
+++ b/VPP_STABLE_VER_UBUNTU_JAMMY
@@ -0,0 +1 @@
+24.06-rc0~197-g67226438c \ 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/resources/tools/dash/app/Procfile b/csit.infra.dash/app/Procfile
index c79d502390..c79d502390 100644
--- a/resources/tools/dash/app/Procfile
+++ b/csit.infra.dash/app/Procfile
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..57a1c2a1b4
--- /dev/null
+++ b/csit.infra.dash/app/cdash/comparisons/layout.py
@@ -0,0 +1,1342 @@
+# 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", ))
+ elif row["test_type"] == "soak":
+ if "SOAK" not in tbs[dut][dver][infra]["ttype"]:
+ tbs[dut][dver][infra]["ttype"].append("SOAK")
+ 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..1e9c708253
--- /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/_metadata/trending_soak b/csit.infra.dash/app/cdash/data/_metadata/trending_soak
new file mode 100644
index 0000000000..4502ca4f59
--- /dev/null
+++ b/csit.infra.dash/app/cdash/data/_metadata/trending_soak
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..ed5fc0b269
--- /dev/null
+++ b/csit.infra.dash/app/cdash/data/data.yaml
@@ -0,0 +1,488 @@
+- 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: trending
+ partition: test_type
+ partition_name: soak
+ path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/trending
+ schema: trending_soak
+ columns:
+ - job
+ - build
+ - dut_type
+ - dut_version
+ - hosts
+ - tg_type
+ - result_critical_rate_lower_bandwidth_unit
+ - result_critical_rate_lower_bandwidth_value
+ - result_critical_rate_lower_rate_unit
+ - result_critical_rate_lower_rate_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
+ # - 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_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
+ # - 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
+- 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
+ - hosts
+ - 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..ba4fc85163
--- /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, hoststack, soak
+ if "soak" in test:
+ val = "result_critical_rate_lower_rate_value"
+ elif "hoststack" in test:
+ val = "result_rate_value"
+ else: # mrr
+ val = "result_receive_rate_rate_avg"
+ tst_data = tst_data.dropna(subset=[val, ])
+ 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[val].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..02202ea155
--- /dev/null
+++ b/csit.infra.dash/app/cdash/report/graphs.py
@@ -0,0 +1,311 @@
+# 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["testtype"] == "soak":
+ test_type = "soak"
+ 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']}"
+ try:
+ metadata["hosts"] = ", ".join(row["hosts"])
+ except (KeyError, TypeError):
+ pass
+ 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 C.TESTS_WITH_BANDWIDTH:
+ 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 in C.TESTS_WITH_LATENCY:
+ 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) * 1.1]
+ 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) * 1.1]
+ 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..f485894d78
--- /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"] == "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"))
+ else: # MRR, SOAK
+ if row["test_type"].upper() not in tst_params["test-type"]:
+ tst_params["test-type"].append(row["test_type"].upper())
+ 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/resources/tools/dash/app/pal/report/report.py b/csit.infra.dash/app/cdash/report/report.py
index e4565731ec..ce5e977f4c 100644
--- a/resources/tools/dash/app/pal/report/report.py
+++ b/csit.infra.dash/app/cdash/report/report.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 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:
@@ -14,12 +14,16 @@
"""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, releases):
+def init_report(
+ server,
+ data_iterative: pd.DataFrame
+ ) -> dash.Dash:
"""Create a Plotly Dash dashboard.
:param server: Flask server.
@@ -31,16 +35,16 @@ def init_report(server, releases):
dash_app = dash.Dash(
server=server,
routes_pathname_prefix=C.REPORT_ROUTES_PATHNAME_PREFIX,
- external_stylesheets=C.EXTERNAL_STYLESHEETS
+ external_stylesheets=C.EXTERNAL_STYLESHEETS,
+ title=C.REPORT_TITLE
)
layout = Layout(
app=dash_app,
- releases=releases,
- html_layout_file=C.REPORT_HTML_LAYOUT_FILE,
+ data_iterative=data_iterative,
+ html_layout_file=C.HTML_LAYOUT_FILE,
graph_layout_file=C.REPORT_GRAPH_LAYOUT_FILE,
- data_spec_file=C.DATA_SPEC_FILE,
- tooltip_file=C.TOOLTIP_FILE,
+ tooltip_file=C.TOOLTIP_FILE
)
dash_app.index_string = layout.html_layout
dash_app.layout = layout.add_content()
diff --git a/resources/tools/dash/app/pal/routes.py b/csit.infra.dash/app/cdash/routes.py
index 59af748168..ed29fffa12 100644
--- a/resources/tools/dash/app/pal/routes.py
+++ b/csit.infra.dash/app/cdash/routes.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 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,5 +28,11 @@ def home():
C.MAIN_HTML_LAYOUT_FILE,
title=C.TITLE,
description=C.DESCRIPTION,
- template=C.TEMPLATE
+ 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/resources/tools/dash/app/pal/static/dist/img/favicon.svg b/csit.infra.dash/app/cdash/static/dist/img/favicon.svg
index 689757e3fd..689757e3fd 100644
--- a/resources/tools/dash/app/pal/static/dist/img/favicon.svg
+++ b/csit.infra.dash/app/cdash/static/dist/img/favicon.svg
diff --git a/resources/tools/dash/app/pal/static/img/logo.svg b/csit.infra.dash/app/cdash/static/img/logo.svg
index 689757e3fd..689757e3fd 100644
--- a/resources/tools/dash/app/pal/static/img/logo.svg
+++ b/csit.infra.dash/app/cdash/static/img/logo.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..655c61c078
--- /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_LOGS}{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..1a507dfeea
--- /dev/null
+++ b/csit.infra.dash/app/cdash/trending/graphs.py
@@ -0,0 +1,679 @@
+# 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["testtype"] == "soak":
+ test_type = "soak"
+ 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>"
+ )
+ elif ttype in ("soak", "soak-bandwidth"):
+ h_tput = (
+ f"tput [{row['result_critical_rate_lower_rate_unit']}]: "
+ f"{row['result_critical_rate_lower_rate_value'] * nf:,.0f}"
+ "<br>"
+ )
+ if pd.notna(row["result_critical_rate_lower_bandwidth_value"]):
+ bv = row['result_critical_rate_lower_bandwidth_value']
+ h_band = (
+ "bandwidth "
+ f"[{row['result_critical_rate_lower_bandwidth_unit']}]:"
+ f" {bv * nf:,.0f}"
+ "<br>"
+ )
+ try:
+ hosts = f"<br>hosts: {', '.join(row['hosts'])}"
+ except (KeyError, TypeError):
+ hosts = str()
+ 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']}"
+ f"{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()):
+ try:
+ hosts = f"<br>hosts: {', '.join(row['hosts'])}"
+ except (KeyError, TypeError):
+ hosts = str()
+ 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']}"
+ f"{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 C.TESTS_WITH_BANDWIDTH:
+ 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 C.TESTS_WITH_LATENCY:
+ 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..da90ae26f9
--- /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"] == "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"))
+ else: # MRR, SOAK
+ if row["test_type"].upper() not in tst_params["test-type"]:
+ tst_params["test-type"].append(row["test_type"].upper())
+ 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..840766488a
--- /dev/null
+++ b/csit.infra.dash/app/cdash/utils/constants.py
@@ -0,0 +1,469 @@
+# 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 logs
+ URL_LOGS = "https://s3-logs.fd.io/vex-yul-rot-jenkins-1/"
+
+ # 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",
+ "soak": "result_critical_rate_lower_rate_value",
+ "soak-bandwidth": "result_critical_rate_lower_bandwidth_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-cps-bandwidth": "result_bandwidth_value",
+ "hoststack-rps-bandwidth": "result_bandwidth_value",
+ "hoststack-bps": "result_bandwidth_value",
+ "hoststack-latency": "result_latency_value",
+ "soak": "result_critical_rate_lower_rate_value",
+ "soak-bandwidth": "result_critical_rate_lower_bandwidth_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",
+ "soak": "result_critical_rate_lower_rate_unit",
+ "soak-bandwidth": "result_critical_rate_lower_bandwidth_unit"
+ }
+
+ TESTS_WITH_BANDWIDTH = (
+ "ndr",
+ "pdr",
+ "mrr",
+ "hoststack-cps",
+ "hoststack-rps",
+ "soak"
+ )
+ TESTS_WITH_LATENCY = (
+ "pdr",
+ "hoststack-cps",
+ "hoststack-rps"
+ )
+
+ # 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/resources/tools/dash/app/pal/utils/url_processing.py b/csit.infra.dash/app/cdash/utils/url_processing.py
index 9307015d0d..c436ebc830 100644
--- a/resources/tools/dash/app/pal/utils/url_processing.py
+++ b/csit.infra.dash/app/cdash/utils/url_processing.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 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:
@@ -69,7 +69,7 @@ def url_decode(url: str) -> dict:
parsed_url = urlparse(url)
except ValueError as err:
logging.warning(f"\nThe url {url} is not valid, ignoring.\n{repr(err)}")
- return None
+ return dict()
if parsed_url.fragment:
try:
@@ -85,7 +85,7 @@ def url_decode(url: str) -> dict:
f"\nEncoded parameters: '{parsed_url.fragment}'"
f"\n{repr(err)}"
)
- return None
+ return dict()
else:
params = None
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..306b4f60d1
--- /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_LOGS}{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_LOGS}{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/resources/tools/dash/app/wsgi.py b/csit.infra.dash/app/wsgi.py
index ab18bbfbc7..16e094b6a4 100644
--- a/resources/tools/dash/app/wsgi.py
+++ b/csit.infra.dash/app/wsgi.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 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,10 +12,9 @@
# limitations under the License.
-from pal import app
+from cdash import app
if __name__ == "__main__":
# Main entry point.
- app.debug = True
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/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
index 531fcfc62f..4b6b6415d3 100644
--- a/csit.infra.etl/coverage_mrr.json
+++ b/csit.infra.etl/coverage_mrr.json
@@ -56,6 +56,44 @@
"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": {
@@ -160,4 +198,4 @@
}
],
"type": "struct"
-} \ No newline at end of file
+}
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_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_rls2206.py b/csit.infra.etl/coverage_rls2206.py
deleted file mode 100644
index 4e2619d924..0000000000
--- a/csit.infra.etl/coverage_rls2206.py
+++ /dev/null
@@ -1,171 +0,0 @@
-#!/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.
-
-"""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-2206" in path]
-
-for schema_name in ["mrr", "ndrpdr", "soak", "device"]:
- out_sdf = process_json_to_dataframe(schema_name, 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_rls2206",
- 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_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
index 531fcfc62f..4b6b6415d3 100644
--- a/csit.infra.etl/iterative_mrr.json
+++ b/csit.infra.etl/iterative_mrr.json
@@ -56,6 +56,44 @@
"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": {
@@ -160,4 +198,4 @@
}
],
"type": "struct"
-} \ No newline at end of file
+}
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_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_rls2206.py b/csit.infra.etl/iterative_rls2206.py
deleted file mode 100644
index 88c644b625..0000000000
--- a/csit.infra.etl/iterative_rls2206.py
+++ /dev/null
@@ -1,171 +0,0 @@
-#!/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.
-
-"""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-2206" in path]
-
-for schema_name in ["mrr", "ndrpdr", "soak"]:
- out_sdf = process_json_to_dataframe(schema_name, 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_rls2206",
- 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_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
index 79e18d1c64..e942cebbba 100644
--- a/csit.infra.etl/local.py
+++ b/csit.infra.etl/local.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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/csit.infra.etl/stats.py b/csit.infra.etl/stats.py
index ab8bcafdeb..5d44caa25d 100644
--- a/csit.infra.etl/stats.py
+++ b/csit.infra.etl/stats.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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/csit.infra.etl/trending.py b/csit.infra.etl/trending.py
deleted file mode 100644
index bc27aaa063..0000000000
--- a/csit.infra.etl/trending.py
+++ /dev/null
@@ -1,172 +0,0 @@
-#!/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.
-
-"""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]
-
-for schema_name in ["mrr", "ndrpdr", "soak"]:
- out_sdf = process_json_to_dataframe(schema_name, 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_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
index 4e222d33d5..6115e558bd 100644
--- a/csit.infra.etl/trending_mrr.json
+++ b/csit.infra.etl/trending_mrr.json
@@ -66,6 +66,44 @@
"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": {
@@ -130,6 +168,16 @@
},
{
"metadata": {},
+ "name": "telemetry",
+ "nullable": true,
+ "type": {
+ "containsNull": true,
+ "elementType": "string",
+ "type": "array"
+ }
+ },
+ {
+ "metadata": {},
"name": "test_id",
"nullable": true,
"type": "string"
@@ -166,4 +214,4 @@
}
],
"type": "struct"
-} \ No newline at end of file
+}
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
index fd833aa84c..22cd505671 100644
--- a/csit.infra.etl/trending_ndrpdr.json
+++ b/csit.infra.etl/trending_ndrpdr.json
@@ -658,6 +658,16 @@
},
{
"metadata": {},
+ "name": "telemetry",
+ "nullable": true,
+ "type": {
+ "containsNull": true,
+ "elementType": "string",
+ "type": "array"
+ }
+ },
+ {
+ "metadata": {},
"name": "test_id",
"nullable": true,
"type": "string"
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
index 819d3142d3..1aba81483e 100644
--- a/csit.infra.etl/trending_soak.json
+++ b/csit.infra.etl/trending_soak.json
@@ -200,6 +200,16 @@
},
{
"metadata": {},
+ "name": "telemetry",
+ "nullable": true,
+ "type": {
+ "containsNull": true,
+ "elementType": "string",
+ "type": "array"
+ }
+ },
+ {
+ "metadata": {},
"name": "test_id",
"nullable": true,
"type": "string"
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
index f951425e86..cbcde197db 100644
--- a/csit.infra.vagrant/Vagrantfile
+++ b/csit.infra.vagrant/Vagrantfile
@@ -27,7 +27,7 @@ Vagrant.configure("2") do |config|
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 "../", "/vagrant/csit"
+ config.vm.synced_folder "../", "/home/vagrant/csit"
# Provision the box using ansible local (no Ansible installation needed
# on host).
@@ -36,8 +36,8 @@ Vagrant.configure("2") do |config|
ansible.become = true
ansible.verbose = false
ansible.limit = "vagrant"
- ansible.inventory_path = "csit/fdio.infra.ansible/inventories/vagrant_inventory/hosts"
- ansible.playbook = "csit/fdio.infra.ansible/site.yaml"
+ 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
@@ -62,19 +62,20 @@ Vagrant.configure("2") do |config|
MESSAGE
- config.vm.define "focal", primary: true do |focal|
+ config.vm.define "jammy", primary: true do |jammy|
# Base box definition, currently using
- # Official Ubuntu 20.04 LTS (Focal) Daily Build
- focal.vm.box = "ubuntu/focal64"
- focal.vm.box_version = "20210415.0.0"
- focal.vm.box_check_update = false
+ # 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
- focal.vm.provider "virtualbox" do |vb|
- vb.name = "vppdevice-focal"
+ 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"]
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 5e4803822f..0000000000
--- a/docs/automating_vpp_api_flag_day.rst
+++ /dev/null
@@ -1,325 +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.
-
-
-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..c7dce24c1a
--- /dev/null
+++ b/docs/content/methodology/measurements/data_plane_throughput/data_plane_throughput.md
@@ -0,0 +1,139 @@
+---
+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, used in NDRPDR tests.
+- PLRsearch - Probabilistic Loss Ratio search, used in SOAK tests.
+- MRR - Maximum Receive Rate tests, the method based on FRMOL from RFC 2285.
+
+Description of each test method is followed by generic test properties
+shared by all methods.
+
+## NDRPDR Tests
+
+These tests employ MLRsearch to find two conditional throughput values.
+NDR for zero loss ratio goal and PDR for 0.5% loss ratio goal.
+
+### Algorithm 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-06).
+
+### Description
+
+Multiple Loss Ratio search (MLRsearch) algorithm can discover multiple
+conditional throughputs in a single search,
+reducing the overall test execution time compared to a binary search.
+In FD.io CSIT, conditional throughputs are discovered for two search goals:
+Non-Drop Rate (NDR, zero loss ratio goal)
+and Partial Drop Rate (PDR, 0.5% loss ratio goal).
+Other inputs are common for both goals:
+Goal width is 0.5%, trial duration is 1 second, duration sum goal is 21 seconds
+and exceed ratio is 50%.
+
+The main algorithm expresses the conditional throughput based on one-port load.
+The results presented in CSIT show aggregate load,
+(the value from the search is doubled if the tests uses bidirectional traffic).
+
+### 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.
+
+## SOAK Tests
+
+These tests employ PLRsearch to find a critical load value.
+
+### Algorithm 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).
+
+### Description
+
+Probabilistic Loss Ratio search (PLRsearch) tests discovers a packet
+throughput rate associated with configured Packet Loss Ratio (PLR)
+target 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 critical load 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.
+
+## MRR Tests
+
+### Algorithm 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" >}}).
+
+### 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 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).
+
+## 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..6f208c1ece
--- /dev/null
+++ b/docs/content/methodology/measurements/data_plane_throughput/plr_search.md
@@ -0,0 +1,386 @@
+---
+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.
+
+In CSIT, tests that employ PLRsearch are identified as SOAK tests,
+the search time is set to 30 minuts.
+
+### 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 soak 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 e612559ed6..0000000000
--- a/docs/cpta/data/index.rst
+++ /dev/null
@@ -1,119 +0,0 @@
-Performance Data
-================
-
-Performance test data used to generate the trending graphs is available
-in the CSV formats:
-
-**VPP MRR**
-
- - 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-icx
-
- - `CSV format <../_static/vpp/csit-vpp-perf-mrr-daily-master-2n-icx-trending.csv>`_
-
- - 3n-icx
-
- - `CSV format <../_static/vpp/csit-vpp-perf-mrr-daily-master-3n-icx-trending.csv>`_
-
- - 3n-alt
-
- - `CSV format <../_static/vpp/csit-vpp-perf-mrr-daily-master-3n-alt-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>`_
-
- - 2n-tx2
-
- - `CSV format <../_static/vpp/csit-vpp-perf-mrr-daily-master-2n-tx2-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>`_
-
- - 3n-aws
-
- - `CSV format <../_static/vpp/csit-vpp-perf-mrr-daily-master-3n-aws-trending.csv>`_
-
- - 2n-aws
-
- - `CSV format <../_static/vpp/csit-vpp-perf-mrr-daily-master-2n-aws-trending.csv>`_
-
-**VPP NDRPDR**
-
- - 2n-icx
-
- - `CSV format <../_static/vpp/csit-vpp-perf-ndrpdr-weekly-master-2n-icx-trending.csv>`_
- - `Latency (P50 at 50% load, direction 1) in CSV format <../_static/vpp/csit-vpp-perf-ndrpdr-weekly-master-2n-icx-lat-P50-50-d1.csv>`_
- - `Latency (P50 at 50% load, direction 2) in CSV format <../_static/vpp/csit-vpp-perf-ndrpdr-weekly-master-2n-icx-lat-P50-50-d2.csv>`_
-
- - 3n-icx
-
- - `CSV format <../_static/vpp/csit-vpp-perf-ndrpdr-weekly-master-3n-icx-trending.csv>`_
- - `Latency (P50 at 50% load, direction 1) in CSV format <../_static/vpp/csit-vpp-perf-ndrpdr-weekly-master-3n-icx-lat-P50-50-d1.csv>`_
- - `Latency (P50 at 50% load, direction 2) in CSV format <../_static/vpp/csit-vpp-perf-ndrpdr-weekly-master-3n-icx-lat-P50-50-d2.csv>`_
-
- - 3n-skx
-
- - `CSV format <../_static/vpp/csit-vpp-perf-ndrpdr-weekly-master-3n-skx-trending.csv>`_
- - `Latency (P50 at 50% load, direction 1) in CSV format <../_static/vpp/csit-vpp-perf-ndrpdr-weekly-master-3n-skx-lat-P50-50-d1.csv>`_
- - `Latency (P50 at 50% load, direction 2) in CSV format <../_static/vpp/csit-vpp-perf-ndrpdr-weekly-master-3n-skx-lat-P50-50-d2.csv>`_
-
- - 2n-skx
-
- - `CSV format <../_static/vpp/csit-vpp-perf-ndrpdr-weekly-master-2n-skx-trending.csv>`_
- - `Latency (P50 at 50% load, direction 1) in CSV format <../_static/vpp/csit-vpp-perf-ndrpdr-weekly-master-2n-skx-lat-P50-50-d1.csv>`_
- - `Latency (P50 at 50% load, direction 2) in CSV format <../_static/vpp/csit-vpp-perf-ndrpdr-weekly-master-2n-skx-lat-P50-50-d2.csv>`_
-
- - 2n-clx
-
- - `CSV format <../_static/vpp/csit-vpp-perf-ndrpdr-weekly-master-2n-clx-trending.csv>`_
- - `Latency (P50 at 50% load, direction 1) in CSV format <../_static/vpp/csit-vpp-perf-ndrpdr-weekly-master-2n-clx-lat-P50-50-d1.csv>`_
- - `Latency (P50 at 50% load, direction 2) in CSV format <../_static/vpp/csit-vpp-perf-ndrpdr-weekly-master-2n-clx-lat-P50-50-d2.csv>`_
-
-**DPDK MRR**
-
- - 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>`_
-
- - 2n-tx2
-
- - `CSV format <../_static/vpp/csit-dpdk-perf-mrr-weekly-master-2n-tx2-trending.csv>`_
-
-**TRex NDRPDR**
-
- - 2n-skx
-
- - `CSV format <../_static/vpp/csit-trex-perf-ndrpdr-weekly-master-2n-skx-trending.csv>`_
diff --git a/docs/cpta/index.rst b/docs/cpta/index.rst
deleted file mode 100644
index d70acb1cb8..0000000000
--- a/docs/cpta/index.rst
+++ /dev/null
@@ -1,83 +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/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/trex
-
-.. toctree::
- :maxdepth: 2
- :caption: NDRPDR Latency Trending
-
- ndrpdr_latency_trending/l2
- ndrpdr_latency_trending/ip4
- ndrpdr_latency_trending/ip6
- ndrpdr_latency_trending/srv6
- ndrpdr_latency_trending/ip4_tunnels
- ndrpdr_latency_trending/nat44
- ndrpdr_latency_trending/vhost
- ndrpdr_latency_trending/container_memif
- ndrpdr_latency_trending/trex
-
-.. toctree::
- :maxdepth: 2
- :caption: Statistics
-
- stats/vpp_mrr
- stats/vpp_ndrpdr
- stats/dpdk_mrr
- stats/trex_ndrpdr
-
-.. 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 9cd41816af..0000000000
--- a/docs/cpta/introduction/dashboard.rst
+++ /dev/null
@@ -1,293 +0,0 @@
-Data Plane Performance
-======================
-
-.. _Dashboard:
-
-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]**: Population average of the last group of runs.
- - **Runs [#]**: Number of runs belonging to the last sample group.
- - **Long-Term Change [%]**: Relative change of Last Trend vs.
- maximum of trend values over the last quarter except last week.
- - **Regressions [#]**: Number of regressions detected
- in last few runs (4 for weekly, 14 for daily).
- - **Progressions [#]**: Number of progressions detected
- in last few runs (4 for weekly, 14 for daily).
-
-For full explanation see :ref:`Trend_Compliance` document.
-
-2n-icx
-------
-
-VPP worker on 2t1c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-2t1c-2n-icx.rst
-
-VPP worker on 4t2c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-4t2c-2n-icx.rst
-
-VPP worker on 8t4c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-8t4c-2n-icx.rst
-
-NDR Weekly VPP worker on 2t1c
-`````````````````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-2t1c-2n-icx-ndr.rst
-
-PDR Weekly VPP worker on 2t1c
-`````````````````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-2t1c-2n-icx-pdr.rst
-
-3n-icx
-------
-
-VPP worker on 2t1c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-2t1c-3n-icx.rst
-
-VPP worker on 4t2c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-4t2c-3n-icx.rst
-
-VPP worker on 8t4c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-8t4c-3n-icx.rst
-
-NDR Weekly VPP worker on 2t1c
-`````````````````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-2t1c-3n-icx-ndr.rst
-
-PDR Weekly VPP worker on 2t1c
-`````````````````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-2t1c-3n-icx-pdr.rst
-
-3n-alt
-------
-
-VPP worker on 1t1c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-1t1c-3n-alt.rst
-
-VPP worker on 2t2c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-2t2c-3n-alt.rst
-
-VPP worker on 4t4c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-4t4c-3n-alt.rst
-
-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-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
-
-2n-aws
-------
-
-VPP worker on 2t1c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-2t1c-2n-aws.rst
-
-VPP worker on 4t2c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-4t2c-2n-aws.rst
-
-3n-aws
-------
-
-VPP worker on 2t1c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-2t1c-3n-aws.rst
-
-VPP worker on 4t2c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-4t2c-3n-aws.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
-
-2n-tx2
-------
-
-VPP worker on 2t1c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-1t1c-2n-tx2.rst
-
-VPP worker on 4t2c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-2t2c-2n-tx2.rst
-
-VPP worker on 8t4c
-``````````````````
-
-.. include:: ../../../_build/_static/vpp/performance-trending-dashboard-4t4c-2n-tx2.rst
diff --git a/docs/cpta/introduction/failures.rst b/docs/cpta/introduction/failures.rst
deleted file mode 100644
index 36a2d415f6..0000000000
--- a/docs/cpta/introduction/failures.rst
+++ /dev/null
@@ -1,104 +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-icx-mrr
-----------
-
-.. include:: ../../../_build/_static/vpp/failed-tests-2n-icx.rst
-
-2n-icx-ndrpdr
--------------
-
-.. include:: ../../../_build/_static/vpp/failed-tests-2n-icx-ndrpdr.rst
-
-3n-icx-mrr
-----------
-
-.. include:: ../../../_build/_static/vpp/failed-tests-3n-icx.rst
-
-3n-icx-ndrpdr
--------------
-
-.. include:: ../../../_build/_static/vpp/failed-tests-3n-icx-ndrpdr.rst
-
-3n-alt-mrr
-----------
-
-.. include:: ../../../_build/_static/vpp/failed-tests-3n-alt.rst
-
-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-tsh-mrr
-----------
-
-.. include:: ../../../_build/_static/vpp/failed-tests-3n-tsh.rst
-
-2n-tx2-mrr
-----------
-
-.. include:: ../../../_build/_static/vpp/failed-tests-2n-tx2.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
-
-2n-aws-mrr
-----------
-
-.. include:: ../../../_build/_static/vpp/failed-tests-2n-aws.rst
-
-3n-aws-mrr
-----------
-
-.. include:: ../../../_build/_static/vpp/failed-tests-3n-aws.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 861b69e941..0000000000
--- a/docs/cpta/introduction/weekly.rst
+++ /dev/null
@@ -1,107 +0,0 @@
-NDRPDR Weekly Comparison
-========================
-
-2n-icx
-------
-
-NDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c NDR comparison <../_static/vpp/ndrpdr-weekly-comp-2n-icx-2t1c-ndr_in.html>`_
- - `ASCII 2t1c NDR comparison <../_static/vpp/ndrpdr-weekly-comp-2n-icx-2t1c-ndr.txt>`_
- - `CSV 2t1c NDR comparison <../_static/vpp/ndrpdr-weekly-comp-2n-icx-2t1c-ndr.csv>`_
-
-PDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c PDR comparison <../_static/vpp/ndrpdr-weekly-comp-2n-icx-2t1c-pdr_in.html>`_
- - `ASCII 2t1c PDR comparison <../_static/vpp/ndrpdr-weekly-comp-2n-icx-2t1c-pdr.txt>`_
- - `CSV 2t1c PDR comparison <../_static/vpp/ndrpdr-weekly-comp-2n-icx-2t1c-pdr.csv>`_
-
-3n-icx
-------
-
-NDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c NDR comparison <../_static/vpp/ndrpdr-weekly-comp-3n-icx-2t1c-ndr_in.html>`_
- - `ASCII 2t1c NDR comparison <../_static/vpp/ndrpdr-weekly-comp-3n-icx-2t1c-ndr.txt>`_
- - `CSV 2t1c NDR comparison <../_static/vpp/ndrpdr-weekly-comp-3n-icx-2t1c-ndr.csv>`_
-
-PDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c PDR comparison <../_static/vpp/ndrpdr-weekly-comp-3n-icx-2t1c-pdr_in.html>`_
- - `ASCII 2t1c PDR comparison <../_static/vpp/ndrpdr-weekly-comp-3n-icx-2t1c-pdr.txt>`_
- - `CSV 2t1c PDR comparison <../_static/vpp/ndrpdr-weekly-comp-3n-icx-2t1c-pdr.csv>`_
-
-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>`_
diff --git a/docs/cpta/methodology/index.rst b/docs/cpta/methodology/index.rst
deleted file mode 100644
index 9105ec46b4..0000000000
--- a/docs/cpta/methodology/index.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Trending Methodology
-====================
-
-.. toctree::
-
- overview
- trend_analysis
- trend_presentation
diff --git a/docs/cpta/methodology/overview.rst b/docs/cpta/methodology/overview.rst
deleted file mode 100644
index d2ffc04407..0000000000
--- a/docs/cpta/methodology/overview.rst
+++ /dev/null
@@ -1,6 +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).
diff --git a/docs/cpta/methodology/trend_analysis.rst b/docs/cpta/methodology/trend_analysis.rst
deleted file mode 100644
index 2bb54997b0..0000000000
--- a/docs/cpta/methodology/trend_analysis.rst
+++ /dev/null
@@ -1,229 +0,0 @@
-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 run as the sample. Effectively, this acts as a single
-trial with aggregate duration.
-
-Performance graphs show the run average as a dot (not all individual 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 discourages 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 hard-coded.
-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).
-
-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.
-
-.. _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 67d0d3c45a..0000000000
--- a/docs/cpta/methodology/trend_presentation.rst
+++ /dev/null
@@ -1,35 +0,0 @@
-Trend Presentation
-^^^^^^^^^^^^^^^^^^
-
-Failed tests
-~~~~~~~~~~~~
-
-The Failed tests tables list the tests which failed during the last test run.
-Separate tables are generated for each testbed.
-
-Regressions and progressions
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-These tables list tests which encountered a regression or progression during the
-specified time period, which is currently set to the last 21 days.
-
-Trendline Graphs
-~~~~~~~~~~~~~~~~
-
-Trendline graphs show measured per run averages of MRR values, NDR or PDR
-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, NDR or PDR values in Mpps. 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 MRR 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/cpta/ndrpdr_latency_trending/container_memif-2n-clx-cx556a.rst b/docs/cpta/ndrpdr_latency_trending/container_memif-2n-clx-cx556a.rst
deleted file mode 100644
index 03a89249c8..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/container_memif-2n-clx-cx556a.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-2n-clx-cx556a
--------------
-
-64b-memif-base-rdma
-```````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/container_memif-2n-clx-e810cq.rst b/docs/cpta/ndrpdr_latency_trending/container_memif-2n-clx-e810cq.rst
deleted file mode 100644
index 6e660e306f..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/container_memif-2n-clx-e810cq.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-2n-clx-e810cq
--------------
-
-64b-memif-base
-``````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-e810cq-64b-2t1c-memif-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/container_memif-2n-clx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/container_memif-2n-clx-xxv710.rst
deleted file mode 100644
index f04303d284..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/container_memif-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,34 +0,0 @@
-2n-clx-xxv710
--------------
-
-64b-memif-base-avf
-``````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-memif-base-dpdk
-```````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/container_memif-2n-icx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/container_memif-2n-icx-xxv710.rst
deleted file mode 100644
index ec0c80743f..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/container_memif-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-2n-icx-xxv710
--------------
-
-64b-memif-base
-``````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-2t1c-memif-base-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/container_memif-2n-skx-x710.rst b/docs/cpta/ndrpdr_latency_trending/container_memif-2n-skx-x710.rst
deleted file mode 100644
index 8df8b3e257..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/container_memif-2n-skx-x710.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-2n-skx-x710
------------
-
-64b-memif-base-dpdk
-```````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/container_memif-2n-skx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/container_memif-2n-skx-xxv710.rst
deleted file mode 100644
index 0898e27b43..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/container_memif-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,34 +0,0 @@
-2n-skx-xxv710
--------------
-
-64b-memif-base-avf
-``````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-memif-base-dpdk
-```````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/container_memif-3n-skx-x710.rst b/docs/cpta/ndrpdr_latency_trending/container_memif-3n-skx-x710.rst
deleted file mode 100644
index 51d9d29e73..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/container_memif-3n-skx-x710.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-3n-skx-x710
------------
-
-64b-memif-base-dpdk
-```````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/container_memif-3n-skx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/container_memif-3n-skx-xxv710.rst
deleted file mode 100644
index 799a2fea36..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/container_memif-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,34 +0,0 @@
-3n-skx-xxv710
--------------
-
-64b-memif-base-avf
-``````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-memif-base-dpdk
-```````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/container_memif.rst b/docs/cpta/ndrpdr_latency_trending/container_memif.rst
deleted file mode 100644
index f7f6677926..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/container_memif.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-LXC/DRC Container Memif
-=======================
-
-.. toctree::
-
- container_memif-2n-icx-xxv710
- container_memif-2n-clx-xxv710
- container_memif-2n-clx-cx556a
- container_memif-2n-clx-e810cq
- container_memif-2n-skx-xxv710
- container_memif-3n-skx-xxv710
diff --git a/docs/cpta/ndrpdr_latency_trending/ip4-2n-clx-cx556a.rst b/docs/cpta/ndrpdr_latency_trending/ip4-2n-clx-cx556a.rst
deleted file mode 100644
index 895824776e..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/ip4-2n-clx-cx556a.rst
+++ /dev/null
@@ -1,50 +0,0 @@
-2n-clx-cx556a
--------------
-
-64b-ip4routing-base-rdma
-````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-scale-rdma
-`````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-features-rdma
-````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/ip4-2n-clx-e810cq.rst b/docs/cpta/ndrpdr_latency_trending/ip4-2n-clx-e810cq.rst
deleted file mode 100644
index 26d8f1ad18..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/ip4-2n-clx-e810cq.rst
+++ /dev/null
@@ -1,66 +0,0 @@
-2n-clx-e810cq
--------------
-
-64b-ip4routing-base-scale-avf
-`````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-e810cq-64b-2t1c-ip4-base-scale-avf-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-features-avf
-```````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-e810cq-64b-2t1c-ip4-features-avf-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-base-scale-dpdk
-``````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-e810cq-64b-2t1c-ip4-base-scale-dpdk-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-features-dpdk
-````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-e810cq-64b-2t1c-ip4-features-dpdk-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/ip4-2n-clx-x710.rst b/docs/cpta/ndrpdr_latency_trending/ip4-2n-clx-x710.rst
deleted file mode 100644
index e862939962..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/ip4-2n-clx-x710.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-2n-clx-x710
------------
-
-64b-ip4routing-base-avf-dpdk
-````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/ip4-2n-clx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/ip4-2n-clx-xxv710.rst
deleted file mode 100644
index 17ffd46d48..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/ip4-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,98 +0,0 @@
-2n-clx-xxv710
--------------
-
-64b-ip4routing-base-scale-avf
-`````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-scale-avf-rnd
-````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-features-avf
-```````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-base-scale-dpdk
-``````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-scale-dpdk-rnd
-`````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-features-dpdk
-````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/ip4-2n-icx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/ip4-2n-icx-xxv710.rst
deleted file mode 100644
index 74cd3ed30f..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/ip4-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,66 +0,0 @@
-2n-icx-xxv710
--------------
-
-64b-ip4routing-base-scale-avf
-`````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-2t1c-ip4-base-scale-avf-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-features-avf
-```````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-2t1c-ip4-features-avf-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-base-scale-dpdk
-``````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-2t1c-ip4-base-scale-dpdk-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-base-scale-af_xdp
-````````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-2t1c-ip4-base-scale-af_xdp-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/ip4-2n-skx-x710.rst b/docs/cpta/ndrpdr_latency_trending/ip4-2n-skx-x710.rst
deleted file mode 100644
index 48c1d48b97..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/ip4-2n-skx-x710.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-2n-skx-x710
------------
-
-64b-ip4routing-base-scale-avf-dpdk
-``````````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/ip4-2n-skx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/ip4-2n-skx-xxv710.rst
deleted file mode 100644
index bffcc941cb..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/ip4-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,82 +0,0 @@
-2n-skx-xxv710
--------------
-
-64b-ip4routing-base-avf
-```````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-scale-avf
-````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-features-avf
-```````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-base-features-dpdk
-`````````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-scale-dpdk
-`````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/ip4-3n-icx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/ip4-3n-icx-xxv710.rst
deleted file mode 100644
index 69cadfb202..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/ip4-3n-icx-xxv710.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-3n-icx-xxv710
--------------
-
-64b-ip4routing-base
-```````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-64b-2t1c-ip4-base-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/ip4-3n-skx-x710.rst b/docs/cpta/ndrpdr_latency_trending/ip4-3n-skx-x710.rst
deleted file mode 100644
index e77acd0ddd..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/ip4-3n-skx-x710.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-3n-skx-x710
------------
-
-64b-ip4routing-base-avf
-```````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/ip4-3n-skx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/ip4-3n-skx-xxv710.rst
deleted file mode 100644
index 8387a5bc96..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/ip4-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,34 +0,0 @@
-3n-skx-xxv710
--------------
-
-64b-ip4routing-base-avf
-```````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-base-dpdk
-````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/ip4.rst b/docs/cpta/ndrpdr_latency_trending/ip4.rst
deleted file mode 100644
index 4f8db39729..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/ip4.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-IPv4 Routing
-============
-
-.. toctree::
-
- ip4-2n-icx-xxv710
- ip4-3n-icx-xxv710
- ip4-2n-clx-xxv710
- ip4-2n-clx-x710
- ip4-2n-clx-cx556a
- ip4-2n-clx-e810cq
- ip4-2n-skx-xxv710
- ip4-2n-skx-x710
- ip4-3n-skx-xxv710
- ip4-3n-skx-x710
diff --git a/docs/cpta/ndrpdr_latency_trending/ip4_tunnels-2n-icx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/ip4_tunnels-2n-icx-xxv710.rst
deleted file mode 100644
index 5ad1a41c6b..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/ip4_tunnels-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-2n-icx-xxv710
--------------
-
-64b-ethip4-ethip4udpgeneve-avf
-``````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-2t1c-ethip4--ethip4udpgeneve-avf-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/ip4_tunnels-3n-icx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/ip4_tunnels-3n-icx-xxv710.rst
deleted file mode 100644
index c216b93cb6..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/ip4_tunnels-3n-icx-xxv710.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-3n-icx-xxv710
--------------
-
-64b-ip4tunnel-base
-``````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-64b-2t1c-ip4-tunnels-base-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/ip4_tunnels-3n-skx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/ip4_tunnels-3n-skx-xxv710.rst
deleted file mode 100644
index 9b7c4e6e6c..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/ip4_tunnels-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,34 +0,0 @@
-3n-skx-xxv710
--------------
-
-64b-ip4tunnel-base-avf
-``````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4tunnel-base-dpdk
-```````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/ip4_tunnels.rst b/docs/cpta/ndrpdr_latency_trending/ip4_tunnels.rst
deleted file mode 100644
index a864583149..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/ip4_tunnels.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-IPv4 Tunnels
-============
-
-.. toctree::
-
- ip4_tunnels-3n-icx-xxv710
- ip4_tunnels-3n-skx-xxv710
-
-..
- ip4_tunnels-2n-icx-xxv710
diff --git a/docs/cpta/ndrpdr_latency_trending/ip6-2n-clx-cx556a.rst b/docs/cpta/ndrpdr_latency_trending/ip6-2n-clx-cx556a.rst
deleted file mode 100644
index 04293c6dbf..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/ip6-2n-clx-cx556a.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-2n-clx-cx556a
--------------
-
-78b-ip6routing-base-scale-rdma
-``````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/ip6-2n-clx-e810cq.rst b/docs/cpta/ndrpdr_latency_trending/ip6-2n-clx-e810cq.rst
deleted file mode 100644
index a4df394365..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/ip6-2n-clx-e810cq.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-2n-clx-e810cq
--------------
-
-78b-ip6routing-base-scale
-`````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-e810cq-78b-2t1c-ip6-base-scale-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/ip6-2n-clx-x710.rst b/docs/cpta/ndrpdr_latency_trending/ip6-2n-clx-x710.rst
deleted file mode 100644
index 33dd77ebbc..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/ip6-2n-clx-x710.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-2n-clx-x710
------------
-
-78b-ip6routing-base-scale-avf-dpdk
-``````````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/ip6-2n-clx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/ip6-2n-clx-xxv710.rst
deleted file mode 100644
index 1606196f43..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/ip6-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,66 +0,0 @@
-2n-clx-xxv710
--------------
-
-78b-ip6routing-base-scale-avf
-`````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-78b-ip6routing-rnd-base-scale-avf
-`````````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-rnd-base-scale-avf-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
-
-78b-ip6routing-base-scale-dpdk
-``````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-78b-ip6routing-rnd-base-scale-dpdk
-``````````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-rnd-base-scale-dpdk-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/ip6-2n-icx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/ip6-2n-icx-xxv710.rst
deleted file mode 100644
index b1664bd359..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/ip6-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,50 +0,0 @@
-2n-icx-xxv710
--------------
-
-78b-ip6routing-base-scale-avf
-`````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-78b-2t1c-ip6-base-scale-avf-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
-
-78b-ip6routing-base-scale-dpdk
-``````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-78b-2t1c-ip6-base-scale-dpdk-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
-
-78b-ip6routing-base-scale-af_xdp
-````````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-78b-2t1c-ip6-base-scale-af_xdp-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/ip6-2n-skx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/ip6-2n-skx-xxv710.rst
deleted file mode 100644
index 14516d388f..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/ip6-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,66 +0,0 @@
-2n-skx-xxv710
--------------
-
-78b-ip6routing-base-scale-avf
-`````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-78b-ip6routing-rnd-base-scale-avf
-`````````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-rnd-base-scale-avf-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
-
-78b-ip6routing-base-scale-dpdk
-``````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-78b-ip6routing-rnd-base-scale-dpdk
-``````````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-rnd-base-scale-dpdk-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/ip6-3n-icx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/ip6-3n-icx-xxv710.rst
deleted file mode 100644
index adc4ae3661..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/ip6-3n-icx-xxv710.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-3n-icx-xxv710
--------------
-
-78b-ip6routing-base
-```````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-78b-2t1c-ip6-base-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/ip6-3n-skx-x710.rst b/docs/cpta/ndrpdr_latency_trending/ip6-3n-skx-x710.rst
deleted file mode 100644
index 75f181cd22..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/ip6-3n-skx-x710.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-3n-skx-x710
------------
-
-78b-ip6routing-base-scale-avf
-`````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/ip6-3n-skx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/ip6-3n-skx-xxv710.rst
deleted file mode 100644
index 9157a1860b..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/ip6-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,34 +0,0 @@
-3n-skx-xxv710
--------------
-
-78b-ip6routing-base-scale-avf
-`````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-78b-ip6routing-base-scale-dpdk
-``````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/ip6.rst b/docs/cpta/ndrpdr_latency_trending/ip6.rst
deleted file mode 100644
index 1465feab15..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/ip6.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-IPv6 Routing
-============
-
-.. toctree::
-
- ip6-2n-icx-xxv710
- ip6-3n-icx-xxv710
- ip6-2n-clx-xxv710
- ip6-2n-clx-x710
- ip6-2n-clx-cx556a
- ip6-2n-clx-e810cq
- ip6-2n-skx-xxv710
- ip6-3n-skx-xxv710
diff --git a/docs/cpta/ndrpdr_latency_trending/l2-2n-clx-cx556a.rst b/docs/cpta/ndrpdr_latency_trending/l2-2n-clx-cx556a.rst
deleted file mode 100644
index e3865c4793..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/l2-2n-clx-cx556a.rst
+++ /dev/null
@@ -1,34 +0,0 @@
-2n-clx-cx556a
--------------
-
-64b-l2switching-base-rdma
-`````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-scale-rdma
-```````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/l2-2n-clx-e810cq.rst b/docs/cpta/ndrpdr_latency_trending/l2-2n-clx-e810cq.rst
deleted file mode 100644
index 6083de038e..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/l2-2n-clx-e810cq.rst
+++ /dev/null
@@ -1,34 +0,0 @@
-2n-clx-e810cq
--------------
-
-64b-l2switching-base-scale-avf
-``````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-e810cq-64b-2t1c-l2-base-scale-avf-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-scale-dpdk
-```````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-e810cq-64b-2t1c-l2-base-scale-dpdk-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/l2-2n-clx-x710.rst b/docs/cpta/ndrpdr_latency_trending/l2-2n-clx-x710.rst
deleted file mode 100644
index bff276f24d..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/l2-2n-clx-x710.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-2n-clx-x710
------------
-
-64b-l2switching-base-scale-avf-dpdk
-```````````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/l2-2n-clx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/l2-2n-clx-xxv710.rst
deleted file mode 100644
index e7219e068a..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/l2-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,50 +0,0 @@
-2n-clx-xxv710
--------------
-
-64b-l2switching-base-avf
-````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-scale-avf
-```````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-scale-dpdk
-```````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/l2-2n-icx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/l2-2n-icx-xxv710.rst
deleted file mode 100644
index f97bfba63f..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/l2-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,34 +0,0 @@
-2n-icx-xxv710
--------------
-
-64b-l2switching-base-scale-avf
-```````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-2t1c-l2-base-scale-avf-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-scale-dpdk
-```````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-2t1c-l2-base-scale-dpdk-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/l2-2n-skx-x710.rst b/docs/cpta/ndrpdr_latency_trending/l2-2n-skx-x710.rst
deleted file mode 100644
index 0de74a77cd..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/l2-2n-skx-x710.rst
+++ /dev/null
@@ -1,34 +0,0 @@
-2n-skx-x710
------------
-
-64b-l2switching-base-scale-avf
-``````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-scale-dpdk
-```````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/l2-2n-skx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/l2-2n-skx-xxv710.rst
deleted file mode 100644
index 6e39ad5546..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/l2-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,66 +0,0 @@
-2n-skx-xxv710
--------------
-
-64b-l2switching-base-avf
-````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-dpdk
-`````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-scale-avf
-``````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-scale-dpdk
-```````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/l2-3n-icx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/l2-3n-icx-xxv710.rst
deleted file mode 100644
index 084e31ef10..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/l2-3n-icx-xxv710.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-3n-icx-xxv710
--------------
-
-64b-l2switching-base
-````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-64b-2t1c-l2-base-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/l2-3n-skx-x710.rst b/docs/cpta/ndrpdr_latency_trending/l2-3n-skx-x710.rst
deleted file mode 100644
index 05bcefb062..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/l2-3n-skx-x710.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-3n-skx-x710
------------
-
-64b-l2switching-base-scale-avf
-``````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/l2-3n-skx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/l2-3n-skx-xxv710.rst
deleted file mode 100644
index 60ce535413..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/l2-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,50 +0,0 @@
-3n-skx-xxv710
--------------
-
-64b-l2switching-base-avf
-````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-scale-avf
-`````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-scale-dpdk
-```````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/l2.rst b/docs/cpta/ndrpdr_latency_trending/l2.rst
deleted file mode 100644
index db174204e5..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/l2.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-L2 Ethernet Switching
-=====================
-
-.. toctree::
-
- l2-2n-icx-xxv710
- l2-3n-icx-xxv710
- l2-2n-clx-xxv710
- l2-2n-clx-x710
- l2-2n-clx-cx556a
- l2-2n-clx-e810cq
- l2-2n-skx-xxv710
- l2-2n-skx-x710
- l2-3n-skx-xxv710
- l2-3n-skx-x710
diff --git a/docs/cpta/ndrpdr_latency_trending/nat44-det-bidir-2n-clx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/nat44-det-bidir-2n-clx-xxv710.rst
deleted file mode 100644
index 7ba4bb9902..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/nat44-det-bidir-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44det-ip4routing-stl-bidir-avf
-`````````````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/nat44-det-bidir-2n-icx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/nat44-det-bidir-2n-icx-xxv710.rst
deleted file mode 100644
index 96a20327ba..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/nat44-det-bidir-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-2n-icx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44det-ip4routing-stl-bidir-avf
-`````````````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/nat44-det-bidir-2n-skx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/nat44-det-bidir-2n-skx-xxv710.rst
deleted file mode 100644
index aaf5e0a069..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/nat44-det-bidir-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44det-ip4routing-stl-bidir-avf
-`````````````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/nat44-det-bidir.rst b/docs/cpta/ndrpdr_latency_trending/nat44-det-bidir.rst
deleted file mode 100644
index da1b61e1a5..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/nat44-det-bidir.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Det BiDir
----------
-
-.. toctree::
-
- nat44-det-bidir-2n-icx-xxv710
- nat44-det-bidir-2n-clx-xxv710
- nat44-det-bidir-2n-skx-xxv710
diff --git a/docs/cpta/ndrpdr_latency_trending/nat44-ed-unidir-2n-clx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/nat44-ed-unidir-2n-clx-xxv710.rst
deleted file mode 100644
index a682f17e95..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/nat44-ed-unidir-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-stl-unidir-avf
-`````````````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/nat44-ed-unidir-2n-icx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/nat44-ed-unidir-2n-icx-xxv710.rst
deleted file mode 100644
index 4ff2736985..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/nat44-ed-unidir-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-2n-icx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-stl-unidir-avf
-`````````````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/nat44-ed-unidir-2n-skx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/nat44-ed-unidir-2n-skx-xxv710.rst
deleted file mode 100644
index feaf769ac7..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/nat44-ed-unidir-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-stl-unidir-avf
-`````````````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/nat44-ed-unidir.rst b/docs/cpta/ndrpdr_latency_trending/nat44-ed-unidir.rst
deleted file mode 100644
index 8146e3f35a..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/nat44-ed-unidir.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-ED UniDir
-~~~~~~~~~
-
-.. toctree::
-
- nat44-ed-unidir-2n-clx-xxv710
- nat44-ed-unidir-2n-skx-xxv710
-
-..
- nat44-ed-unidir-2n-icx-xxv710
diff --git a/docs/cpta/ndrpdr_latency_trending/nat44.rst b/docs/cpta/ndrpdr_latency_trending/nat44.rst
deleted file mode 100644
index d0c8a7970f..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/nat44.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-NAT44 IPv4 Routing
-==================
-
-.. toctree::
-
- nat44-det-bidir
- nat44-ed-unidir
diff --git a/docs/cpta/ndrpdr_latency_trending/srv6-3n-icx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/srv6-3n-icx-xxv710.rst
deleted file mode 100644
index a6db9a5b38..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/srv6-3n-icx-xxv710.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-3n-icx-xxv710
--------------
-
-78b-srv6-ip6routing-base-avf
-````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx-xxv710-78b-2t1c-srv6-base-avf-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/srv6-3n-skx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/srv6-3n-skx-xxv710.rst
deleted file mode 100644
index ce3cc9f2a1..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/srv6-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-3n-skx-xxv710
--------------
-
-78b-srv6-ip6routing-base-avf
-````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/srv6.rst b/docs/cpta/ndrpdr_latency_trending/srv6.rst
deleted file mode 100644
index 152bca3427..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/srv6.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-SRv6 Routing
-============
-
-.. toctree::
-
- srv6-3n-icx-xxv710
- srv6-3n-skx-xxv710
diff --git a/docs/cpta/ndrpdr_latency_trending/trex-2n-skx-x710.rst b/docs/cpta/ndrpdr_latency_trending/trex-2n-skx-x710.rst
deleted file mode 100644
index f28ce92c3f..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/trex-2n-skx-x710.rst
+++ /dev/null
@@ -1,50 +0,0 @@
-2n-skx-x710
------------
-
-64b-ip4routing-base-scale
-`````````````````````````
-
-pdr-p50-d1-avg
-::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-trex-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--ip4-base-scale-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
-
-78b-ip6routing-base-scale
-`````````````````````````
-
-pdr-p50-d1-avg
-::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-trex-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--ip6-base-scale-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-scale
-`````````````````````
-
-pdr-p50-d1-avg
-::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-trex-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--l2-scale-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/trex.rst b/docs/cpta/ndrpdr_latency_trending/trex.rst
deleted file mode 100644
index 3feef28705..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/trex.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-TRex
-====
-
-.. toctree::
-
- trex-2n-skx-x710
diff --git a/docs/cpta/ndrpdr_latency_trending/vhost-2n-clx-cx556a.rst b/docs/cpta/ndrpdr_latency_trending/vhost-2n-clx-cx556a.rst
deleted file mode 100644
index 1016ba6197..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/vhost-2n-clx-cx556a.rst
+++ /dev/null
@@ -1,34 +0,0 @@
-2n-clx-cx556a
--------------
-
-64b-vhost-base-rdma-testpmd
-```````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-rdma-vpp
-```````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/vhost-2n-clx-e810cq.rst b/docs/cpta/ndrpdr_latency_trending/vhost-2n-clx-e810cq.rst
deleted file mode 100644
index 8587cddbc3..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/vhost-2n-clx-e810cq.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-2n-clx-e810cq
--------------
-
-64b-vhost-base
-``````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-e810cq-64b-2t1c-vhost-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/vhost-2n-clx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/vhost-2n-clx-xxv710.rst
deleted file mode 100644
index f35f39810e..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/vhost-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,34 +0,0 @@
-2n-clx-xxv710
--------------
-
-64b-vhost-base-avf-dpdk-testpmd
-```````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-avf-dpdk-vpp
-```````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/vhost-2n-icx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/vhost-2n-icx-xxv710.rst
deleted file mode 100644
index 3f919997bd..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/vhost-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-2n-icx-xxv710
--------------
-
-64b-vhost-base
-``````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-2t1c-vhost-base-pdr-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/vhost-2n-skx-x710.rst b/docs/cpta/ndrpdr_latency_trending/vhost-2n-skx-x710.rst
deleted file mode 100644
index 5729154f49..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/vhost-2n-skx-x710.rst
+++ /dev/null
@@ -1,34 +0,0 @@
-2n-skx-x710
------------
-
-64b-vhost-base-dpdk-testpmd
-```````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-dpdk-vpp
-```````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/vhost-2n-skx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/vhost-2n-skx-xxv710.rst
deleted file mode 100644
index 5b7de38c56..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/vhost-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,66 +0,0 @@
-2n-skx-xxv710
--------------
-
-64b-vhost-base-avf-testpmd
-``````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-avf-vpp
-``````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-dpdk-testpmd
-```````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-dpdk-vpp
-```````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/vhost-3n-skx-x710.rst b/docs/cpta/ndrpdr_latency_trending/vhost-3n-skx-x710.rst
deleted file mode 100644
index 129a058434..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/vhost-3n-skx-x710.rst
+++ /dev/null
@@ -1,34 +0,0 @@
-3n-skx-x710
------------
-
-64b-link-bonding-vhost-base-avf-testpmd
-```````````````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-link-bonding-vhost-base-avf-vpp
-````````````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/vhost-3n-skx-xxv710.rst b/docs/cpta/ndrpdr_latency_trending/vhost-3n-skx-xxv710.rst
deleted file mode 100644
index 1e20e7f98a..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/vhost-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,82 +0,0 @@
-3n-skx-xxv710
--------------
-
-64b-link-bonding-vhost-base-avf-testpmd
-```````````````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-link-bonding-vhost-base-avf-vpp
-````````````````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-avf-testpmd
-``````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-avf-vpp
-``````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
-
-64b-vhost-base-dpdk-testpmd
-```````````````````````````
-
-2t1c-pdr-p50-d1-avg
-:::::::::::::::::::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/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-lat.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_latency_trending/vhost.rst b/docs/cpta/ndrpdr_latency_trending/vhost.rst
deleted file mode 100644
index 094bb78390..0000000000
--- a/docs/cpta/ndrpdr_latency_trending/vhost.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-VMs vhost-user
-==============
-
-.. toctree::
-
- vhost-2n-icx-xxv710
- vhost-2n-clx-xxv710
- vhost-2n-clx-cx556a
- vhost-2n-clx-e810cq
- vhost-2n-skx-xxv710
- vhost-3n-skx-xxv710
- vhost-3n-skx-x710
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-e810cq.rst b/docs/cpta/ndrpdr_trending/container_memif-2n-clx-e810cq.rst
deleted file mode 100644
index a18f9ca3f4..0000000000
--- a/docs/cpta/ndrpdr_trending/container_memif-2n-clx-e810cq.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-2n-clx-e810cq
--------------
-
-64b-memif-base
-``````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-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-e810cq-64b-2t1c-memif-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-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-e810cq-64b-2t1c-memif-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-icx-xxv710.rst b/docs/cpta/ndrpdr_trending/container_memif-2n-icx-xxv710.rst
deleted file mode 100644
index 08fbc09d9c..0000000000
--- a/docs/cpta/ndrpdr_trending/container_memif-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-2n-icx-xxv710
--------------
-
-64b-memif-base
-``````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-2t1c-memif-base-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-2t1c-memif-base-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 f7f6677926..0000000000
--- a/docs/cpta/ndrpdr_trending/container_memif.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-LXC/DRC Container Memif
-=======================
-
-.. toctree::
-
- container_memif-2n-icx-xxv710
- container_memif-2n-clx-xxv710
- container_memif-2n-clx-cx556a
- container_memif-2n-clx-e810cq
- container_memif-2n-skx-xxv710
- container_memif-3n-skx-xxv710
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-e810cq.rst b/docs/cpta/ndrpdr_trending/ip4-2n-clx-e810cq.rst
deleted file mode 100644
index 2cb7782b94..0000000000
--- a/docs/cpta/ndrpdr_trending/ip4-2n-clx-e810cq.rst
+++ /dev/null
@@ -1,130 +0,0 @@
-2n-clx-e810cq
--------------
-
-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-e810cq-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-e810cq-64b-2t1c-ip4-base-scale-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-e810cq-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-e810cq-64b-2t1c-ip4-base-scale-dpdk-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-e810cq-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-e810cq-64b-2t1c-ip4-features-avf-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-e810cq-64b-2t1c-ip4-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-e810cq-64b-2t1c-ip4-features-dpdk-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 2dd7f5beee..0000000000
--- a/docs/cpta/ndrpdr_trending/ip4-2n-clx-x710.rst
+++ /dev/null
@@ -1,43 +0,0 @@
-2n-clx-x710
------------
-
-64b-ip4routing-base-scale-[avf,dpdk,af_xdp]
-```````````````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-ndr"></a>
- <a name="64b-2t1c-base-dpdk-ndr"></a>
- <a name="64b-2t1c-base-af_xdp-ndr"></a>
- <a name="64b-2t1c-scale-avf-ndr"></a>
- <a name="64b-2t1c-scale-dpdk-ndr"></a>
- <a name="64b-2t1c-scale-af_xdp-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>
- <a name="64b-2t1c-base-af_xdp-pdr"></a>
- <a name="64b-2t1c-scale-avf-pdr"></a>
- <a name="64b-2t1c-scale-dpdk-pdr"></a>
- <a name="64b-2t1c-scale-af_xdp-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 179d37b703..0000000000
--- a/docs/cpta/ndrpdr_trending/ip4-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,225 +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>
-
-64b-ip4routing-base-scale-af_xdp
-````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-af_xdp-ndr"></a>
- <a name="64b-2t1c-scale-af_xdp-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-af_xdp-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-af_xdp-pdr"></a>
- <a name="64b-2t1c-scale-af_xdp-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-af_xdp-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/ip4-2n-icx-xxv710.rst b/docs/cpta/ndrpdr_trending/ip4-2n-icx-xxv710.rst
deleted file mode 100644
index 139e18d981..0000000000
--- a/docs/cpta/ndrpdr_trending/ip4-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,132 +0,0 @@
-2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-2t1c-ip4-base-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-2t1c-ip4-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-base-scale-af_xdp
-````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-af_xdp-ndr"></a>
- <a name="64b-2t1c-scale-af_xdp-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-2t1c-ip4-base-scale-af_xdp-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-af_xdp-pdr"></a>
- <a name="64b-2t1c-scale-af_xdp-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-2t1c-ip4-base-scale-af_xdp-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 08fda73792..0000000000
--- a/docs/cpta/ndrpdr_trending/ip4-2n-skx-x710.rst
+++ /dev/null
@@ -1,43 +0,0 @@
-2n-skx-x710
------------
-
-64b-ip4routing-base-scale-[avf,dpdk,af_xdp]
-```````````````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf-ndr"></a>
- <a name="64b-2t1c-base-dpdk-ndr"></a>
- <a name="64b-2t1c-base-avf-ndr"></a>
- <a name="64b-2t1c-scale-avf-ndr"></a>
- <a name="64b-2t1c-scale-dpdk-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-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-base-avf-pdr"></a>
- <a name="64b-2t1c-scale-avf-pdr"></a>
- <a name="64b-2t1c-scale-dpdk-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-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 bc85aa2e05..0000000000
--- a/docs/cpta/ndrpdr_trending/ip4-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,192 +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>
-
-64b-ip4routing-base-scale-af_xdp
-````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-af_xdp-ndr"></a>
- <a name="64b-2t1c-scale-af_xdp-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-af_xdp-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-af_xdp-pdr"></a>
- <a name="64b-2t1c-scale-af_xdp-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-af_xdp-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/ip4-3n-icx-xxv710.rst b/docs/cpta/ndrpdr_trending/ip4-3n-icx-xxv710.rst
deleted file mode 100644
index d8370fe45d..0000000000
--- a/docs/cpta/ndrpdr_trending/ip4-3n-icx-xxv710.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-3n-icx-xxv710
--------------
-
-64b-ip4routing-base
-```````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-64b-2t1c-ip4-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-64b-2t1c-ip4-base-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 4f8db39729..0000000000
--- a/docs/cpta/ndrpdr_trending/ip4.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-IPv4 Routing
-============
-
-.. toctree::
-
- ip4-2n-icx-xxv710
- ip4-3n-icx-xxv710
- ip4-2n-clx-xxv710
- ip4-2n-clx-x710
- ip4-2n-clx-cx556a
- ip4-2n-clx-e810cq
- ip4-2n-skx-xxv710
- ip4-2n-skx-x710
- ip4-3n-skx-xxv710
- ip4-3n-skx-x710
diff --git a/docs/cpta/ndrpdr_trending/ip4_tunnels-2n-icx-xxv710.rst b/docs/cpta/ndrpdr_trending/ip4_tunnels-2n-icx-xxv710.rst
deleted file mode 100644
index 2719060f51..0000000000
--- a/docs/cpta/ndrpdr_trending/ip4_tunnels-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-2n-icx-xxv710
--------------
-
-64b-ethip4-ethip4udpgeneve-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-2t1c-ethip4--ethip4udpgeneve-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-2t1c-ethip4--ethip4udpgeneve-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/ip4_tunnels-3n-icx-xxv710 copy.rst b/docs/cpta/ndrpdr_trending/ip4_tunnels-3n-icx-xxv710 copy.rst
deleted file mode 100644
index 69fd56f026..0000000000
--- a/docs/cpta/ndrpdr_trending/ip4_tunnels-3n-icx-xxv710 copy.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-3n-icx-e810xxv
---------------
-
-64b-ip4tunnel-gtpu
-``````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-gtpu-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-e810xxv-64b-2t1c-ip4-tunnels-gtpu-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-gtpu-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-e810xxv-64b-2t1c-ip4-tunnels-gtpu-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/ip4_tunnels-3n-icx-xxv710.rst b/docs/cpta/ndrpdr_trending/ip4_tunnels-3n-icx-xxv710.rst
deleted file mode 100644
index 27e0b225d3..0000000000
--- a/docs/cpta/ndrpdr_trending/ip4_tunnels-3n-icx-xxv710.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-3n-icx-xxv710
--------------
-
-64b-ip4tunnel-base
-``````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-64b-2t1c-ip4-tunnels-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-64b-2t1c-ip4-tunnels-base-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 396bde1318..0000000000
--- a/docs/cpta/ndrpdr_trending/ip4_tunnels.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-IPv4 Tunnels
-============
-
-.. toctree::
-
- ip4_tunnels-2n-icx-xxv710
- ip4_tunnels-3n-icx-xxv710
- ip4_tunnels-3n-icx-e810xxv
- ip4_tunnels-3n-skx-xxv710
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-e810cq.rst b/docs/cpta/ndrpdr_trending/ip6-2n-clx-e810cq.rst
deleted file mode 100644
index 39f839fb01..0000000000
--- a/docs/cpta/ndrpdr_trending/ip6-2n-clx-e810cq.rst
+++ /dev/null
@@ -1,39 +0,0 @@
-2n-clx-e810cq
--------------
-
-78b-ip6routing-base-scale
-`````````````````````````
-
-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-e810cq-78b-2t1c-ip6-base-scale-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-e810cq-78b-2t1c-ip6-base-scale-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 e9985b4639..0000000000
--- a/docs/cpta/ndrpdr_trending/ip6-2n-clx-x710.rst
+++ /dev/null
@@ -1,43 +0,0 @@
-2n-clx-x710
------------
-
-78b-ip6routing-base-scale-[avf,dpdk,af_xdp]
-```````````````````````````````````````````
-
-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>
- <a name="78b-2t1c-base-af_xdp-ndr"></a>
- <a name="78b-2t1c-scale-af_xdp-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>
- <a name="78b-2t1c-base-af_xdp-pdr"></a>
- <a name="78b-2t1c-scale-af_xdp-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 a1f3c23024..0000000000
--- a/docs/cpta/ndrpdr_trending/ip6-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,167 +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-rnd-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-rnd-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-rnd-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>
-
-78b-ip6routing-rnd-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-rnd-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-rnd-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-78b-ip6routing-base-scale-af_xdp
-````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-af_xdp-ndr"></a>
- <a name="78b-2t1c-scale-af_xdp-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-af_xdp-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-af_xdp-pdr"></a>
- <a name="78b-2t1c-scale-af_xdp-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-af_xdp-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/ip6-2n-icx-xxv710.rst b/docs/cpta/ndrpdr_trending/ip6-2n-icx-xxv710.rst
deleted file mode 100644
index 9e8fd52a95..0000000000
--- a/docs/cpta/ndrpdr_trending/ip6-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,101 +0,0 @@
-2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-78b-2t1c-ip6-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-78b-ip6routing-base-scale-af_xdp
-````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-af_xdp-ndr"></a>
- <a name="78b-2t1c-scale-af_xdp-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-78b-2t1c-ip6-base-scale-af_xdp-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-af_xdp-pdr"></a>
- <a name="78b-2t1c-scale-af_xdp-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-78b-2t1c-ip6-base-scale-af_xdp-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 23b3a830a5..0000000000
--- a/docs/cpta/ndrpdr_trending/ip6-2n-skx-x710.rst
+++ /dev/null
@@ -1,43 +0,0 @@
-2n-skx-x710
--------------
-
-78b-ip6routing-base-scale-[avf,dpdk,af_xdp]
-```````````````````````````````````````````
-
-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>
- <a name="78b-2t1c-base-af_xdp-ndr"></a>
- <a name="78b-2t1c-scale-af_xdp-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-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>
- <a name="78b-2t1c-base-af_xdp-pdr"></a>
- <a name="78b-2t1c-scale-af_xdp-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-scale-avf-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 a05b3916c4..0000000000
--- a/docs/cpta/ndrpdr_trending/ip6-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,134 +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-rnd-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-rnd-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-rnd-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>
-
-78b-ip6routing-rnd-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-rnd-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-rnd-base-scale-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/ip6-3n-icx-xxv710.rst b/docs/cpta/ndrpdr_trending/ip6-3n-icx-xxv710.rst
deleted file mode 100644
index 9c0c49aaba..0000000000
--- a/docs/cpta/ndrpdr_trending/ip6-3n-icx-xxv710.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-3n-icx-xxv710
--------------
-
-78b-ip6routing-base
-```````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-78b-2t1c-ip6-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-78b-2t1c-ip6-base-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 97efd2e9d7..0000000000
--- a/docs/cpta/ndrpdr_trending/ip6.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-IPv6 Routing
-============
-
-.. toctree::
-
- ip6-2n-icx-xxv710
- ip6-3n-icx-xxv710
- ip6-2n-clx-xxv710
- ip6-2n-clx-x710
- ip6-2n-clx-cx556a
- ip6-2n-clx-e810cq
- ip6-2n-skx-xxv710
- ip6-2n-skx-x710
- ip6-3n-skx-xxv710
diff --git a/docs/cpta/ndrpdr_trending/ipsec-3n-icx-xxv710.rst b/docs/cpta/ndrpdr_trending/ipsec-3n-icx-xxv710.rst
deleted file mode 100644
index f5d572460f..0000000000
--- a/docs/cpta/ndrpdr_trending/ipsec-3n-icx-xxv710.rst
+++ /dev/null
@@ -1,333 +0,0 @@
-3n-icx-xxv710
--------------
-
-1518b-ipsec-aes128cbc-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-1518b-2t1c-ipsec-aes128cbc-ip4routing-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-1518b-2t1c-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-1518b-ipsec-aes256gcm-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-1518b-2t1c-ipsec-aes256gcm-ip4routing-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-1518b-2t1c-ipsec-aes256gcm-ip4routing-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-1518b-2t1c-ipsec-ip4routing-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-1518b-2t1c-ipsec-ip4routing-base-scale-sw-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-1518b-ipsec-scheduler-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-1518b-2t1c-ipsec-scheduler-ip4routing-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-1518b-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-1518b-ipsec-scheduler-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-1518b-2t1c-ipsec-scheduler-ip4routing-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-1518b-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-
-imix-ipsec-aes128cbc-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-imix-2t1c-ipsec-aes128cbc-ip4routing-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-imix-2t1c-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-imix-ipsec-aes256gcm-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-imix-2t1c-ipsec-aes256gcm-ip4routing-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-imix-2t1c-ipsec-aes256gcm-ip4routing-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-imix-2t1c-ipsec-ip4routing-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-sw-dpdk-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-imix-ipsec-scheduler-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-imix-2t1c-ipsec-scheduler-ip4routing-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-imix-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-imix-ipsec-scheduler-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-imix-2t1c-ipsec-scheduler-ip4routing-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-imix-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-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 6b5646ad7a..0000000000
--- a/docs/cpta/ndrpdr_trending/ipsec.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-IPSec IPv4 Routing
-==================
-
-.. toctree::
-
- ipsec-3n-icx-xxv710
- ipsec-3n-skx-xxv710
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-e810cq.rst b/docs/cpta/ndrpdr_trending/l2-2n-clx-e810cq.rst
deleted file mode 100644
index 5a42903f1f..0000000000
--- a/docs/cpta/ndrpdr_trending/l2-2n-clx-e810cq.rst
+++ /dev/null
@@ -1,68 +0,0 @@
-2n-clx-e810cq
--------------
-
-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-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-e810cq-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-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-e810cq-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-e810cq-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-e810cq-64b-2t1c-l2-base-scale-dpdk-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 6dd0308d11..0000000000
--- a/docs/cpta/ndrpdr_trending/l2-2n-clx-x710.rst
+++ /dev/null
@@ -1,43 +0,0 @@
-2n-clx-x710
------------
-
-64b-l2switching-base-scale-[avf,dpdk,af_xdp]
-````````````````````````````````````````````
-
-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>
- <a name="64b-2t1c-base-af_xdp-ndr"></a>
- <a name="64b-2t1c-scale-af_xdp-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>
- <a name="64b-2t1c-base-af_xdp-ndr"></a>
- <a name="64b-2t1c-scale-af_xdp-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-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 bb3845d858..0000000000
--- a/docs/cpta/ndrpdr_trending/l2-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,130 +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>
-
-64b-l2switching-base-scale-af_xdp
-`````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-af_xdp-ndr"></a>
- <a name="64b-2t1c-scale-af_xdp-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-af_xdp-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-af_xdp-pdr"></a>
- <a name="64b-2t1c-scale-af_xdp-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-af_xdp-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/l2-2n-icx-xxv710.rst b/docs/cpta/ndrpdr_trending/l2-2n-icx-xxv710.rst
deleted file mode 100644
index 8f2b65b16d..0000000000
--- a/docs/cpta/ndrpdr_trending/l2-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,66 +0,0 @@
-2n-icx-xxv710
--------------
-
-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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 8264b5ca83..0000000000
--- a/docs/cpta/ndrpdr_trending/l2-2n-skx-x710.rst
+++ /dev/null
@@ -1,101 +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>
-
-64b-l2switching-base-scale-af_xdp
-`````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-af_xdp-ndr"></a>
- <a name="64b-2t1c-scale-af_xdp-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-af_xdp-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-af_xdp-pdr"></a>
- <a name="64b-2t1c-scale-af_xdp-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-af_xdp-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 07a1f96a6d..0000000000
--- a/docs/cpta/ndrpdr_trending/l2-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,159 +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-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-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>
-
-64b-l2switching-base-scale-af_xdp
-`````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-af_xdp-ndr"></a>
- <a name="64b-2t1c-scale-af_xdp-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-af_xdp-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-af_xdp-pdr"></a>
- <a name="64b-2t1c-scale-af_xdp-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-af_xdp-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/l2-3n-icx-xxv710.rst b/docs/cpta/ndrpdr_trending/l2-3n-icx-xxv710.rst
deleted file mode 100644
index 101239d70b..0000000000
--- a/docs/cpta/ndrpdr_trending/l2-3n-icx-xxv710.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-3n-icx-xxv710
--------------
-
-64b-l2switching-base
-````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-64b-2t1c-l2-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-64b-2t1c-l2-base-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 b3e9f07f2b..0000000000
--- a/docs/cpta/ndrpdr_trending/l2-3n-skx-x710.rst
+++ /dev/null
@@ -1,35 +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>
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 db174204e5..0000000000
--- a/docs/cpta/ndrpdr_trending/l2.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-L2 Ethernet Switching
-=====================
-
-.. toctree::
-
- l2-2n-icx-xxv710
- l2-3n-icx-xxv710
- l2-2n-clx-xxv710
- l2-2n-clx-x710
- l2-2n-clx-cx556a
- l2-2n-clx-e810cq
- l2-2n-skx-xxv710
- l2-2n-skx-x710
- l2-3n-skx-xxv710
- l2-3n-skx-x710
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-icx-xxv710.rst b/docs/cpta/ndrpdr_trending/nat44-det-bidir-2n-icx-xxv710.rst
deleted file mode 100644
index 2de0a6653e..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-det-bidir-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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 da1b61e1a5..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-det-bidir.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Det BiDir
----------
-
-.. toctree::
-
- nat44-det-bidir-2n-icx-xxv710
- 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-icx-xxv710.rst b/docs/cpta/ndrpdr_trending/nat44-ed-tcp-cps-2n-icx-xxv710.rst
deleted file mode 100644
index 8741029d11..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-ed-tcp-cps-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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 9e3c744ad1..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-ed-tcp-cps.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-ED TCP CPS
-----------
-
-.. toctree::
-
- nat44-ed-tcp-cps-2n-icx-xxv710
- 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-tcp-tput-2n-clx-xxv710.rst b/docs/cpta/ndrpdr_trending/nat44-ed-tcp-tput-2n-clx-xxv710.rst
deleted file mode 100644
index 73fb9d504e..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-ed-tcp-tput-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,64 +0,0 @@
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-tcp-tput-avf
-```````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-tcp-tput-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-tput-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-tcp-tput-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-tput-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-100b-nat44ed-ip4routing-tcp-tput-avf
-````````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="100b-2t1c-tcp-tput-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-100b-2t1c-nat44ed-ip4routing-tcp-tput-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="100b-2t1c-tcp-tput-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-100b-2t1c-nat44ed-ip4routing-tcp-tput-avf-pdr.html"></iframe>
- <p><br></p>
- </center> \ No newline at end of file
diff --git a/docs/cpta/ndrpdr_trending/nat44-ed-tcp-tput-2n-icx-xxv710.rst b/docs/cpta/ndrpdr_trending/nat44-ed-tcp-tput-2n-icx-xxv710.rst
deleted file mode 100644
index 6dcd91b23c..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-ed-tcp-tput-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,64 +0,0 @@
-2n-icx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-tcp-tput-avf
-```````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-tcp-tput-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-tput-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-tcp-tput-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-tput-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-100b-nat44ed-ip4routing-tcp-tput-avf
-````````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="100b-2t1c-tcp-tput-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-100b-2t1c-nat44ed-ip4routing-tcp-tput-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="100b-2t1c-tcp-tput-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-100b-2t1c-nat44ed-ip4routing-tcp-tput-avf-pdr.html"></iframe>
- <p><br></p>
- </center> \ No newline at end of file
diff --git a/docs/cpta/ndrpdr_trending/nat44-ed-tcp-tput-2n-skx-xxv710.rst b/docs/cpta/ndrpdr_trending/nat44-ed-tcp-tput-2n-skx-xxv710.rst
deleted file mode 100644
index b17b714a3c..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-ed-tcp-tput-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,64 +0,0 @@
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-tcp-tput-avf
-```````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-tcp-tput-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-tput-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-tcp-tput-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-tput-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-100b-nat44ed-ip4routing-tcp-tput-avf
-````````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="100b-2t1c-tcp-tput-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-100b-2t1c-nat44ed-ip4routing-tcp-tput-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="100b-2t1c-tcp-tput-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-100b-2t1c-nat44ed-ip4routing-tcp-tput-avf-pdr.html"></iframe>
- <p><br></p>
- </center> \ No newline at end of file
diff --git a/docs/cpta/ndrpdr_trending/nat44-ed-tcp-tput.rst b/docs/cpta/ndrpdr_trending/nat44-ed-tcp-tput.rst
deleted file mode 100644
index 22a9e93592..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-ed-tcp-tput.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-ED TCP TPUT
-~~~~~~~~~~~
-
-.. toctree::
-
- nat44-ed-tcp-tput-2n-icx-xxv710
- nat44-ed-tcp-tput-2n-clx-xxv710
- nat44-ed-tcp-tput-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-icx-xxv710.rst b/docs/cpta/ndrpdr_trending/nat44-ed-udp-cps-2n-icx-xxv710.rst
deleted file mode 100644
index d4c79835f9..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-ed-udp-cps-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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 8540fdfd12..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-ed-udp-cps.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-ED UDP CPS
-----------
-
-.. toctree::
-
- nat44-ed-udp-cps-2n-icx-xxv710
- 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-udp-tput-2n-clx-xxv710.rst b/docs/cpta/ndrpdr_trending/nat44-ed-udp-tput-2n-clx-xxv710.rst
deleted file mode 100644
index 2d75fc6c9e..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-ed-udp-tput-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,64 +0,0 @@
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-udp-tput-avf
-```````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-udp-tput-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-tput-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-udp-tput-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-tput-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-100b-nat44ed-ip4routing-udp-tput-avf
-````````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="100b-2t1c-udp-tput-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-100b-2t1c-nat44ed-ip4routing-udp-tput-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="100b-2t1c-udp-tput-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-100b-2t1c-nat44ed-ip4routing-udp-tput-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/nat44-ed-udp-tput-2n-icx-xxv710.rst b/docs/cpta/ndrpdr_trending/nat44-ed-udp-tput-2n-icx-xxv710.rst
deleted file mode 100644
index 0b1e457a4e..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-ed-udp-tput-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,64 +0,0 @@
-2n-icx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-udp-tput-avf
-```````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-udp-tput-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-tput-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-udp-tput-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-tput-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-100b-nat44ed-ip4routing-udp-tput-avf
-````````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="100b-2t1c-udp-tput-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-100b-2t1c-nat44ed-ip4routing-udp-tput-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="100b-2t1c-udp-tput-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-100b-2t1c-nat44ed-ip4routing-udp-tput-avf-pdr.html"></iframe>
- <p><br></p>
- </center> \ No newline at end of file
diff --git a/docs/cpta/ndrpdr_trending/nat44-ed-udp-tput-2n-skx-xxv710.rst b/docs/cpta/ndrpdr_trending/nat44-ed-udp-tput-2n-skx-xxv710.rst
deleted file mode 100644
index f806435554..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-ed-udp-tput-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,64 +0,0 @@
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-udp-tput-avf
-```````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-udp-tput-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-tput-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-udp-tput-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-tput-avf-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-100b-nat44ed-ip4routing-udp-tput-avf
-````````````````````````````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="100b-2t1c-udp-tput-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-100b-2t1c-nat44ed-ip4routing-udp-tput-avf-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="100b-2t1c-udp-tput-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-100b-2t1c-nat44ed-ip4routing-udp-tput-avf-pdr.html"></iframe>
- <p><br></p>
- </center> \ No newline at end of file
diff --git a/docs/cpta/ndrpdr_trending/nat44-ed-udp-tput.rst b/docs/cpta/ndrpdr_trending/nat44-ed-udp-tput.rst
deleted file mode 100644
index d611618e24..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-ed-udp-tput.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-ED UDP TPUT
-~~~~~~~~~~~
-
-.. toctree::
-
- nat44-ed-udp-tput-2n-icx-xxv710
- nat44-ed-udp-tput-2n-clx-xxv710
- nat44-ed-udp-tput-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-icx-xxv710.rst b/docs/cpta/ndrpdr_trending/nat44-ed-unidir-2n-icx-xxv710.rst
deleted file mode 100644
index 69cb136a15..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-ed-unidir-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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 8146e3f35a..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44-ed-unidir.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-ED UniDir
-~~~~~~~~~
-
-.. toctree::
-
- nat44-ed-unidir-2n-clx-xxv710
- nat44-ed-unidir-2n-skx-xxv710
-
-..
- nat44-ed-unidir-2n-icx-xxv710
diff --git a/docs/cpta/ndrpdr_trending/nat44.rst b/docs/cpta/ndrpdr_trending/nat44.rst
deleted file mode 100644
index ad6e424f5c..0000000000
--- a/docs/cpta/ndrpdr_trending/nat44.rst
+++ /dev/null
@@ -1,13 +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
- nat44-ed-udp-tput
- nat44-ed-tcp-tput
diff --git a/docs/cpta/ndrpdr_trending/srv6-3n-icx-xxv710.rst b/docs/cpta/ndrpdr_trending/srv6-3n-icx-xxv710.rst
deleted file mode 100644
index ba037d2dc3..0000000000
--- a/docs/cpta/ndrpdr_trending/srv6-3n-icx-xxv710.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-3n-icx-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-icx-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-icx-xxv710-78b-2t1c-srv6-base-avf-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 152bca3427..0000000000
--- a/docs/cpta/ndrpdr_trending/srv6.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-SRv6 Routing
-============
-
-.. toctree::
-
- srv6-3n-icx-xxv710
- srv6-3n-skx-xxv710
diff --git a/docs/cpta/ndrpdr_trending/trex-2n-skx-x710.rst b/docs/cpta/ndrpdr_trending/trex-2n-skx-x710.rst
deleted file mode 100644
index 1016442054..0000000000
--- a/docs/cpta/ndrpdr_trending/trex-2n-skx-x710.rst
+++ /dev/null
@@ -1,147 +0,0 @@
-2n-skx-x710
------------
-
-64b-ip4routing-base-scale
-`````````````````````````
-
-ndr
-:::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-trex-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--ip4-base-scale-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-pdr
-:::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-trex-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--ip4-base-scale-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-[udp|tcp]-stf-cps
-````````````````````````````````
-
-ndr
-:::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-trex-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--ip4routing-stf-cps-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-pdr
-:::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-trex-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--ip4routing-stf-cps-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-[udp|tcp]-stf-pps
-````````````````````````````````
-
-ndr
-:::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-trex-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--ip4routing-stf-pps-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-pdr
-:::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-trex-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--ip4routing-stf-pps-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-78b-ip6routing-base-scale
-`````````````````````````
-
-ndr
-:::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-trex-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--ip6-base-scale-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-pdr
-:::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-trex-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--ip6-base-scale-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-scale
-`````````````````````
-
-ndr
-:::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-trex-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--l2-scale-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-pdr
-:::
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-trex-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--l2-scale-pdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/ndrpdr_trending/trex.rst b/docs/cpta/ndrpdr_trending/trex.rst
deleted file mode 100644
index 3feef28705..0000000000
--- a/docs/cpta/ndrpdr_trending/trex.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-TRex
-====
-
-.. toctree::
-
- trex-2n-skx-x710
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-e810cq.rst b/docs/cpta/ndrpdr_trending/vhost-2n-clx-e810cq.rst
deleted file mode 100644
index 9c3cd26f86..0000000000
--- a/docs/cpta/ndrpdr_trending/vhost-2n-clx-e810cq.rst
+++ /dev/null
@@ -1,35 +0,0 @@
-2n-clx-e810cq
--------------
-
-64b-vhost-base
-``````````````
-
-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-e810cq-64b-2t1c-vhost-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-e810cq-64b-2t1c-vhost-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-icx-xxv710.rst b/docs/cpta/ndrpdr_trending/vhost-2n-icx-xxv710.rst
deleted file mode 100644
index 359a87a39e..0000000000
--- a/docs/cpta/ndrpdr_trending/vhost-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-2n-icx-xxv710
--------------
-
-64b-vhost-base
-``````````````
-
-2t1c-ndr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-2t1c-vhost-base-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-2t1c-pdr
-::::::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-2t1c-vhost-base-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-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 094bb78390..0000000000
--- a/docs/cpta/ndrpdr_trending/vhost.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-VMs vhost-user
-==============
-
-.. toctree::
-
- vhost-2n-icx-xxv710
- vhost-2n-clx-xxv710
- vhost-2n-clx-cx556a
- vhost-2n-clx-e810cq
- vhost-2n-skx-xxv710
- vhost-3n-skx-xxv710
- vhost-3n-skx-x710
diff --git a/docs/cpta/stats/dpdk_mrr.rst b/docs/cpta/stats/dpdk_mrr.rst
deleted file mode 100644
index ff8f408956..0000000000
--- a/docs/cpta/stats/dpdk_mrr.rst
+++ /dev/null
@@ -1,98 +0,0 @@
-DPDK MRR
-========
-
-2n-icx
-------
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master-2n-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/stats-dpdk-2n-icx-mrr.html"></iframe>
- <p><br></p>
- </center>
-
-3n-icx
-------
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master-3n-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/stats-dpdk-3n-icx-mrr.html"></iframe>
- <p><br></p>
- </center>
-
-2n-clx
-------
-
-.. raw:: html
-
- <center>
- Links to builds:
- <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/stats-dpdk-2n-clx-mrr.html"></iframe>
- <p><br></p>
- </center>
-
-2n-skx
-------
-
-.. raw:: html
-
- <center>
- Links to builds:
- <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/stats-dpdk-2n-skx-mrr.html"></iframe>
- <p><br></p>
- </center>
-
-3n-skx
-------
-
-.. raw:: html
-
- <center>
- Links to builds:
- <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/stats-dpdk-3n-skx-mrr.html"></iframe>
- <p><br></p>
- </center>
-
-2n-zn2
-------
-
-.. raw:: html
-
- <center>
- Links to builds:
- <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/stats-dpdk-2n-zn2-mrr.html"></iframe>
- <p><br></p>
- </center>
-
-3n-tsh
-------
-
-.. raw:: html
-
- <center>
- Links to builds:
- <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/stats-dpdk-3n-tsh-mrr.html"></iframe>
- <p><br></p>
- </center>
-
-2n-tx2
-------
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/stats-dpdk-2n-tx2-mrr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/stats/trex_ndrpdr.rst b/docs/cpta/stats/trex_ndrpdr.rst
deleted file mode 100644
index 76c4be7e26..0000000000
--- a/docs/cpta/stats/trex_ndrpdr.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-TRex NDRPDR
-===========
-
-2n-skx
-------
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://jenkins.fd.io/view/csit/job/csit-trex-perf-ndrpdr-weekly-master-2n-skx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/stats-trex-2n-skx-ndrpdr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/stats/vpp_mrr.rst b/docs/cpta/stats/vpp_mrr.rst
deleted file mode 100644
index bff6957068..0000000000
--- a/docs/cpta/stats/vpp_mrr.rst
+++ /dev/null
@@ -1,158 +0,0 @@
-VPP MRR
-=======
-
-2n-icx
-------
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/stats-2n-icx-mrr.html"></iframe>
- <p><br></p>
- </center>
-
-3n-icx
-------
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/stats-3n-icx-mrr.html"></iframe>
- <p><br></p>
- </center>
-
-3n-alt
-------
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/stats-3n-alt-mrr.html"></iframe>
- <p><br></p>
- </center>
-
-2n-clx
-------
-
-.. raw:: html
-
- <center>
- Links to builds:
- <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/stats-2n-clx-mrr.html"></iframe>
- <p><br></p>
- </center>
-
-2n-skx
-------
-
-.. raw:: html
-
- <center>
- Links to builds:
- <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/stats-2n-skx-mrr.html"></iframe>
- <p><br></p>
- </center>
-
-3n-skx
-------
-
-.. raw:: html
-
- <center>
- Links to builds:
- <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/stats-3n-skx-mrr.html"></iframe>
- <p><br></p>
- </center>
-
-2n-zn2
-------
-
-.. raw:: html
-
- <center>
- Links to builds:
- <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/stats-2n-zn2-mrr.html"></iframe>
- <p><br></p>
- </center>
-
-3n-tsh
-------
-
-.. raw:: html
-
- <center>
- Links to builds:
- <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/stats-3n-tsh-mrr.html"></iframe>
- <p><br></p>
- </center>
-
-2n-tx2
-------
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/stats-2n-tx2-mrr.html"></iframe>
- <p><br></p>
- </center>
-
-2n-dnv
-------
-
-.. raw:: html
-
- <center>
- Links to builds:
- <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/stats-2n-dnv-mrr.html"></iframe>
- <p><br></p>
- </center>
-
-3n-dnv
-------
-
-.. raw:: html
-
- <center>
- Links to builds:
- <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/stats-3n-dnv-mrr.html"></iframe>
- <p><br></p>
- </center>
-
-2n-aws
-------
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-weekly-master-2n-aws" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/stats-2n-aws-mrr.html"></iframe>
- <p><br></p>
- </center>
-
-3n-aws
-------
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-weekly-master-3n-aws" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/stats-3n-aws-mrr.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/stats/vpp_ndrpdr.rst b/docs/cpta/stats/vpp_ndrpdr.rst
deleted file mode 100644
index ca278115a7..0000000000
--- a/docs/cpta/stats/vpp_ndrpdr.rst
+++ /dev/null
@@ -1,62 +0,0 @@
-VPP NDRPDR
-==========
-
-2n-icx
-------
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-2n-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/stats-2n-icx-ndrpdr.html"></iframe>
- <p><br></p>
- </center>
-
-3n-icx
-------
-
-.. raw:: html
-
- <center>
- Links to builds:
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-ndrpdr-weekly-master-3n-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/stats-3n-icx-ndrpdr.html"></iframe>
- <p><br></p>
- </center>
-
-2n-clx
-------
-
-.. raw:: html
-
- <center>
- Links to builds:
- <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/stats-2n-clx-ndrpdr.html"></iframe>
- <p><br></p>
- </center>
-
-2n-skx
-------
-
-.. raw:: html
-
- <center>
- Links to builds:
- <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/stats-2n-skx-ndrpdr.html"></iframe>
- <p><br></p>
- </center>
-
-3n-skx
-------
-
-.. raw:: html
-
- <center>
- Links to builds:
- <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/stats-3n-skx-ndrpdr.html"></iframe>
- <p><br></p>
- </center>
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-e810cq.rst b/docs/cpta/trending/container_memif-2n-clx-e810cq.rst
deleted file mode 100644
index f24fc5cea7..0000000000
--- a/docs/cpta/trending/container_memif-2n-clx-e810cq.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-2n-clx-e810cq
--------------
-
-64b-memif-base
-``````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-e810cq-64b-2t1c-memif.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-e810cq-64b-4t2c-memif.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-e810cq-64b-8t4c-memif.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-icx-xxv710.rst b/docs/cpta/trending/container_memif-2n-icx-xxv710.rst
deleted file mode 100644
index 0b37d0be37..0000000000
--- a/docs/cpta/trending/container_memif-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-2n-icx-xxv710
--------------
-
-64b-memif-base
-``````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-2t1c-memif-base.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-4t2c-memif-base.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-8t4c-memif-base.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 61fe958eb2..0000000000
--- a/docs/cpta/trending/container_memif-3n-tsh-x520.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-3n-tsh-x520
------------
-
-64b-memif-base-ixgbe
-````````````````````
-
-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-x520-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-x520-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-x520-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 9aa208ac98..0000000000
--- a/docs/cpta/trending/container_memif.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-LXC/DRC Container Memif
-=======================
-
-.. toctree::
-
- container_memif-2n-icx-xxv710
- container_memif-2n-clx-xxv710
- container_memif-2n-clx-cx556a
- container_memif-2n-clx-e810cq
- 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
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 8ff66a9efc..0000000000
--- a/docs/cpta/trending/dpdk-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,50 +0,0 @@
-2n-clx-xxv710
--------------
-
-64b-testpmd-l3fwd
-`````````````````
-
-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-icx-xxv710.rst b/docs/cpta/trending/dpdk-2n-icx-xxv710.rst
deleted file mode 100644
index 0db4f0e8b3..0000000000
--- a/docs/cpta/trending/dpdk-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,50 +0,0 @@
-2n-icx-xxv710
--------------
-
-64b-testpmd-l3fwd
-`````````````````
-
-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-tx2-xl710.rst b/docs/cpta/trending/dpdk-2n-tx2-xl710.rst
deleted file mode 100644
index 463c135e01..0000000000
--- a/docs/cpta/trending/dpdk-2n-tx2-xl710.rst
+++ /dev/null
@@ -1,50 +0,0 @@
-2n-tx2-xl710
-------------
-
-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-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-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-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-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-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-64b-4t4c-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-icx-xxv710.rst b/docs/cpta/trending/dpdk-3n-icx-xxv710.rst
deleted file mode 100644
index 21fd2d2dfe..0000000000
--- a/docs/cpta/trending/dpdk-3n-icx-xxv710.rst
+++ /dev/null
@@ -1,50 +0,0 @@
-3n-icx-xxv710
--------------
-
-64b-testpmd-l3fwd
-`````````````````
-
-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-64b-8t4c-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 d2f388d59c..0000000000
--- a/docs/cpta/trending/dpdk.rst
+++ /dev/null
@@ -1,17 +0,0 @@
-DPDK
-====
-
-.. toctree::
-
- dpdk-2n-icx-xxv710
- dpdk-3n-icx-xxv710
- 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-tsh-x520
- dpdk-2n-tx2-xl710
diff --git a/docs/cpta/trending/ip4-2n-aws-nitro50g.rst b/docs/cpta/trending/ip4-2n-aws-nitro50g.rst
deleted file mode 100644
index 3f6cd5553e..0000000000
--- a/docs/cpta/trending/ip4-2n-aws-nitro50g.rst
+++ /dev/null
@@ -1,68 +0,0 @@
-2n-aws-nitro50g
----------------
-
-64b-ip4routing-base-scale-ena
-`````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-ena"></a>
- <a name="64b-2t1c-scale-ena"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/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-aws" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-aws-nitro50g-64b-2t1c-ip4-ena.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-ena"></a>
- <a name="64b-2t1c-scale-ena"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/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-aws" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-aws-nitro50g-64b-4t2c-ip4-ena.html"></iframe>
- <p><br></p>
- </center>
-
-1518b-ip4routing-base-scale-ena
-```````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="1518b-2t1c-base-ena"></a>
- <a name="1518b-2t1c-scale-ena"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/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-aws" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-aws-nitro50g-1518b-2t1c-ip4-ena.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="1518b-2t1c-base-ena"></a>
- <a name="1518b-2t1c-scale-ena"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/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-aws" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-aws-nitro50g-1518b-4t2c-ip4-ena.html"></iframe>
- <p><br></p>
- </center>
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-e810cq.rst b/docs/cpta/trending/ip4-2n-clx-e810cq.rst
deleted file mode 100644
index 0f3f2f0c5b..0000000000
--- a/docs/cpta/trending/ip4-2n-clx-e810cq.rst
+++ /dev/null
@@ -1,192 +0,0 @@
-2n-clx-e810cq
--------------
-
-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-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-e810cq-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-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-e810cq-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-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-e810cq-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-2n-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-e810cq-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-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-e810cq-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-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-e810cq-64b-8t4c-ip4-base-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-e810cq-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-e810cq-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-e810cq-64b-8t4c-ip4-features-avf.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-features-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-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-e810cq-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-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-e810cq-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-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-e810cq-64b-8t4c-ip4-features-dpdk.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 bf8ce507f4..0000000000
--- a/docs/cpta/trending/ip4-2n-clx-x710.rst
+++ /dev/null
@@ -1,63 +0,0 @@
-2n-clx-x710
------------
-
-64b-ip4routing-base-scale-[avf,dpdk,af_xdp]
-```````````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf"></a>
- <a name="64b-2t1c-base-dpdk"></a>
- <a name="64b-2t1c-base-af_xdp"></a>
- <a name="64b-2t1c-scale-avf"></a>
- <a name="64b-2t1c-scale-dpdk"></a>
- <a name="64b-2t1c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-base-af_xdp"></a>
- <a name="64b-4t2c-scale-avf"></a>
- <a name="64b-4t2c-scale-dpdk"></a>
- <a name="64b-4t2c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-base-af_xdp"></a>
- <a name="64b-8t4c-scale-avf"></a>
- <a name="64b-8t4c-scale-dpdk"></a>
- <a name="64b-8t4c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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 ecafdf2fed..0000000000
--- a/docs/cpta/trending/ip4-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,233 +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-base-scale-af_xdp
-````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-af_xdp"></a>
- <a name="64b-2t1c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-scale-af_xdp.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-af_xdp"></a>
- <a name="64b-4t2c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-scale-af_xdp.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-af_xdp"></a>
- <a name="64b-8t4c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-scale-af_xdp.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-icx-xxv710.rst b/docs/cpta/trending/ip4-2n-icx-xxv710.rst
deleted file mode 100644
index d47fd52e7d..0000000000
--- a/docs/cpta/trending/ip4-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,191 +0,0 @@
-2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-2n-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-8t4c-ip4-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-base-scale-af_xdp
-````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-af_xdp"></a>
- <a name="64b-2t1c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-2t1c-ip4-base-scale-af-xdp.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-af_xdp"></a>
- <a name="64b-4t2c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-4t2c-ip4-base-scale-af-xdp.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-af_xdp"></a>
- <a name="64b-8t4c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-8t4c-ip4-base-scale-af-xdp.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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-8t4c-ip4-features-avf.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 85577accb3..0000000000
--- a/docs/cpta/trending/ip4-2n-skx-x710.rst
+++ /dev/null
@@ -1,63 +0,0 @@
-2n-skx-x710
------------
-
-64b-ip4routing-base-scale-[avf,dpdk,af_xdp]
-```````````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf"></a>
- <a name="64b-2t1c-base-dpdk"></a>
- <a name="64b-2t1c-base-af_xdp"></a>
- <a name="64b-2t1c-scale-avf"></a>
- <a name="64b-2t1c-scale-dpdk"></a>
- <a name="64b-2t1c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-base-af_xdp"></a>
- <a name="64b-4t2c-scale-avf"></a>
- <a name="64b-4t2c-scale-dpdk"></a>
- <a name="64b-4t2c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-base-af_xdp"></a>
- <a name="64b-8t4c-scale-avf"></a>
- <a name="64b-8t4c-scale-dpdk"></a>
- <a name="64b-8t4c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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 45923fa0a1..0000000000
--- a/docs/cpta/trending/ip4-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,341 +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>
-
-64b-ip4routing-base-scale-af_xdp
-````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-af_xdp"></a>
- <a name="64b-2t1c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-af_xdp.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-af_xdp"></a>
- <a name="64b-4t2c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-af_xdp.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-af_xdp"></a>
- <a name="64b-8t4c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-af_xdp.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip4-2n-tx2-xl710.rst b/docs/cpta/trending/ip4-2n-tx2-xl710.rst
deleted file mode 100644
index 3ad75299c2..0000000000
--- a/docs/cpta/trending/ip4-2n-tx2-xl710.rst
+++ /dev/null
@@ -1,149 +0,0 @@
-2n-tx2-xl710
-------------
-
-64b-ip4routing-base-scale-dpdk
-``````````````````````````````
-
-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-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-64b-1t1c-ip4routing-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-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-64b-2t2c-ip4routing-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-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-64b-4t4c-ip4routing-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-64b-features-ip4routing-base-scale-dpdk
-```````````````````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-features-dpdk"></a>
- <a name="64b-1t1c-features-iacl50-dpdk"></a>
- <a name="64b-1t1c-features-oacl50-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-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-64b-1t1c-features-ip4routing-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-features-dpdk"></a>
- <a name="64b-2t2c-features-iacl50-dpdk"></a>
- <a name="64b-2t2c-features-oacl50-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-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-64b-2t2c-features-ip4routing-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-features-dpdk"></a>
- <a name="64b-4t4c-features-iacl50-dpdk"></a>
- <a name="64b-4t4c-features-oacl50-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-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-64b-4t4c-features-ip4routing-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-base-scale-af_xdp
-````````````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-af_xdp"></a>
- <a name="64b-1t1c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-64b-1t1c-ip4routing-base-scale-af_xdp.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-base-af_xdp"></a>
- <a name="64b-2t2c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-64b-2t2c-ip4routing-base-scale-af_xdp.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-base-af_xdp"></a>
- <a name="64b-4t4c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-64b-4t4c-ip4routing-base-scale-af_xdp.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 27c63c0939..0000000000
--- a/docs/cpta/trending/ip4-2n-zn2-x710.rst
+++ /dev/null
@@ -1,63 +0,0 @@
-2n-zn2-x710
------------
-
-64b-ip4routing-base-scale-[avf,dpdk,af_xdp]
-```````````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-avf"></a>
- <a name="64b-2t1c-base-dpdk"></a>
- <a name="64b-2t1c-base-af_xdp"></a>
- <a name="64b-2t1c-scale-avf"></a>
- <a name="64b-2t1c-scale-dpdk"></a>
- <a name="64b-2t1c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-base-af_xdp"></a>
- <a name="64b-4t2c-scale-avf"></a>
- <a name="64b-4t2c-scale-dpdk"></a>
- <a name="64b-4t2c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-base-af_xdp"></a>
- <a name="64b-8t4c-scale-avf"></a>
- <a name="64b-8t4c-scale-dpdk"></a>
- <a name="64b-8t4c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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 e73ac50a57..0000000000
--- a/docs/cpta/trending/ip4-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,234 +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>
-
-
-64b-ip4routing-base-scale-af_xdp
-````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-af_xdp"></a>
- <a name="64b-2t1c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-af_xdp.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-af_xdp"></a>
- <a name="64b-4t2c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-af_xdp.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-af_xdp"></a>
- <a name="64b-8t4c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-af_xdp.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip4-3n-alt-xl710.rst b/docs/cpta/trending/ip4-3n-alt-xl710.rst
deleted file mode 100644
index aa368d1907..0000000000
--- a/docs/cpta/trending/ip4-3n-alt-xl710.rst
+++ /dev/null
@@ -1,92 +0,0 @@
-3n-alt-xl710
--------------
-
-64b-ip4routing-base-scale
-`````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-64b-1t1c-ip4-base-scale.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-base-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-64b-2t2c-ip4-base-scale.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-base-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-64b-4t4c-ip4-base-scale.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ip4routing-features
-```````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-feature"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-64b-1t1c-ip4-feature.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-feature"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-64b-2t2c-ip4-feature.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-feature"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-64b-4t4c-ip4-feature.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip4-3n-aws-nitro50g.rst b/docs/cpta/trending/ip4-3n-aws-nitro50g.rst
deleted file mode 100644
index cca2b3a0ee..0000000000
--- a/docs/cpta/trending/ip4-3n-aws-nitro50g.rst
+++ /dev/null
@@ -1,68 +0,0 @@
-3n-aws-nitro50g
----------------
-
-64b-ip4routing-base-scale-ena
-`````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-ena"></a>
- <a name="64b-2t1c-scale-ena"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/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-3n-aws" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-aws-nitro50g-64b-2t1c-ip4-ena.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-ena"></a>
- <a name="64b-2t1c-scale-ena"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/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-3n-aws" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-aws-nitro50g-64b-4t2c-ip4-ena.html"></iframe>
- <p><br></p>
- </center>
-
-1518b-ip4routing-base-scale-ena
-```````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="1518b-2t1c-base-ena"></a>
- <a name="1518b-2t1c-scale-ena"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/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-3n-aws" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-aws-nitro50g-1518b-2t1c-ip4-ena.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="1518b-2t1c-base-ena"></a>
- <a name="1518b-2t1c-scale-ena"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/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-3n-aws" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-aws-nitro50g-1518b-4t2c-ip4-ena.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-icx-xxv710.rst b/docs/cpta/trending/ip4-3n-icx-xxv710.rst
deleted file mode 100644
index 84db8605a3..0000000000
--- a/docs/cpta/trending/ip4-3n-icx-xxv710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-3n-icx-xxv710
--------------
-
-64b-ip4routing-base
-```````````````````
-
-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-64b-2t1c-ip4-base.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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-64b-4t2c-ip4-base.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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-64b-8t4c-ip4-base.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 fe1486f6bf..0000000000
--- a/docs/cpta/trending/ip4.rst
+++ /dev/null
@@ -1,25 +0,0 @@
-IPv4 Routing
-============
-
-.. toctree::
-
- ip4-2n-icx-xxv710
- ip4-3n-icx-xxv710
- ip4-3n-alt-xl710
- ip4-2n-clx-xxv710
- ip4-2n-clx-x710
- ip4-2n-clx-cx556a
- ip4-2n-clx-e810cq
- ip4-2n-skx-xxv710
- ip4-2n-skx-x710
- ip4-3n-skx-xxv710
- ip4-3n-skx-x710
- ip4-3n-tsh-x520
- ip4-2n-tx2-xl710
- ip4-2n-dnv-x553
- ip4-3n-dnv-x553
- ip4-2n-zn2-xxv710
- ip4-2n-zn2-x710
- ip4-2n-zn2-cx556a
- ip4-2n-aws-nitro50g
- ip4-3n-aws-nitro50g
diff --git a/docs/cpta/trending/ip4_tunnels-2n-clx-xxv710.rst b/docs/cpta/trending/ip4_tunnels-2n-clx-xxv710.rst
deleted file mode 100644
index f65a2a8222..0000000000
--- a/docs/cpta/trending/ip4_tunnels-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-2n-clx-xxv710
--------------
-
-64b-ethip4--ethip4udpgeneve-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-ethip4--ethip4udpgeneve-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-ethip4--ethip4udpgeneve-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. 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-8t4c-ethip4--ethip4udpgeneve-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip4_tunnels-2n-icx-xxv710.rst b/docs/cpta/trending/ip4_tunnels-2n-icx-xxv710.rst
deleted file mode 100644
index 3ff5033a1a..0000000000
--- a/docs/cpta/trending/ip4_tunnels-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-2n-icx-xxv710
--------------
-
-64b-ethip4--ethip4udpgeneve-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-2t1c-ethip4--ethip4udpgeneve-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-4t2c-ethip4--ethip4udpgeneve-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-8t4c-ethip4--ethip4udpgeneve-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip4_tunnels-2n-skx-xxv710.rst b/docs/cpta/trending/ip4_tunnels-2n-skx-xxv710.rst
deleted file mode 100644
index 562755e405..0000000000
--- a/docs/cpta/trending/ip4_tunnels-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-2n-skx-xxv710
--------------
-
-64b-ethip4--ethip4udpgeneve-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-ethip4--ethip4udpgeneve-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-ethip4--ethip4udpgeneve-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. 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-8t4c-ethip4--ethip4udpgeneve-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip4_tunnels-2n-zn2-xxv710.rst b/docs/cpta/trending/ip4_tunnels-2n-zn2-xxv710.rst
deleted file mode 100644
index ac93632f15..0000000000
--- a/docs/cpta/trending/ip4_tunnels-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-2n-zn2-xxv710
--------------
-
-64b-ethip4--ethip4udpgeneve-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-ethip4--ethip4udpgeneve-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-ethip4--ethip4udpgeneve-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. 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-8t4c-ethip4--ethip4udpgeneve-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip4_tunnels-3n-alt-xl710.rst b/docs/cpta/trending/ip4_tunnels-3n-alt-xl710.rst
deleted file mode 100644
index e04690ea4e..0000000000
--- a/docs/cpta/trending/ip4_tunnels-3n-alt-xl710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-3n-alt-xl710
--------------
-
-64b-ip4tunnel-base
-``````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-64b-1t1c-ip4tunnel-base.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-base"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-64b-2t2c-ip4tunnel-base.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-base"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-64b-4t4c-ip4tunnel-base.html"></iframe>
- <p><br></p>
- </center>
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-icx-e810xxv.rst b/docs/cpta/trending/ip4_tunnels-3n-icx-e810xxv.rst
deleted file mode 100644
index 3f9fe53718..0000000000
--- a/docs/cpta/trending/ip4_tunnels-3n-icx-e810xxv.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-3n-icx-e810xxv
---------------
-
-64b-ip4tunnel-gtpu
-``````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-gtpu"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-e810xxv-64b-2t1c-ip4tunnel-gtpu.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-gtpu"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-e810xxv-64b-4t2c-ip4tunnel-gtpu.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-gtpu"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-e810xxv-64b-8t4c-ip4tunnel-gtpu.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip4_tunnels-3n-icx-xxv710.rst b/docs/cpta/trending/ip4_tunnels-3n-icx-xxv710.rst
deleted file mode 100644
index 7b3611daa7..0000000000
--- a/docs/cpta/trending/ip4_tunnels-3n-icx-xxv710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-3n-icx-xxv710
--------------
-
-64b-ip4tunnel-base
-``````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-64b-2t1c-ip4tunnel-base.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-64b-4t2c-ip4tunnel-base.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-64b-8t4c-ip4tunnel-base.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 b4a26d3bb4..0000000000
--- a/docs/cpta/trending/ip4_tunnels.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-IPv4 Tunnels
-============
-
-.. toctree::
-
- ip4_tunnels-2n-icx-xxv710
- ip4_tunnels-3n-icx-xxv710
- ip4_tunnels-3n-icx-e810xxv
- ip4_tunnels-3n-alt-xl710
- ip4_tunnels-2n-skx-xxv710
- ip4_tunnels-2n-clx-xxv710
- ip4_tunnels-2n-zn2-xxv710
- ip4_tunnels-3n-skx-xxv710
- ip4_tunnels-3n-tsh-x520
- ip4_tunnels-3n-dnv-x553
diff --git a/docs/cpta/trending/ip6-2n-aws-nitro50g.rst b/docs/cpta/trending/ip6-2n-aws-nitro50g.rst
deleted file mode 100644
index 18f46d1d76..0000000000
--- a/docs/cpta/trending/ip6-2n-aws-nitro50g.rst
+++ /dev/null
@@ -1,68 +0,0 @@
-2n-aws-nitro50g
----------------
-
-78b-ip6routing-base-scale-ena
-`````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-ena"></a>
- <a name="78b-2t1c-scale-ena"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/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-aws" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-aws-nitro50g-78b-2t1c-ip6-ena.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-ena"></a>
- <a name="78b-2t1c-scale-ena"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/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-aws" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-aws-nitro50g-78b-4t2c-ip6-ena.html"></iframe>
- <p><br></p>
- </center>
-
-1518b-ip6routing-base-scale-ena
-```````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="1518b-2t1c-base-ena"></a>
- <a name="1518b-2t1c-scale-ena"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/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-aws" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-aws-nitro50g-1518b-2t1c-ip6-ena.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="1518b-2t1c-base-ena"></a>
- <a name="1518b-2t1c-scale-ena"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/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-aws" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-aws-nitro50g-1518b-4t2c-ip6-ena.html"></iframe>
- <p><br></p>
- </center>
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-e810cq.rst b/docs/cpta/trending/ip6-2n-clx-e810cq.rst
deleted file mode 100644
index 9a5faa6a1a..0000000000
--- a/docs/cpta/trending/ip6-2n-clx-e810cq.rst
+++ /dev/null
@@ -1,56 +0,0 @@
-2n-clx-e810cq
--------------
-
-78b-ip6routing-base-scale
-`````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-avf"></a>
- <a name="78b-2t1c-scale-avf"></a>
- <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-e810cq-78b-2t1c-ip6-base-scale.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="78b-4t2c-base-avf"></a>
- <a name="78b-4t2c-scale-avf"></a>
- <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-e810cq-78b-4t2c-ip6-base-scale.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="78b-8t4c-base-avf"></a>
- <a name="78b-8t4c-scale-avf"></a>
- <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-e810cq-78b-8t4c-ip6-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 92b519bfc2..0000000000
--- a/docs/cpta/trending/ip6-2n-clx-x710.rst
+++ /dev/null
@@ -1,62 +0,0 @@
-2n-clx-x710
------------
-
-78b-ip6routing-base-scale-[avf,dpdk,af_xdp]
-```````````````````````````````````````````
-
-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>
- <a name="78b-2t1c-base-af_xdp"></a>
- <a name="78b-2t1c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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>
- <a name="78b-4t2c-base-af_xdp"></a>
- <a name="78b-4t2c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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>
- <a name="78b-8t4c-base-af_xdp"></a>
- <a name="78b-8t4c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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 67ebcf1a3e..0000000000
--- a/docs/cpta/trending/ip6-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,243 +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-rnd-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-rnd-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-rnd-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-rnd-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>
-
-78b-ip6routing-rnd-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-rnd-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-rnd-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-rnd-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-
-78b-ip6routing-base-scale-af_xdp
-````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-af_xdp"></a>
- <a name="78b-2t1c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-af_xdp.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="78b-4t2c-base-af_xdp"></a>
- <a name="78b-4t2c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-af_xdp.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="78b-8t4c-base-af_xdp"></a>
- <a name="78b-8t4c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-af_xdp.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-icx-xxv710.rst b/docs/cpta/trending/ip6-2n-icx-xxv710.rst
deleted file mode 100644
index ddfcee4c01..0000000000
--- a/docs/cpta/trending/ip6-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,146 +0,0 @@
-2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-78b-8t4c-ip6-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-78b-ip6routing-base-scale-af_xdp
-````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-af_xdp"></a>
- <a name="78b-2t1c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-78b-2t1c-ip6-base-scale-af-xdp.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="78b-4t2c-base-af_xdp"></a>
- <a name="78b-4t2c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-78b-4t2c-ip6-base-scale-af-xdp.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="78b-8t4c-base-af_xdp"></a>
- <a name="78b-8t4c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-78b-8t4c-ip6-base-scale-af-xdp.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 d53bdd313a..0000000000
--- a/docs/cpta/trending/ip6-2n-skx-x710.rst
+++ /dev/null
@@ -1,62 +0,0 @@
-2n-skx-x710
------------
-
-78b-ip6routing-base-scale-[avf,dpdk,af_xdp]
-```````````````````````````````````````````
-
-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>
- <a name="78b-2t1c-base-af_xdp"></a>
- <a name="78b-2t1c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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>
- <a name="78b-4t2c-base-af_xdp"></a>
- <a name="78b-4t2c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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>
- <a name="78b-8t4c-base-af_xdp"></a>
- <a name="78b-8t4c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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 a3af1b2f6a..0000000000
--- a/docs/cpta/trending/ip6-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,194 +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-rnd-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-rnd-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-rnd-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-rnd-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>
-
-78b-ip6routing-rnd-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-rnd-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-rnd-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-rnd-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip6-2n-tx2-xl710.rst b/docs/cpta/trending/ip6-2n-tx2-xl710.rst
deleted file mode 100644
index 7d657aeace..0000000000
--- a/docs/cpta/trending/ip6-2n-tx2-xl710.rst
+++ /dev/null
@@ -1,98 +0,0 @@
-2n-tx2-xl710
-------------
-
-78b-ip6routing-base-scale-dpdk
-``````````````````````````````
-
-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-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-78b-1t1c-ip6routing-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-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-78b-2t2c-ip6routing-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-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-78b-4t4c-ip6routing-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-78b-ip6routing-base-scale-af_xdp
-````````````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="78b-1t1c-base-af_xdp"></a>
- <a name="78b-1t1c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-78b-1t1c-ip6routing-base-scale-af_xdp.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="78b-2t2c-base-af_xdp"></a>
- <a name="78b-2t2c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-78b-2t2c-ip6routing-base-scale-af_xdp.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="78b-4t4c-base-af_xdp"></a>
- <a name="78b-4t4c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-78b-4t4c-ip6routing-base-scale-af_xdp.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 260752707c..0000000000
--- a/docs/cpta/trending/ip6-2n-zn2-x710.rst
+++ /dev/null
@@ -1,62 +0,0 @@
-2n-zn2-x710
------------
-
-78b-ip6routing-base-scale-[avf,dpdk,af_xdp]
-```````````````````````````````````````````
-
-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>
- <a name="78b-2t1c-base-af_xdp"></a>
- <a name="78b-2t1c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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>
- <a name="78b-4t2c-base-af_xdp"></a>
- <a name="78b-4t2c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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>
- <a name="78b-8t4c-base-af_xdp"></a>
- <a name="78b-8t4c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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 36132975cf..0000000000
--- a/docs/cpta/trending/ip6-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,242 +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-rnd-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-rnd-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-rnd-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-rnd-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>
-
-78b-ip6routing-rnd-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-rnd-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-rnd-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-rnd-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-78b-ip6routing-base-scale-af_xdp
-````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="78b-2t1c-base-af_xdp"></a>
- <a name="78b-2t1c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-af_xdp.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="78b-4t2c-base-af_xdp"></a>
- <a name="78b-4t2c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-af_xdp.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="78b-8t4c-base-af_xdp"></a>
- <a name="78b-8t4c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-af_xdp.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ip6-3n-alt-xl710.rst b/docs/cpta/trending/ip6-3n-alt-xl710.rst
deleted file mode 100644
index ff405df3c1..0000000000
--- a/docs/cpta/trending/ip6-3n-alt-xl710.rst
+++ /dev/null
@@ -1,50 +0,0 @@
-3n-alt-xl710
--------------
-
-78b-ip6routing-base-scale
-`````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="78b-1t1c-base"></a>
- <a name="78b-1t1c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-78b-1t1c-ip6-base-scale.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="78b-2t2c-base"></a>
- <a name="78b-2t2c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-78b-2t2c-ip6-base-scale.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="78b-4t4c-base"></a>
- <a name="78b-4t4c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-78b-4t4c-ip6-base-scale.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-icx-xxv710.rst b/docs/cpta/trending/ip6-3n-icx-xxv710.rst
deleted file mode 100644
index de0f5906cc..0000000000
--- a/docs/cpta/trending/ip6-3n-icx-xxv710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-3n-icx-xxv710
--------------
-
-78b-ip6routing-base
-```````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="78b-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-78b-2t1c-ip6-base.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="78b-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-78b-4t2c-ip6-base.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="78b-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-78b-8t4c-ip6-base.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 e88b94ccd1..0000000000
--- a/docs/cpta/trending/ip6.rst
+++ /dev/null
@@ -1,24 +0,0 @@
-IPv6 Routing
-============
-
-.. toctree::
-
- ip6-2n-icx-xxv710
- ip6-3n-icx-xxv710
- ip6-3n-alt-xl710
- ip6-2n-clx-xxv710
- ip6-2n-clx-x710
- ip6-2n-clx-cx556a
- ip6-2n-clx-e810cq
- ip6-2n-skx-xxv710
- ip6-2n-skx-x710
- ip6-3n-skx-xxv710
- ip6-3n-skx-x710
- ip6-3n-tsh-x520
- ip6-2n-tx2-xl710
- ip6-2n-dnv-x553
- ip6-3n-dnv-x553
- ip6-2n-zn2-xxv710
- ip6-2n-zn2-x710
- ip6-2n-zn2-cx556a
- ip6-2n-aws-nitro50g
diff --git a/docs/cpta/trending/ipsec-2n-tx2-xl710.rst b/docs/cpta/trending/ipsec-2n-tx2-xl710.rst
deleted file mode 100644
index 430278d69e..0000000000
--- a/docs/cpta/trending/ipsec-2n-tx2-xl710.rst
+++ /dev/null
@@ -1,292 +0,0 @@
-2n-tx2-xl710
-------------
-
-
-64b-ipsec-spe-ip4routing-base-scale
-```````````````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-spe"></a>
- <a name="64b-1t1c-scale-spe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-64b-1t1c-ipsec-spe-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-base-spe"></a>
- <a name="64b-2t2c-scale-spe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-64b-2t2c-ipsec-spe-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-base-spe"></a>
- <a name="64b-4t4c-scale-spe"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-64b-4t4c-ipsec-spe-base-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-
-64b-ipsec-ip4routing-base-scale-sw
-``````````````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-sw"></a>
- <a name="64b-1t1c-scale-sw"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-64b-1t1c-ipsec-base-scale-sw-policy-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-base-sw"></a>
- <a name="64b-2t2c-scale-sw"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-64b-2t2c-ipsec-base-scale-sw-policy-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-base-sw"></a>
- <a name="64b-4t4c-scale-sw"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-64b-4t4c-ipsec-base-scale-sw-policy-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-1518b-ipsec-ip4routing-base-scale-sw-cbc
-````````````````````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="1518b-1t1c-base-sw-cbc"></a>
- <a name="1518b-1t1c-scale-sw-cbc"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-1518b-1t1c-ipsec-base-scale-sw-cbc-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="1518b-2t2c-base-sw-cbc"></a>
- <a name="1518b-2t2c-scale-sw-cbc"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-1518b-2t2c-ipsec-base-scale-sw-cbc-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="1518b-4t4c-base-sw-cbc"></a>
- <a name="1518b-4t4c-scale-sw-cbc"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-1518b-4t4c-ipsec-base-scale-sw-cbc-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-imix-ipsec-ip4routing-base-scale-sw-cbc
-```````````````````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="imix-1t1c-base-sw-cbc"></a>
- <a name="imix-1t1c-scale-sw-cbc"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-imix-1t1c-ipsec-base-scale-sw-cbc-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="imix-2t2c-base-sw-cbc"></a>
- <a name="imix-2t2c-scale-sw-cbc"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-imix-2t2c-ipsec-base-scale-sw-cbc-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="imix-4t4c-base-sw-cbc"></a>
- <a name="imix-4t4c-scale-sw-cbc"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-imix-4t4c-ipsec-base-scale-sw-cbc-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-1518b-ipsec-ip4routing-base-scale-sw-gcm
-````````````````````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="1518b-1t1c-base-sw-gcm"></a>
- <a name="1518b-1t1c-scale-sw-gcm"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-1518b-1t1c-ipsec-base-scale-sw-gcm-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="1518b-2t2c-base-sw-gcm"></a>
- <a name="1518b-2t2c-scale-sw-gcm"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-1518b-2t2c-ipsec-base-scale-sw-gcm-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="1518b-4t4c-base-sw-gcm"></a>
- <a name="1518b-4t4c-scale-sw-gcm"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-1518b-4t4c-ipsec-base-scale-sw-gcm-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-imix-ipsec-ip4routing-base-scale-sw-gcm
-```````````````````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="imix-1t1c-base-sw-gcm"></a>
- <a name="imix-1t1c-scale-sw-gcm"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-imix-1t1c-ipsec-base-scale-sw-gcm-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="imix-2t2c-base-sw-gcm"></a>
- <a name="imix-2t2c-scale-sw-gcm"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-imix-2t2c-ipsec-base-scale-sw-gcm-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="imix-4t4c-base-sw-gcm"></a>
- <a name="imix-4t4c-scale-sw-gcm"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-imix-4t4c-ipsec-base-scale-sw-gcm-dpdk.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ipsec-3n-alt-xl710.rst b/docs/cpta/trending/ipsec-3n-alt-xl710.rst
deleted file mode 100644
index 40db62e7fc..0000000000
--- a/docs/cpta/trending/ipsec-3n-alt-xl710.rst
+++ /dev/null
@@ -1,272 +0,0 @@
-3n-alt-xl710
--------------
-
-1518b-ipsec-aes128cbc-ip4routing-scale-sw
-`````````````````````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="1518b-1t1c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-1518b-1t1c-ipsec-aes128cbc-ip4routing-scale-sw.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="1518b-2t2c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-1518b-2t2c-ipsec-aes128cbc-ip4routing-scale-sw.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="1518b-4t4c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-1518b-4t4c-ipsec-aes128cbc-ip4routing-scale-sw.html"></iframe>
- <p><br></p>
- </center>
-
-imix-ipsec-aes128cbc-ip4routing-scale-sw
-````````````````````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="imix-1t1c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-imix-1t1c-ipsec-aes128cbc-ip4routing-scale-sw.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="imix-2t2c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-imix-2t2c-ipsec-aes128cbc-ip4routing-scale-sw.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="imix-4t4c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-imix-4t4c-ipsec-aes128cbc-ip4routing-scale-sw.html"></iframe>
- <p><br></p>
- </center>
-
-1518b-ipsec-aes256gcm-ip4routing-scale-sw
-`````````````````````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="1518b-1t1c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-1518b-1t1c-ipsec-aes256gcm-ip4routing-scale-sw.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="1518b-2t2c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-1518b-2t2c-ipsec-aes256gcm-ip4routing-scale-sw.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="1518b-4t4c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-1518b-4t4c-ipsec-aes256gcm-ip4routing-scale-sw.html"></iframe>
- <p><br></p>
- </center>
-
-imix-ipsec-aes256gcm-ip4routing-scale-sw
-````````````````````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="imix-1t1c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-imix-1t1c-ipsec-aes256gcm-ip4routing-scale-sw.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="imix-2t2c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-imix-2t2c-ipsec-aes256gcm-ip4routing-scale-sw.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="imix-4t4c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-imix-4t4c-ipsec-aes256gcm-ip4routing-scale-sw.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ipsec-ip4base-policy-outbound-nocrypto
-``````````````````````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-64b-1t1c-ipsec-ip4base-policy-outbound-nocrypto.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-base"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-64b-2t2c-ipsec-ip4base-policy-outbound-nocrypto.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-base"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-64b-4t4c-ipsec-ip4base-policy-outbound-nocrypto.html"></iframe>
- <p><br></p>
- </center>
-
-64b-ipsec-ip4base-policy-aes256gcm-sw
-`````````````````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-64b-1t1c-ipsec-ip4base-policy-aes256gcm-sw.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-base"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-64b-2t2c-ipsec-ip4base-policy-aes256gcm-sw.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-base"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-64b-4t4c-ipsec-ip4base-policy-aes256gcm-sw.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/ipsec-3n-aws-nitro50g.rst b/docs/cpta/trending/ipsec-3n-aws-nitro50g.rst
deleted file mode 100644
index 264896be58..0000000000
--- a/docs/cpta/trending/ipsec-3n-aws-nitro50g.rst
+++ /dev/null
@@ -1,99 +0,0 @@
-3n-aws-nitro50g
----------------
-
-
-1518b-ipsec-ip4routing-base-scale
-`````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="1518b-2t1c-base"></a>
- <a name="1518b-2t1c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-aws" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-aws-nitro50g-1518b-2t1c-ipsec-ip4routing-scale-ena.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="1518b-4t2c-base"></a>
- <a name="1518b-4t2c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-aws" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-aws-nitro50g-1518b-4t2c-ipsec-ip4routing-scale-ena.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="1518b-8t4c-base"></a>
- <a name="1518b-8t4c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-aws" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-aws-nitro50g-1518b-8t4c-ipsec-ip4routing-scale-ena.html"></iframe>
- <p><br></p>
- </center>
-
-imix-ipsec-ip4routing-base-scale
-````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="imix-2t1c-base"></a>
- <a name="imix-2t1c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-aws" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-aws-nitro50g-imix-2t1c-ipsec-ip4routing-scale-ena.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="imix-4t2c-base"></a>
- <a name="imix-4t2c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-aws" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-aws-nitro50g-imix-4t2c-ipsec-ip4routing-scale-ena.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="imix-8t4c-base"></a>
- <a name="imix-8t4c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-aws" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-aws-nitro50g-imix-8t4c-ipsec-ip4routing-scale-ena.html"></iframe>
- <p><br></p>
- </center>
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-icx-xxv710.rst b/docs/cpta/trending/ipsec-3n-icx-xxv710.rst
deleted file mode 100644
index c35b8af020..0000000000
--- a/docs/cpta/trending/ipsec-3n-icx-xxv710.rst
+++ /dev/null
@@ -1,485 +0,0 @@
-3n-icx-xxv710
--------------
-
-1518b-ipsec-aes128cbc-ip4routing-base-scale-sw-avf
-``````````````````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="1518b-2t1c-base"></a>
- <a name="1518b-2t1c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-1518b-2t1c-ipsec-aes128cbc-ip4routing-base-scale-sw-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="1518b-4t2c-base"></a>
- <a name="1518b-4t2c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-1518b-4t2c-ipsec-aes128cbc-ip4routing-base-scale-sw-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="1518b-8t4c-base"></a>
- <a name="1518b-8t4c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-1518b-8t4c-ipsec-aes128cbc-ip4routing-base-scale-sw-avf.html"></iframe>
- <p><br></p>
- </center>
-
-1518b-ipsec-aes256gcm-ip4routing-base-scale-sw-avf
-``````````````````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="1518b-2t1c-base"></a>
- <a name="1518b-2t1c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-1518b-2t1c-ipsec-aes256gcm-ip4routing-base-scale-sw-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="1518b-4t2c-base"></a>
- <a name="1518b-4t2c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-1518b-4t2c-ipsec-aes256gcm-ip4routing-base-scale-sw-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="1518b-8t4c-base"></a>
- <a name="1518b-8t4c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-1518b-8t4c-ipsec-aes256gcm-ip4routing-base-scale-sw-avf.html"></iframe>
- <p><br></p>
- </center>
-
-1518b-ipsec-scheduler-ip4routing-base-scale-sw-avf
-``````````````````````````````````````````````````
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="1518b-2t2c-base"></a>
- <a name="1518b-2t2c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-1518b-2t2c-ipsec-scheduler-ip4routing-base-scale-sw-avf.html"></iframe>
- <p><br></p>
- </center>
-
-2t3c
-::::
-
-.. raw:: html
-
- <a name="1518b-2t3c-base"></a>
- <a name="1518b-2t3c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-1518b-2t3c-ipsec-scheduler-ip4routing-base-scale-sw-avf.html"></iframe>
- <p><br></p>
- </center>
-
-2t4c
-::::
-
-.. raw:: html
-
- <a name="1518b-2t4c-base"></a>
- <a name="1518b-2t4c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-1518b-2t4c-ipsec-scheduler-ip4routing-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"></a>
- <a name="1518b-2t1c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-1518b-2t1c-ipsec-ip4routing-base-scale-sw-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="1518b-4t2c-base"></a>
- <a name="1518b-4t2c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-1518b-4t2c-ipsec-ip4routing-base-scale-sw-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="1518b-8t4c-base"></a>
- <a name="1518b-8t4c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-1518b-8t4c-ipsec-ip4routing-base-scale-sw-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-1518b-ipsec-scheduler-ip4routing-base-scale-sw-dpdk
-```````````````````````````````````````````````````
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="1518b-2t2c-base"></a>
- <a name="1518b-2t2c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-1518b-2t2c-ipsec-scheduler-ip4routing-base-scale-sw-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-2t3c
-::::
-
-.. raw:: html
-
- <a name="1518b-2t3c-base"></a>
- <a name="1518b-2t3c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-1518b-2t3c-ipsec-scheduler-ip4routing-base-scale-sw-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-2t4c
-::::
-
-.. raw:: html
-
- <a name="1518b-2t4c-base"></a>
- <a name="1518b-2t4c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-1518b-2t4c-ipsec-scheduler-ip4routing-base-scale-sw-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-
-
-
-imix-ipsec-aes128cbc-ip4routing-base-scale-sw-avf
-``````````````````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="imix-2t1c-base"></a>
- <a name="imix-2t1c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-imix-2t1c-ipsec-aes128cbc-ip4routing-base-scale-sw-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="imix-4t2c-base"></a>
- <a name="imix-4t2c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-imix-4t2c-ipsec-aes128cbc-ip4routing-base-scale-sw-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="imix-8t4c-base"></a>
- <a name="imix-8t4c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-imix-8t4c-ipsec-aes128cbc-ip4routing-base-scale-sw-avf.html"></iframe>
- <p><br></p>
- </center>
-
-imix-ipsec-aes256gcm-ip4routing-base-scale-sw-avf
-``````````````````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="imix-2t1c-base"></a>
- <a name="imix-2t1c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-imix-2t1c-ipsec-aes256gcm-ip4routing-base-scale-sw-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="imix-4t2c-base"></a>
- <a name="imix-4t2c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-imix-4t2c-ipsec-aes256gcm-ip4routing-base-scale-sw-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="imix-8t4c-base"></a>
- <a name="imix-8t4c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-imix-8t4c-ipsec-aes256gcm-ip4routing-base-scale-sw-avf.html"></iframe>
- <p><br></p>
- </center>
-
-imix-ipsec-scheduler-ip4routing-base-scale-sw-avf
-``````````````````````````````````````````````````
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="imix-2t2c-base"></a>
- <a name="imix-2t2c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-imix-2t2c-ipsec-scheduler-ip4routing-base-scale-sw-avf.html"></iframe>
- <p><br></p>
- </center>
-
-2t3c
-::::
-
-.. raw:: html
-
- <a name="imix-2t3c-base"></a>
- <a name="imix-2t3c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-imix-2t3c-ipsec-scheduler-ip4routing-base-scale-sw-avf.html"></iframe>
- <p><br></p>
- </center>
-
-2t4c
-::::
-
-.. raw:: html
-
- <a name="imix-2t4c-base"></a>
- <a name="imix-2t4c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-imix-2t4c-ipsec-scheduler-ip4routing-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"></a>
- <a name="imix-2t1c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-sw-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="imix-4t2c-base"></a>
- <a name="imix-4t2c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-imix-4t2c-ipsec-ip4routing-base-scale-sw-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="imix-8t4c-base"></a>
- <a name="imix-8t4c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-imix-8t4c-ipsec-ip4routing-base-scale-sw-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-imix-ipsec-scheduler-ip4routing-base-scale-sw-dpdk
-```````````````````````````````````````````````````
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="imix-2t2c-base"></a>
- <a name="imix-2t2c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-imix-2t2c-ipsec-scheduler-ip4routing-base-scale-sw-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-2t3c
-::::
-
-.. raw:: html
-
- <a name="imix-2t3c-base"></a>
- <a name="imix-2t3c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-imix-2t3c-ipsec-scheduler-ip4routing-base-scale-sw-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-2t4c
-::::
-
-.. raw:: html
-
- <a name="imix-2t4c-base"></a>
- <a name="imix-2t4c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-imix-2t4c-ipsec-scheduler-ip4routing-base-scale-sw-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 867969611e..0000000000
--- a/docs/cpta/trending/ipsec.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-IPSec IPv4 Routing
-==================
-
-.. toctree::
-
- ipsec-3n-icx-xxv710
- ipsec-3n-alt-xl710
- ipsec-3n-skx-xxv710
- ipsec-3n-tsh-x520
- ipsec-2n-tx2-xl710
- ipsec-3n-dnv-x553
- ipsec-3n-aws-nitro50g
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-e810cq.rst b/docs/cpta/trending/l2-2n-clx-e810cq.rst
deleted file mode 100644
index a43d6c2435..0000000000
--- a/docs/cpta/trending/l2-2n-clx-e810cq.rst
+++ /dev/null
@@ -1,98 +0,0 @@
-2n-clx-e810cq
--------------
-
-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-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-e810cq-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-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-e810cq-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-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-e810cq-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-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-e810cq-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-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-e810cq-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-clx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-clx-e810cq-64b-8t4c-l2-base-scale-dpdk.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 dc2700e961..0000000000
--- a/docs/cpta/trending/l2-2n-clx-x710.rst
+++ /dev/null
@@ -1,62 +0,0 @@
-2n-clx-x710
------------
-
-64b-l2switching-base-scale-[avf,dpdk,af_xdp]
-````````````````````````````````````````````
-
-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>
- <a name="64b-2t1c-base-af_xdp"></a>
- <a name="64b-2t1c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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>
- <a name="64b-2t1c-base-af_xdp"></a>
- <a name="64b-2t1c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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>
- <a name="64b-2t1c-base-af_xdp"></a>
- <a name="64b-2t1c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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 ad2a973211..0000000000
--- a/docs/cpta/trending/l2-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,230 +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>
-
-64b-l2switching-base-scale-af_xdp
-`````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-af_xdp"></a>
- <a name="64b-2t1c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-af_xdp.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-af_xdp"></a>
- <a name="64b-4t2c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-af_xdp.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-af_xdp"></a>
- <a name="64b-8t4c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-af_xdp.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-icx-xxv710.rst b/docs/cpta/trending/l2-2n-icx-xxv710.rst
deleted file mode 100644
index 12db5b0887..0000000000
--- a/docs/cpta/trending/l2-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,92 +0,0 @@
-2n-icx-xxv710
--------------
-
-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-8t4c-l2-base-scale-dpdk.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 872492755d..0000000000
--- a/docs/cpta/trending/l2-2n-skx-x710.rst
+++ /dev/null
@@ -1,146 +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>
-
-64b-l2switching-base-scale-af_xdp
-`````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-af_xdp"></a>
- <a name="64b-2t1c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-af_xdp.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-af_xdp"></a>
- <a name="64b-4t2c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-af_xdp.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-af_xdp"></a>
- <a name="64b-8t4c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-af_xdp.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 21db7cdc82..0000000000
--- a/docs/cpta/trending/l2-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,186 +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>
-
-
-64b-l2switching-base-scale-af_xdp
-`````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-af_xdp"></a>
- <a name="64b-2t1c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-af_xdp.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-af_xdp"></a>
- <a name="64b-4t2c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-af_xdp.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-af_xdp"></a>
- <a name="64b-8t4c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-af_xdp.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/l2-2n-tx2-xl710.rst b/docs/cpta/trending/l2-2n-tx2-xl710.rst
deleted file mode 100644
index 7b9d422684..0000000000
--- a/docs/cpta/trending/l2-2n-tx2-xl710.rst
+++ /dev/null
@@ -1,191 +0,0 @@
-2n-tx2-xl710
-------------
-
-64b-l2switching-base-dpdk
-`````````````````````````
-
-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-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-64b-1t1c-l2switching-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-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-64b-2t2c-l2switching-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-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-64b-4t4c-l2switching-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-scale-dpdk
-``````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <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-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-64b-1t1c-l2switching-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <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-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-64b-2t2c-l2switching-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <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-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-64b-4t4c-l2switching-scale-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-64b-features-l2switching-base-dpdk
-``````````````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-features-macip-iacl50-dpdk"></a>
- <a name="64b-1t1c-features-iacl50-dpdk"></a>
- <a name="64b-1t1c-features-oacl50-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-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-64b-1t1c-features-l2switching-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-features-macip-iacl50-dpdk"></a>
- <a name="64b-2t2c-features-iacl50-dpdk"></a>
- <a name="64b-2t2c-features-oacl50-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-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-64b-2t2c-features-l2switching-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-features-macip-iacl50-dpdk"></a>
- <a name="64b-4t4c-features-iacl50-dpdk"></a>
- <a name="64b-4t4c-features-oacl50-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-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-64b-4t4c-features-l2switching-base-dpdk.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-base-scale-af_xdp
-`````````````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base-af_xdp"></a>
- <a name="64b-1t1c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-64b-1t1c-l2switching-scale-af_xdp.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-base-af_xdp"></a>
- <a name="64b-2t2c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-64b-2t2c-l2switching-scale-af_xdp.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-base-af_xdp"></a>
- <a name="64b-4t4c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-tx2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-tx2-xl710-64b-4t4c-l2switching-scale-af_xdp.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 2dc1fa3dc6..0000000000
--- a/docs/cpta/trending/l2-2n-zn2-x710.rst
+++ /dev/null
@@ -1,62 +0,0 @@
-2n-zn2-x710
------------
-
-64b-l2switching-base-scale-[avf,dpdk,af_xdp]
-````````````````````````````````````````````
-
-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>
- <a name="64b-2t1c-base-af_xdp"></a>
- <a name="64b-2t1c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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>
- <a name="64b-4t2c-base-af_xdp"></a>
- <a name="64b-4t2c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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>
- <a name="64b-8t4c-base-af_xdp"></a>
- <a name="64b-8t4c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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 3f438d80b8..0000000000
--- a/docs/cpta/trending/l2-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,230 +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>
-
-64b-l2switching-base-scale-af_xdp
-`````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base-af_xdp"></a>
- <a name="64b-2t1c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-af_xdp.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base-af_xdp"></a>
- <a name="64b-4t2c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-af_xdp.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base-af_xdp"></a>
- <a name="64b-8t4c-scale-af_xdp"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?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-af_xdp.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/l2-3n-alt-xl710.rst b/docs/cpta/trending/l2-3n-alt-xl710.rst
deleted file mode 100644
index 6dbb51980e..0000000000
--- a/docs/cpta/trending/l2-3n-alt-xl710.rst
+++ /dev/null
@@ -1,95 +0,0 @@
-3n-alt-xl710
--------------
-
-64b-l2switching-base-scale
-``````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-base"></a>
- <a name="64b-1t1c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-64b-1t1c-l2-base-scale.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-base"></a>
- <a name="64b-2t2c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-64b-2t2c-l2-base-scale.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-base"></a>
- <a name="64b-4t4c-scale"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-64b-4t4c-l2-base-scale.html"></iframe>
- <p><br></p>
- </center>
-
-64b-l2switching-features
-````````````````````````
-
-1t1c
-::::
-
-.. raw:: html
-
- <a name="64b-1t1c-feature"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-64b-1t1c-l2-feature.html"></iframe>
- <p><br></p>
- </center>
-
-2t2c
-::::
-
-.. raw:: html
-
- <a name="64b-2t2c-feature"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-64b-2t2c-l2-feature.html"></iframe>
- <p><br></p>
- </center>
-
-4t4c
-::::
-
-.. raw:: html
-
- <a name="64b-4t4c-feature"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-64b-4t4c-l2-feature.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-icx-xxv710.rst b/docs/cpta/trending/l2-3n-icx-xxv710.rst
deleted file mode 100644
index c2a5747ae8..0000000000
--- a/docs/cpta/trending/l2-3n-icx-xxv710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-3n-icx-xxv710
--------------
-
-64b-l2switching-base
-````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-64b-2t1c-l2-base.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-64b-4t2c-l2-base.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-64b-8t4c-l2-base.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 106c5de25c..0000000000
--- a/docs/cpta/trending/l2.rst
+++ /dev/null
@@ -1,23 +0,0 @@
-L2 Ethernet Switching
-=====================
-
-.. toctree::
-
- l2-2n-icx-xxv710
- l2-3n-icx-xxv710
- l2-3n-alt-xl710
- l2-2n-clx-xxv710
- l2-2n-clx-x710
- l2-2n-clx-cx556a
- l2-2n-clx-e810cq
- l2-2n-skx-xxv710
- l2-2n-skx-x710
- l2-3n-skx-xxv710
- l2-3n-skx-x710
- l2-3n-tsh-x520
- l2-2n-tx2-xl710
- l2-2n-dnv-x553
- l2-3n-dnv-x553
- l2-2n-zn2-xxv710
- l2-2n-zn2-x710
- l2-2n-zn2-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 f080e42aa4..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-4t2c-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-8t4c-nat44det-ip4routing-stl-bidir-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/nat44-det-bidir-2n-icx-xxv710.rst b/docs/cpta/trending/nat44-det-bidir-2n-icx-xxv710.rst
deleted file mode 100644
index da39b03f59..0000000000
--- a/docs/cpta/trending/nat44-det-bidir-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-4t2c-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-8t4c-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 ad6718877a..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-4t2c-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-8t4c-nat44det-ip4routing-stl-bidir-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/nat44-det-bidir-2n-zn2-xxv710.rst b/docs/cpta/trending/nat44-det-bidir-2n-zn2-xxv710.rst
deleted file mode 100644
index dcd910a2a0..0000000000
--- a/docs/cpta/trending/nat44-det-bidir-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-2n-zn2-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-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-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-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-4t2c-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-zn2" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-zn2-xxv710-64b-8t4c-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 b068ddcf76..0000000000
--- a/docs/cpta/trending/nat44-det-bidir.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-Det BiDir
----------
-
-.. toctree::
-
- nat44-det-bidir-2n-icx-xxv710
- nat44-det-bidir-2n-clx-xxv710
- nat44-det-bidir-2n-skx-xxv710
- nat44-det-bidir-2n-zn2-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 a545762b17..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-4t2c-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-8t4c-nat44ed-ip4routing-tcp-stf-cps-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/nat44-ed-tcp-cps-2n-icx-xxv710.rst b/docs/cpta/trending/nat44-ed-tcp-cps-2n-icx-xxv710.rst
deleted file mode 100644
index 920e69f91a..0000000000
--- a/docs/cpta/trending/nat44-ed-tcp-cps-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-4t2c-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-8t4c-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 c2f5ea22d3..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-4t2c-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-8t4c-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 9e3c744ad1..0000000000
--- a/docs/cpta/trending/nat44-ed-tcp-cps.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-ED TCP CPS
-----------
-
-.. toctree::
-
- nat44-ed-tcp-cps-2n-icx-xxv710
- 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 cb54c8d24f..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-4t2c-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-8t4c-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 835b601b6d..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-4t2c-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-8t4c-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-tcp-tput-2n-clx-xxv710.rst b/docs/cpta/trending/nat44-ed-tcp-tput-2n-clx-xxv710.rst
deleted file mode 100644
index bc1270d24f..0000000000
--- a/docs/cpta/trending/nat44-ed-tcp-tput-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,92 +0,0 @@
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-tcp-tput-avf
-```````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-tcp-tput-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-tput-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-tcp-tput-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-nat44ed-ip4routing-tcp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-tcp-tput-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-nat44ed-ip4routing-tcp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
-
-100b-nat44ed-ip4routing-tcp-tput-avf
-````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="100b-2t1c-tcp-tput-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-100b-2t1c-nat44ed-ip4routing-tcp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="100b-4t2c-tcp-tput-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-100b-4t2c-nat44ed-ip4routing-tcp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="100b-8t4c-tcp-tput-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-100b-8t4c-nat44ed-ip4routing-tcp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/nat44-ed-tcp-tput-2n-icx-xxv710.rst b/docs/cpta/trending/nat44-ed-tcp-tput-2n-icx-xxv710.rst
deleted file mode 100644
index 7944148148..0000000000
--- a/docs/cpta/trending/nat44-ed-tcp-tput-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,92 +0,0 @@
-2n-icx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-tcp-tput-avf
-```````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-tcp-tput-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-tcp-tput-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-4t2c-nat44ed-ip4routing-tcp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-tcp-tput-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-8t4c-nat44ed-ip4routing-tcp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
-
-100b-nat44ed-ip4routing-tcp-tput-avf
-````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="100b-2t1c-tcp-tput-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-100b-2t1c-nat44ed-ip4routing-tcp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="100b-4t2c-tcp-tput-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-100b-4t2c-nat44ed-ip4routing-tcp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="100b-8t4c-tcp-tput-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-100b-8t4c-nat44ed-ip4routing-tcp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/nat44-ed-tcp-tput-2n-skx-xxv710.rst b/docs/cpta/trending/nat44-ed-tcp-tput-2n-skx-xxv710.rst
deleted file mode 100644
index 9bd2d0f43f..0000000000
--- a/docs/cpta/trending/nat44-ed-tcp-tput-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,92 +0,0 @@
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-tcp-tput-avf
-```````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-tcp-tput-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-tput-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-tcp-tput-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-nat44ed-ip4routing-tcp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-tcp-tput-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-nat44ed-ip4routing-tcp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
-
-100b-nat44ed-ip4routing-tcp-tput-avf
-````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="100b-2t1c-tcp-tput-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-100b-2t1c-nat44ed-ip4routing-tcp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="100b-4t2c-tcp-tput-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-100b-4t2c-nat44ed-ip4routing-tcp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="100b-8t4c-tcp-tput-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-100b-8t4c-nat44ed-ip4routing-tcp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/nat44-ed-tcp-tput.rst b/docs/cpta/trending/nat44-ed-tcp-tput.rst
deleted file mode 100644
index 22a9e93592..0000000000
--- a/docs/cpta/trending/nat44-ed-tcp-tput.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-ED TCP TPUT
-~~~~~~~~~~~
-
-.. toctree::
-
- nat44-ed-tcp-tput-2n-icx-xxv710
- nat44-ed-tcp-tput-2n-clx-xxv710
- nat44-ed-tcp-tput-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 5eeef6a52d..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-4t2c-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-8t4c-nat44ed-ip4routing-udp-stf-cps-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/nat44-ed-udp-cps-2n-icx-xxv710.rst b/docs/cpta/trending/nat44-ed-udp-cps-2n-icx-xxv710.rst
deleted file mode 100644
index eeb21d6681..0000000000
--- a/docs/cpta/trending/nat44-ed-udp-cps-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-4t2c-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-8t4c-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 2e6b76ab92..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-4t2c-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-8t4c-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 8540fdfd12..0000000000
--- a/docs/cpta/trending/nat44-ed-udp-cps.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-ED UDP CPS
-----------
-
-.. toctree::
-
- nat44-ed-udp-cps-2n-icx-xxv710
- 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 d08520473d..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-4t2c-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-8t4c-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 7ad084fdba..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-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-4t2c-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-8t4c-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-udp-tput-2n-clx-xxv710.rst b/docs/cpta/trending/nat44-ed-udp-tput-2n-clx-xxv710.rst
deleted file mode 100644
index af20c2067e..0000000000
--- a/docs/cpta/trending/nat44-ed-udp-tput-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,92 +0,0 @@
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-udp-tput-avf
-```````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-udp-tput-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-tput-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-udp-tput-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-nat44ed-ip4routing-udp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-udp-tput-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-nat44ed-ip4routing-udp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
-
-100b-nat44ed-ip4routing-udp-tput-avf
-````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="100b-2t1c-udp-tput-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-100b-2t1c-nat44ed-ip4routing-udp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="100b-4t2c-udp-tput-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-100b-4t2c-nat44ed-ip4routing-udp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="100b-8t4c-udp-tput-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-100b-8t4c-nat44ed-ip4routing-udp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/nat44-ed-udp-tput-2n-icx-xxv710.rst b/docs/cpta/trending/nat44-ed-udp-tput-2n-icx-xxv710.rst
deleted file mode 100644
index 87949e9567..0000000000
--- a/docs/cpta/trending/nat44-ed-udp-tput-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,92 +0,0 @@
-2n-icx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-udp-tput-avf
-```````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-udp-tput-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-udp-tput-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-4t2c-nat44ed-ip4routing-udp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-udp-tput-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-8t4c-nat44ed-ip4routing-udp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
-
-100b-nat44ed-ip4routing-udp-tput-avf
-````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="100b-2t1c-udp-tput-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-100b-2t1c-nat44ed-ip4routing-udp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="100b-4t2c-udp-tput-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-100b-4t2c-nat44ed-ip4routing-udp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="100b-8t4c-udp-tput-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-100b-8t4c-nat44ed-ip4routing-udp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/nat44-ed-udp-tput-2n-skx-xxv710.rst b/docs/cpta/trending/nat44-ed-udp-tput-2n-skx-xxv710.rst
deleted file mode 100644
index 5ccb4f3b35..0000000000
--- a/docs/cpta/trending/nat44-ed-udp-tput-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,92 +0,0 @@
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-64b-nat44ed-ip4routing-udp-tput-avf
-```````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-udp-tput-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-tput-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-udp-tput-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-nat44ed-ip4routing-udp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-udp-tput-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-nat44ed-ip4routing-udp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
-
-100b-nat44ed-ip4routing-udp-tput-avf
-````````````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="100b-2t1c-udp-tput-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-100b-2t1c-nat44ed-ip4routing-udp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="100b-4t2c-udp-tput-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-100b-4t2c-nat44ed-ip4routing-udp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="100b-8t4c-udp-tput-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-100b-8t4c-nat44ed-ip4routing-udp-tput-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/nat44-ed-udp-tput.rst b/docs/cpta/trending/nat44-ed-udp-tput.rst
deleted file mode 100644
index d611618e24..0000000000
--- a/docs/cpta/trending/nat44-ed-udp-tput.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-ED UDP TPUT
-~~~~~~~~~~~
-
-.. toctree::
-
- nat44-ed-udp-tput-2n-icx-xxv710
- nat44-ed-udp-tput-2n-clx-xxv710
- nat44-ed-udp-tput-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 1d7e62f4e8..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-4t2c-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-8t4c-nat44ed-ip4routing-stl-unidir-avf.html"></iframe>
- <p><br></p>
- </center>
diff --git a/docs/cpta/trending/nat44-ed-unidir-2n-icx-xxv710.rst b/docs/cpta/trending/nat44-ed-unidir-2n-icx-xxv710.rst
deleted file mode 100644
index 69428123a4..0000000000
--- a/docs/cpta/trending/nat44-ed-unidir-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-4t2c-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-8t4c-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 4a131f80be..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-4t2c-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-8t4c-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 8146e3f35a..0000000000
--- a/docs/cpta/trending/nat44-ed-unidir.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-ED UniDir
-~~~~~~~~~
-
-.. toctree::
-
- nat44-ed-unidir-2n-clx-xxv710
- nat44-ed-unidir-2n-skx-xxv710
-
-..
- nat44-ed-unidir-2n-icx-xxv710
diff --git a/docs/cpta/trending/nat44.rst b/docs/cpta/trending/nat44.rst
deleted file mode 100644
index ad6e424f5c..0000000000
--- a/docs/cpta/trending/nat44.rst
+++ /dev/null
@@ -1,13 +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
- nat44-ed-udp-tput
- nat44-ed-tcp-tput
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-icx-xxv710.rst b/docs/cpta/trending/nf_service_density_cnfc-2n-icx-xxv710.rst
deleted file mode 100644
index cf1df24180..0000000000
--- a/docs/cpta/trending/nf_service_density_cnfc-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,44 +0,0 @@
-2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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 ebb698df69..0000000000
--- a/docs/cpta/trending/nf_service_density_cnfc.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-CNF Service Chains Routing
---------------------------
-
-.. toctree::
-
- nf_service_density_cnfc-2n-icx-xxv710
- 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-icx-xxv710.rst b/docs/cpta/trending/nf_service_density_cnfp-2n-icx-xxv710.rst
deleted file mode 100644
index de84570dbb..0000000000
--- a/docs/cpta/trending/nf_service_density_cnfp-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,44 +0,0 @@
-2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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 a75040f757..0000000000
--- a/docs/cpta/trending/nf_service_density_cnfp.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-CNF Service Pipelines Routing
------------------------------
-
-.. toctree::
-
- nf_service_density_cnfp-2n-icx-xxv710
- 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-icx-xxv710.rst b/docs/cpta/trending/nf_service_density_vnfc-2n-icx-xxv710.rst
deleted file mode 100644
index 1d7f4bd51a..0000000000
--- a/docs/cpta/trending/nf_service_density_vnfc-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,44 +0,0 @@
-2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx-xxv710.rst b/docs/cpta/trending/nf_service_density_vnfc-vxlan-2n-icx-xxv710.rst
deleted file mode 100644
index 257f22d2c4..0000000000
--- a/docs/cpta/trending/nf_service_density_vnfc-vxlan-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,44 +0,0 @@
-2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-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 39e0d02d15..0000000000
--- a/docs/cpta/trending/nf_service_density_vnfc-vxlan.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-VNF Service Chains Tunnels
---------------------------
-
-.. toctree::
-
- nf_service_density_vnfc-vxlan-2n-icx-xxv710
- 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 5da187b154..0000000000
--- a/docs/cpta/trending/nf_service_density_vnfc.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-VNF Service Chains Routing
---------------------------
-
-.. toctree::
-
- nf_service_density_vnfc-2n-icx-xxv710
- 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-icx-xxv710.rst b/docs/cpta/trending/srv6-3n-icx-xxv710.rst
deleted file mode 100644
index 913430ff31..0000000000
--- a/docs/cpta/trending/srv6-3n-icx-xxv710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-3n-icx-xxv710
--------------
-
-78b-srv6-ip6routing-base-avf
-````````````````````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="78b-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-78b-2t1c-srv6-ip6routing-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="78b-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-78b-4t2c-srv6-ip6routing-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="78b-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-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-icx-xxv710-78b-8t4c-srv6-ip6routing-base-avf.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 f0c5973fc0..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-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-srv6-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="78b-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-78b-4t2c-srv6-base-avf.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="78b-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-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 aad50f3ee9..0000000000
--- a/docs/cpta/trending/srv6.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-SRv6 Routing
-============
-
-.. toctree::
-
- srv6-3n-icx-xxv710
- srv6-3n-skx-xxv710
- srv6-3n-tsh-x520
-
-..
- 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-e810cq.rst b/docs/cpta/trending/vhost-2n-clx-e810cq.rst
deleted file mode 100644
index 90e89cdf8f..0000000000
--- a/docs/cpta/trending/vhost-2n-clx-e810cq.rst
+++ /dev/null
@@ -1,50 +0,0 @@
-2n-clx-e810cq
--------------
-
-64b-vhost-base
-``````````````
-
-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-e810cq-64b-2t1c-vhost.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-e810cq-64b-4t2c-vhost.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-e810cq-64b-8t4c-vhost.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-icx-xxv710.rst b/docs/cpta/trending/vhost-2n-icx-xxv710.rst
deleted file mode 100644
index 24eec4e5e9..0000000000
--- a/docs/cpta/trending/vhost-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-2n-icx-xxv710
--------------
-
-64b-vhost-base
-``````````````
-
-2t1c
-::::
-
-.. raw:: html
-
- <a name="64b-2t1c-base"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-2t1c-vhost-base.html"></iframe>
- <p><br></p>
- </center>
-
-4t2c
-::::
-
-.. raw:: html
-
- <a name="64b-4t2c-base"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-4t2c-vhost-base.html"></iframe>
- <p><br></p>
- </center>
-
-8t4c
-::::
-
-.. raw:: html
-
- <a name="64b-8t4c-base"></a>
- <center>
- Links to builds:
- <a href="https://packagecloud.io/app/fdio/master/search?dist=ubuntu%2Fbionic" target="_blank">vpp-ref</a>,
- <a href="https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-icx" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/2n-icx-xxv710-64b-8t4c-vhost-base.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-alt-xl710.rst b/docs/cpta/trending/vhost-3n-alt-xl710.rst
deleted file mode 100644
index 309758fb70..0000000000
--- a/docs/cpta/trending/vhost-3n-alt-xl710.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-3n-alt-xl710
--------------
-
-64b-vhost-base
-``````````````
-
-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-3n-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-64b-1t1c-vhost.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-3n-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-64b-2t2c-vhost.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-3n-alt" target="_blank">csit-ref</a>
- <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/3n-alt-xl710-64b-4t4c-vhost.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 83c5921a21..0000000000
--- a/docs/cpta/trending/vhost.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-VMs vhost-user
-==============
-
-.. toctree::
-
- vhost-2n-icx-xxv710
- vhost-2n-clx-xxv710
- vhost-2n-clx-cx556a
- vhost-2n-clx-e810cq
- vhost-2n-skx-xxv710
- vhost-3n-skx-xxv710
- vhost-3n-alt-xl710
- vhost-3n-skx-x710
- vhost-3n-tsh-x520
- vhost-2n-zn2-xxv710
- vhost-2n-zn2-cx556a
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-02.md b/docs/ietf/draft-ietf-bmwg-mlrsearch-02.md
deleted file mode 100644
index fef146618c..0000000000
--- a/docs/ietf/draft-ietf-bmwg-mlrsearch-02.md
+++ /dev/null
@@ -1,1359 +0,0 @@
----
-title: Multiple Loss Ratio Search for Packet Throughput (MLRsearch)
-abbrev: Multiple Loss Ratio Search
-docname: draft-ietf-bmwg-mlrsearch-02
-date: 2022-03-07
-
-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
- role: editor
- email: mkonstan@cisco.com
- -
- ins: V. Polak
- name: Vratko Polak
- org: Cisco Systems
- email: vrpolak@cisco.com
-
-normative:
- RFC2544:
-
-informative:
- FDio-CSIT-MLRsearch:
- target: https://s3-docs.fd.io/csit/rls2110/report/introduction/methodology_data_plane_throughput/methodology_data_plane_throughput.html#mlrsearch-tests
- title: "FD.io CSIT Test Methodology - MLRsearch"
- date: 2021-11
- PyPI-MLRsearch:
- target: https://pypi.org/project/MLRsearch/0.4.0/
- title: "MLRsearch 0.4.0, Python Package Index"
- date: 2021-04
-
---- abstract
-
-TODO: Update after all sections are ready.
-
-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
-
-{::comment}
- As we use kramdown to convert from markdown,
- we use this way of marking comments not to be visible in rendered draft.
- https://stackoverflow.com/a/42323390
- If other engine is used, convert to this way:
- https://stackoverflow.com/a/20885980
-{:/comment}
-
-# Terminology
-
-TODO: Update after most other sections are updated.
-
-{::comment}
- The following is probably not needed (or defined elsewhere).
-
- * 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 (octets).
- * 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 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
- octets) and inter-frame gap (12 octets). For bi-directional tests,
- bandwidth throughput rate should be reported as aggregate for both
- directions. Expressed in bits-per-second (bps).
- * TODO do we need this as it is identical to RFC2544 Throughput?
- Non Drop Rate (NDR): maximum packet/bandwidth 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).
- * TODO if needed, reformulate to make it clear there can be multiple rates
- for multiple (non-zero) loss ratios.
- : Partial Drop Rate (PDR): maximum packet/bandwidth 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).
- * TODO: Refer to FRMOL instead.
- 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).
- * TODO just keep using "trial measurement"?
- Trial: a single measurement step. See [RFC2544] section 23.
- * TODO already defined in RFC2544:
- Trial duration: amount of time over which packets are transmitted
- in a single measurement step.
-{:/comment}
-{::comment}
-{:/comment}
-
-* TODO: The current text uses Throughput for the zero loss ratio load.
- Is the capital T needed/useful?
-* DUT and SUT: see the definitions in https://gerrit.fd.io/r/c/csit/+/35545
-* Traffic Generator (TG) and Traffic Analyzer (TA): see
- https://datatracker.ietf.org/doc/html/rfc6894#section-4
- TODO: Maybe there is an earlier RFC?
-* Overall search time: the time it takes to find all required loads within
- their precision goals, starting from zero trials measured at given
- DUT configuration and traffic profile.
-* TODO: traffic profile?
-* Intended load: https://datatracker.ietf.org/doc/html/rfc2285#section-3.5.1
-* Offered load: https://datatracker.ietf.org/doc/html/rfc2285#section-3.5.2
-* Maximum offered load (MOL): see
- https://datatracker.ietf.org/doc/html/rfc2285#section-3.5.3
-* Forwarding rate at maximum offered load (FRMOL)
- https://datatracker.ietf.org/doc/html/rfc2285#section-3.6.2
-* Trial Loss Count: the number of frames transmitted
- minus the number of frames received. Negative count is possible,
- e.g. when SUT duplicates some frames.
-* Trial Loss Ratio: ratio of frames received relative to frames
- transmitted over the trial duration.
- For bi-directional throughput tests, the aggregate ratio is calculated,
- based on the aggregate number of frames transmitted and received.
- If the trial loss count is negative, its absolute value MUST be used
- to keep compliance with RFC2544.
-* Safe load: any value, such that trial measurement at this (or lower)
- intended load is correcrly handled by both TG and TA, regardless of SUT behavior.
- Frequently, it is not known what the safe load is.
-* Max load (TODO rename?): Maximal intended load to be used during search.
- Benchmarking team decides which value is low enough
- to guarantee values reported by TG and TA are reliable.
- It has to be a safe load, but it can be lower than a safe load estimate
- for added safety.
- See the subsection on unreliable test equipment below.
- This value MUST NOT be higher than MOL, which itself MUST NOT
- be higher than Maximum Frame Rate
- https://datatracker.ietf.org/doc/html/rfc2544#section-20
-* Min load: Minimal intended load to be used during search.
- Benchmarking team decides which value is high enough
- to guarantee the trial measurement results are valid.
- E.g. considerable overall search time can be saved by declaring SUT
- faulty if min load trial shows too high loss rate.
- Zero frames per second is a valid min load value
-* Effective loss ratio: a corrected value of trial loss ratio
- chosen to avoid difficulties if SUT exhibits decreasing loss ratio
- with increasing load. It is the maximum of trial loss ratios
- measured at the same duration on all loads smaller than (and including)
- the current one.
-* Target loss ratio: a loss ratio value acting as an input for the search.
- The search is finding tight enough lower and upper bounds in intended load,
- so that the measurement at the lower bound has smaller or equal
- trial loss ratio, and upper bound has strictly larger trial loss ratio.
- For the tightest upper bound, the effective loss ratio is the same as
- trial loss ratio at that upper bound load.
- For the tightest lower bound, the effective loss ratio can be higher
- than the trial loss ratio at that lower bound, but still not larger
- than the target loss ratio.
-* TODO: Search algorithm.
-* TODO: Precision goal.
-* TODO: Define a "benchmarking group".
-* TODO: Upper and lower bound.
-* TODO: Valid and invalid bound?
-* TODO: Interval and interval width?
-
-TODO: Mention NIC/PCI bandwidth/pps limits can be lower than bandwidth of medium.
-
-# Intentions of this document
-
-{::comment}
- Instead of talking about DUTs being non-deterministic
- and vendors "gaming" in order to get better Throughput results,
- Maciek and Vratko currently prefer to talk about result repeatability.
-{:/comment}
-
-The intention of this document is to provide recommendations for:
-* optimizing search for multiple target loss ratios at once,
-* speeding up the overall search time,
-* improve search results repeatability and comparability.
-
-No part of RFC2544 is intended to be obsoleted by this document.
-
-{::comment}
- This document may contain examples which contradict RFC2544 requirements
- and suggestions.
- That is not an ecouragement for benchmarking groups
- to stop being compliant with RFC2544.
-{:/comment}
-
-# RFC2544
-
-## Throughput search
-
-It is useful to restate the key requirements of RFC2544
-using the new terminology (see section Terminology).
-
-The following sections of RFC2544 are of interest for this document.
-
-* https://datatracker.ietf.org/doc/html/rfc2544#section-20
- Mentions the max load SHOULD not be larget than the theoretical
- maximum rate for the frame size on the media.
-
-* https://datatracker.ietf.org/doc/html/rfc2544#section-23
- Lists the actions to be done for each trial measurement,
- it also mentions loss rate as an example of trial measurement results.
- This document uses loss count instead, as that is the quantity
- that is easier for the current test equipment to measure,
- e.g. it is not affected by the real traffic duration.
- TODO: Time uncertainty again.
-
-* https://datatracker.ietf.org/doc/html/rfc2544#section-24
- Mentions "full length trials" leading to the Throughput found,
- as opposed to shorter trial durations, allowed in an attempt
- to "minimize the length of search procedure".
- This document talks about "final trial duration" and aims to
- "optimize overal search time".
-
-* https://datatracker.ietf.org/doc/html/rfc2544#section-26.1
- with https://www.rfc-editor.org/errata/eid422
- finaly states requirements for the search procedure.
- It boils down to "increase intended load upon zero trial loss
- and decrease intended load upon non-zero trial loss".
-
-No additional constraints are placed on the load selection,
-and there is no mention of an exit condition, e.g. when there is enough
-trial measurements to proclaim the largest load with zero trial loss
-(and final trial duration) to be the Throughput found.
-
-{::comment}
- The following section is probably not useful enough.
-
- ## Generalized search
-
- Note that the Throughput search can be restated as a "conditional
- load search" with a specific condition.
-
- "increase intended load upon trial result satisfying the condition
- and decrease intended load upon trial result not satisfying the condition"
- where the Throughput condition is "trial loss count is zero".
-
- This works for any condition that can be evaluated from a single
- trial measurement result, and is likely to be true at low loads
- and false at high loads.
-
- MLRsearch can incorporate multiple different conditions,
- as long as there is total ligical ordering between them
- (e.g. if a condition for a target loss ratio is not satisfied,
- it is also not satisfied for any other codition which uses
- larger target loss ratio).
-
- TODO: How to call a "load associated with this particular condition"?
-{:/comment}
-
-{::comment}
-
- TODO: Not sure if this subsection is needed an where.
-
- ## Simple bisection
-
- There is one obvious and simple search algorithm which conforms
- to throughput search requirements: simple bijection.
-
- Input: target precision, in frames per second.
-
- Procedure:
-
- 1. Chose min load to be zero.
- 1. No need to measure, loss count has to be zero.
- 2. Use the zero load as the current lower bound.
- 2. Chose max load to be the max value allowed by bandwidth of the medium.
- 1. Perform a trial measurement (at the full length duration) at max load.
- 2. If there is zero trial loss count, return max load as Throughput.
- 3. Use max load as the current upper bound.
- 3. Repeat until the difference between lower bound and upper bound is
- smaller or equal to the precision goal.
- 1. If it is not larget, return the current lower bound as Throughput.
- 2. Else: Chose new load as the arithmetic average of lower and upper bound.
- 3. Perform a trial measurement (at the full length duration) at this load.
- 4. If the trial loss rate is zero, consider the load as new lower bound.
- 5. Else consider the load as the new upper bound.
- 6. Jump back to the repeat at 3.
-
- Another possible stop condition is the overal search time so far,
- but that is not really a different condition, as the time for search to reach
- the precision goal is just a function of precision goal, trial duration
- and the difference between max and min load.
-
- While this algorithm can be accomodated to search for multiple
- target loss ratios "at the same time (see somewhere below),
- it is still missing multiple improvement which give MLRsearch
- considerably better overal search time in practice.
-
-{:/comment}
-
-# Problems
-
-## Repeatability and Comparability
-
-RFC2544 does not suggest to repeat Throughput search,
-{::comment}probably because the full set of tests already takes long{:/comment}
-and from just one Throughput value, it cannot be determined
-how repeatable that value is (how likely it is for a repeated Throughput search
-to end up with a value less then the precision goal away from the first value).
-
-Depending on SUT behavior, different benchmark groups
-can report significantly different Througput values,
-even when using identical SUT and test equipment,
-just because of minor differences in their search algorithm
-(e.g. different max load value).
-
-While repeatability can be addressed by repeating the search several times,
-the differences in the comparability scenario may be systematic,
-e.g. seeming like a bias in one or both benchmark groups.
-
-MLRsearch algorithm does not really help with the repeatability problem.
-This document RECOMMENDS to repeat a selection of "important" tests
-ten times, so users can ascertain the repeatability of the results.
-
-TODO: How to report? Average and standard deviation?
-
-Following MLRsearch algorithm leaves less freedom for the benchmark groups
-to encounter the comparability problem,
-alghough more research is needed to determine the effect
-of MLRsearch's tweakable parameters.
-
-{::comment}
- Possibly, the old DUTs were quite sharply consistent in their performance,
- and/or precision goals were quite large in order to save overal search time.
-
- With software DUTs and with time-efficient search algorithms,
- nowadays the repeatability of Throughput can be quite low,
- as in standard deviation of repeated Througput results
- is considerably higher than the precision goal.
-{:/comment}
-
-{::comment}
- TODO: Unify with PLRsearch draft.
- TODO: No-loss region, random region, lossy region.
- TODO: Tweaks with respect to non-zero loss ratio goal.
- TODO: Duration dependence?
-
- Both RFC2544 and MLRsearch return Throughput somewhere inside the random region,
- or at most the precision goal below it.
-{:/comment}
-
-{::comment}
- TODO: Make sure this is covered elsewhere, then delete.
-
- ## Search repeatability
-
- The goal of RFC1242 and RFC2544 is to limit how vendors benchmark their DUTs,
- in order to force them to report values that have higher chance
- to be confirmed by independent benchmarking groups following the same RFCs.
-
- This works well for deterministic DUTs.
-
- But for non-deterministic DUTs, the RFC2544 Throughput value
- is only guaranteed to fall somewhere below the lossy region (TODO define).
- It is possible to arrive at a value positioned likely high in the random region
- at the cost of increased overall search duration,
- simply by lowering the load by very small amounts (instead of exact halving)
- upon lossy trial and increasing by large amounts upon lossless trial.
-
- Prescribing an exact search algorithm (bisection or MLRsearch or other)
- will force vendors to report less "gamey" Throughput values.
-{:/comment}
-
-{::comment}
- ## Extensions
-
- The following two sections are probably out of scope,
- as they does not affect MLRsearch design choices.
-
- ### Direct and inverse measurements
-
- TODO expand: Direct measurement is single trial measurement,
- with predescribed inputs and outputs turned directly into the quality of interest
- Examples:
- Latency https://datatracker.ietf.org/doc/html/rfc2544#section-26.2
- is a single direct measurement.
- Frame loss rate https://datatracker.ietf.org/doc/html/rfc2544#section-26.3
- is a sequence of direct measurements.
-
- TODO expand: Indirect measurement aims to solve an "inverse function problem",
- meaning (a part of) trial measurement output is prescribed, and the quantity
- of interest is (derived from) the input parameters of trial measurement
- that achieves the prescribed output.
- In general this is a hard problem, but if the unknown input parameter
- is just one-dimensional quantity, algorithms such as bisection
- do converge regardless of outputs seen.
- We call any such algorithm examining one-dimensional input as "search".
- Of course, some exit condition is needed for the search to end.
- In case of Throughput, bisection algorithm tracks both upper bound
- and lower bound, with lower bound at the end of search is the quantity
- satisfying the definition of Throughput.
-
- ### Metrics other than frames
-
- TODO expand: Small TCP transaction can succeed even if some frames are lost.
-
- TODO expand: It is possible for loss ratio to use different metric than load.
- E.g. pps loss ratio when traffic profile uses higher level transactions per second.
-
- ### TODO: Stateful DUT
-
- ### TODO: Stateful traffic
-{:/comment}
-
-## Non-Zero Target Loss Ratios
-
-https://datatracker.ietf.org/doc/html/rfc1242#section-3.17
-defines Throughput as:
- The maximum rate at which none of the offered frames
- are dropped by the device.
-
-and 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.
-
-{::comment}
-
- While this may still be true for some protocols,
- research has been performed...
-
- TODO: Add this link properly: https://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-Y.1541-201112-I!!PDF-E&type=items
- TODO: List values from that document, from 10^-3 to 4*10^-6.
-
- ...on other protocols and use cases,
- resulting in some small but non-zero loss ratios being considered
- as acceptable. Unfortunately, the acceptable value depends on use case
- and properties such as TCP window size and round trip time,
- so no single value of target loss rate (other than zero)
- is considered to be universally applicable.
-
-{:/comment}
-
-New "software DUTs" (traffic forwarding programs running on
-commercial-off-the-shelf compute server hardware) frequently exhibit quite
-low repeatability of Throughput results per above definition.
-
-This is due to, in general, throughput rates of software DUTs (programs)
-being sensitive to server resource allocation by OS during runtime,
-as well as any interrupts or blocking of software threads involved
-in packet processing.
-
-To deal with this, this document recommends discovery of multiple throughput rates of interest for software DUTs that run on general purpose COTS servers (with x86, AArch64 Instruction Set Architectures):
-* throughput rate with target of zero packet loss ratio.
-* at least one throughput rate with target of non-zero packet loss ratio.
-
-
-In our experience, the higher the target loss ratio is,
-the better is the repeatability of the corresponding load found.
-
-TODO: Define a good name for a load corresponding to a specific non-zero
-target loss ration, while keeping Throughput for the load corresponding
-to zero target loss ratio.
-
-This document RECOMMENDS the benchmark groups to search for corresponding loads
-to at least one non-zero target loss ratio.
-This document does not suggest any particular non-zero target loss ratio value
-to search the corresponding load for.
-
-{::comment}
- What is worse, some benchmark groups (which groups?; citation needed)
- started reporting loads that achieved only "approximate zero loss",
- while still calling that a Throughput (and thus becoming non-compliant
- with RFC2544).
-{:/comment}
-
-# Solution ideas
-
-This document gives several independent ideas on how to lower the (average)
-overall search time, while remaining unconditionally compliant with RFC2544
-(and adding some of extensions).
-
-This document also specifies one particular way to combine all the ideas
-into a single search algorithm class (single logic with few tweakable parameters).
-
-Little to no research has been done into the question of which combination
-of ideas achieves the best compromise with respect to overal search time,
-high repeatability and high comparability.
-
-TODO: How important it is to discuss particular implementation choices,
-especially when motivated by non-deterministic SUT behavior?
-
-## Short duration trials
-
-https://datatracker.ietf.org/doc/html/rfc2544#section-24
-already mentions the possibity of using shorter duration
-for trials that are not part of "final determination".
-
-Obviously, the upper and lower bound from a smaller duration trial
-can be used as the initial upper and lower bound for the final determination.
-
-MLRsearch makes it clear a re-measurement is always needed
-(new trial measurement with the same load but longer duration).
-It also specifes what to do if the longer trial is no longer a valid bound
-(TODO define?), e.g. start an external search.
-Additionaly one halving can be saved during the shorter duration search.
-
-## FRMOL as reasonable start
-
-TODO expand: Overal search ends with "final determination" search,
-preceded by "shorter duration search" preceded by "bound initialization",
-where the bounds can be considerably different from min and max load.
-
-For SUTs with high repeatability, the FRMOL is usually a good approximation
-of Throughput. But for less repeatable SUTs, forwarding rate (TODO define)
-is frequently a bad approximation to Throughput, therefore halving
-and other robust-to-worst-case approaches have to be used.
-Still, forwarding rate at FRMOL load can be a good initial bound.
-
-## Non-zero loss ratios
-
-See the "Popularity of non-zero target loss ratios" section above.
-
-TODO: Define "trial measurement result classification criteria",
-or keep reusing long phrases without definitions?
-
-A search for a load corresponding to a non-zero target loss rate
-is very similar to a search for Throughput,
-just the criterion when to increase or decrease the intended load
-for the next trial measurement uses the comparison of trial loss ratio
-to the target loss ratio (instead of comparing loss count to zero)
-Any search algorithm that works for Throughput can be easily used also for
-non-zero target loss rates, perhaps with small modifications
-in places where the measured forwarding rate is used.
-
-Note that it is possible to search for multiple loss ratio goals if needed.
-
-## Concurrent ratio search
-
-A single trial measurement result can act as an upper bound for a lower
-target loss ratio, and as a lower bound for a higher target loss ratio
-at the same time. This is an example of how
-it can be advantageous to search for all loss ratio goals "at once",
-or at least "reuse" trial measurement result done so far.
-
-Even when a search algorithm is fully deterministic in load selection
-while focusing on a single loss ratio and trial duration,
-the choice of iteration order between target loss ratios and trial durations
-can affect the obtained results in subtle ways.
-MLRsearch offers one particular ordering.
-
-{::comment}
- It is not clear if the current ordering is "best",
- it is not even clear how to measure how good an ordering is.
- We would need several models for bad SUT behaviors,
- bug-free implementations of different orderings,
- simulator to show the distribution of rates found,
- distribution of overall durations,
- and a criterion of which rate distribution is "bad"
- and whether it is worth the time saved.
-{:/comment}
-{::comment}
-{:/comment}
-
-## Load selection heuristics and shortcuts
-
-Aside of the two heuristics already mentioned (FRMOL based initial bounds
-and saving one halving when increasing trial duration),
-there are other tricks that can save some overall search time
-at the cost of keeping the difference between final lower and upper bound
-intentionally large (but still within the precision goal).
-
-TODO: Refer implementation subsections on:
-* Uneven splits.
-* Rounding the interval width up.
-* Using old invalid bounds for interval width guessing.
-
-The impact on overall duration is probably small,
-and the effect on result distribution maybe even smaller.
-TODO: Is the two-liner above useful at all?
-
-# Non-compliance with RFC2544
-
-It is possible to achieve even faster search times by abandoning
-some requirements and suggestions of RFC2544,
-mainly by reducing the wait times at start and end of trial.
-
-Such results are therefore no longer compliant with RFC2544
-(or at least not unconditionally),
-but they may still be useful for internal usage, or for comparing
-results of different DUTs achieved with an identical non-compliant algorithm.
-
-TODO: Refer to the subsection with CSIT customizations.
-
-# Additional Requirements
-
-RFC2544 can be understood as having a number of implicit requirements.
-They are made explicit in this section
-(as requirements for this document, not for RFC2544).
-
-Recommendations on how to properly address the implicit requirements
-are out of scope of this document.
-
-{::comment}
-
- Although some (insufficient) ideas are proposed.
-
-{:/comment}
-
-## TODO: Search Stop Criteria
-
-TODO: Mention the timeout parameter?
-
-{::comment}
-
- TODO: highlight importance of results consistency
- for SUT performance trending and anomaly detection.
-
-{:/comment}
-
-## Reliability of Test Equipment
-
-Both TG and TA MUST be able to handle correctly
-every intended load used during the search.
-
-On TG side, the difference between Intended Load and Offered Load
-MUST be small.
-
-TODO: How small? Difference of one packet may not be measurable
-due to time uncertainties.
-
-{::comment}
-
- Maciek: 1 packet out of 10M, that's 10**-7 accuracy.
-
- Vratko: For example, TRex uses several "worker" threads, each doing its own
- rounding on how many packets to send, separately per each traffic stream.
- For high loads and durations, the observed number of frames transmitted
- can differ from the expected (fractional) value by tens of frames.
-
-{:/comment}
-
-TODO expand: time uncertainty.
-
-To ensure that, max load (see Terminology) has to be set to low enough value.
-Benchmark groups MAY list the max load value used,
-especially if the Throughput value is equal (or close) to the max load.
-
-{::comment}
-
- The following is probably out of scope of this document,
- but can be useful when put into a separate document.
-
- TODO expand: If it results in smaller Throughput reported,
- it is not a big issue. Treat similarly to bandwidth and PPS limits of NICs.
-
- TODO expand: TA dropping packets when loaded only lowers Throughput,
- so not an issue.
-
- TODO expand: TG sending less packets but stopping at target duration
- is also fine, as long as the forwarding rate is used as Throughput value,
- not the higher intended load.
-
- TODO expand: Duration stretching is not fine.
- Neither "check for actual duration" nor "start+sleep+stop"
- are reliable solutions due to time overheads and uncertainty
- of TG starting/stopping traffic (and TA stopping counting packets).
-
-{:/comment}
-
-Solutions (even problem formulations) for the following open problems
-are outside of the scope of this document:
-* Detecting when the test equipment operates above its safe load.
-* Finding a large but safe load value.
-* Correcting any result affected by max load value not being a safe load.
-
-{::comment}
-
- TODO: Mention 90% of self-test as an idea:
- https://datatracker.ietf.org/doc/html/rfc8219#section-9.2.1
-
- This is pointing to DNS testing, nothing to do with throughput,
- so how is it relevant here?
-
-{:/comment}
-
-{::comment}
-
- Part of discussion on BMWG mailing list (with small edits):
-
- This is a hard issue.
- The algorithm as described has no way of knowing
- which part of the whole system is limiting the performance.
-
- It could be SUT only (no problem, testing SUT as expected),
- it could be TG only (can be mitigated by TG self-test
- and using small enough loads).
-
- But it could also be an interaction between DUT and TG.
- Imagine a TG (the Traffic Analyzer part) which is only able
- to handle incoming traffic up to some rate,
- but passes the self-test as the Generator part has maximal rate
- not larger than that. But what if SUT turns that steady rate
- into long-enough bursts of a higher rate (with delays between bursts
- large enough, so average forwarding rate matches the load).
- This way TA will see some packets as missing (when its buffers
- fill up), even though SUT has processed them correctly.
-
-{:/comment}
-
-### Very late frames
-
-{::comment}
-
- In CSIT we are aggressive at skipping all wait times around trial,
- but few of DUTs have large enough buffers.
- Or there is another reason why we are seeing negative loss counts.
-
-{:/comment}
-
-
-RFC2544 requires quite conservative time delays
-see https://datatracker.ietf.org/doc/html/rfc2544#section-23
-to prevent frames buffered in one trial measurement
-to be counted as received in a subsequent trial measurement.
-
-However, for some SUTs it may still be possible to buffer enough frames,
-so they are still sending them (perhaps in bursts)
-when the next trial measurement starts.
-Sometimes, this can be detected as a negative trial loss count, e.g. TA receiving
-more frames than TG has sent during this trial measurement. Frame duplication
-is another way of causing the negative trial loss count.
-
-https://datatracker.ietf.org/doc/html/rfc2544#section-10
-recommends to use sequence numbers in frame payloads,
-but generating and verifying them requires test equipment resources,
-which may be not plenty enough to suport at high loads.
-(Using low enough max load would work, but frequently that would be
-smaller than SUT's sctual Throughput.)
-
-RFC2544 does not offer any solution to the negative loss problem,
-except implicitly treating negative trial loss counts
-the same way as positive trial loss counts.
-
-This document also does not offer any practical solution.
-
-Instead, this document SUGGESTS the search algorithm to take any precaution
-necessary to avoid very late frames.
-
-This document also REQUIRES any detected duplicate frames to be counted
-as additional lost frames.
-This document also REQUIRES, any negative trial loss ratio
-to be treated as positive trial loss ratio of the same absolute value.
-
-{::comment}
-
- !!! Make sure this is covered elsewere, at least in better comments. !!!
-
- ## TODO: Bad behavior of SUT
-
- (Highest load with always zero loss can be quite far from lowest load
- with always nonzero loss.)
- (Non-determinism: warm up, periodic "stalls", perf decrease over time, ...)
-
- Big buffers:
- http://www.hit.bme.hu/~lencse/publications/ECC-2017-B-M-DNS64-revised.pdf
- See page 8 and search for the word "gaming".
-
-{:/comment}
-
-!!! Nothing below is up-to-date with draft v02. !!!
-
-# MLRsearch Background
-
-TODO: Old section, probably obsoleted by preceding section(s).
-
-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, each rate is associated with a distinct
-Packet Loss Ratio (PLR) criterion.
-
-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 with NDR and PDR pair as an example.
-
-Similarly to other throughput search approaches like binary search,
-MLRsearch is effective for SUTs/DUTs with PLR curve that is
-non-decreasing with growing offered load. It may not be as
-effective for SUTs/DUTs with abnormal PLR curves, although
-it will always converge to some value.
-
-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 can be applied even without those assumptions,
-but in that case the aggregate loss ratio is less useful as a metric.
-
-MLRsearch can be used for network transactions consisting of more than
-just one packet, or anything else that has intended load as input
-and loss ratio as output (duration as input is optional).
-This text uses mostly packet-centric language.
-
-# 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:
- * Target PLRs (e.g. 0.0 and 0.005 when searching for 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 all previous trial measurement results:
- * Duration, offered load and loss ratio are tracked.
- * Effective loss ratios are tracked.
- * While in practice, real loss ratios can decrease with increasing load,
- effective loss ratios never decrease. This is achieved by sorting
- results by load, and using the effective loss ratio of the previous load
- if the current loss ratio is smaller than that.
- * The algorithm queries the results to find best lower and upper bounds.
- * Effective loss ratios are always used.
- * The phase ends if all target loss ratios have tight enough bounds.
- * Search:
- * Iterate over target loss ratios in increasing order.
- * If both upper and lower bound are in measurement results for this duration,
- apply bisect until the bounds are tight enough,
- and continue with next loss ratio.
- * If a bound is missing for this duration, but there exists a bound
- from the previous duration (compatible with the other bound
- at this duration), re-measure at the current duration.
- * If a bound in one direction (upper or lower) is missing for this duration,
- and the previous duration does not have a compatible bound,
- compute the current "interval size" from the second tightest bound
- in the other direction (lower or upper respectively)
- for the current duration, and choose next offered load for external search.
- * The logic guarantees that a measurement is never repeated with both
- duration and offered load being the same.
- * The logic guarantees that measurements for higher target loss ratio
- iterations (still within the same phase duration) do not affect validity
- and tightness of bounds for previous target loss ratio iterations
- (at the same duration).
- * Use of internal and external searches:
- * External search:
- * It is a variant of "exponential search".
- * The "interval size" is multiplied by a configurable constant
- (powers of two work well with the subsequent internal search).
- * Internal search:
- * A variant of binary search that measures at offered load between
- the previously found bounds.
- * The interval does not need to be split into exact halves,
- if other split can get to the target width goal faster.
- * The idea is to avoid returning interval narrower than the current
- width goal. See sample implementation details, below.
-* 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 returned bounds stay within prescribed min_rate and max_rate.
- * When returning min_rate or max_rate, the returned bounds may be invalid.
- * E.g. upper bound at max_rate may come from a measurement
- with loss ratio still not higher than the target loss ratio.
-
-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.
- * Re-measurement at higher duration can trigger a long external search.
- That never happens in binary search, which uses the final duration
- from the start.
-
-# Sample Implementation
-
-Following is a brief description of a sample MLRsearch implementation,
-which is a simplified version of the existing implementation.
-
-## Input Parameters
-
-1. **max_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. **min_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_ratios** - list of maximum acceptable PLR search criteria.
-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.
- Received rate is computed as intended load multiplied by pass ratio
- (which is one minus loss ratio). This is useful when loss ratio is computed
- from a different metric than intended load. For example, intended load
- can be in transactions (multiple packets each), but loss ratio is computed
- on level of packets, not transactions.
-
- * Example: If MTR is 10 transactions per second, and each transaction has
- 10 packets, and receive rate is 90 packets per second, then loss rate
- is 10%, and MRR is computed to be 9 transactions per second.
-
- If MRR is too close to MTR, MRR is set below MTR so that interval width
- is equal to the width goal of the first intermediate phase.
- If MRR is less than min_rate, min_rate is used.
-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 MRR2 is less than min_rate, min_rate is used.
- If loss ratio is less or equal to the smallest target loss ratio,
- MRR2 is set to a value 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.
- * OUT: MRR3 = measured receive rate.
- If MRR3 is less than min_rate, min_rate is used.
- If step 3 is not skipped, the first trial measurement is forgotten.
- This is done because in practice (if MRR2 is above MRR), external search
- from MRR and MRR2 is likely to lead to a faster intermediate phase
- than a bisect between MRR2 and MTR.
-
-## Non-Initial Phases
-
-1. Main phase 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: Measurement results from the previous phase (previous duration).
- 4. Internal target ratio loop:
- 1. IN: Target loss ratio for this iteration of ratio loop.
- 2. IN: Measurement results from all previous ratio loop iterations
- of current phase (current duration).
- 3. DO: According to the procedure described in point 2:
- 1. either exit the phase (by jumping to 1.5),
- 2. or exit loop iteration (by continuing with next target loss ratio,
- jumping to 1.4.1),
- 3. or calculate new transmit rate to measure with.
- 4. DO: Perform the trial measurement at the new transmit rate and
- current trial duration, compute its loss ratio.
- 5. DO: Add the result and go to next iteration (1.4.1),
- including the added trial result in 1.4.2.
- 5. OUT: Measurement results from this phase.
- 6. OUT: In the final phase, bounds for each target loss ratio
- are extracted and returned.
- 1. If a valid bound does not exist, use min_rate or max_rate.
-2. New transmit rate (or exit) calculation (for point 1.4.3):
- 1. If the previous duration has the best upper and lower bound,
- select the middle point as the new transmit rate.
- 1. See 2.5.3. below for the exact splitting logic.
- 2. This can be a no-op if interval is narrow enough already,
- in that case continue with 2.2.
- 3. Discussion, assuming the middle point is selected and measured:
- 1. Regardless of loss rate measured, the result becomes
- either best upper or best lower bound at current duration.
- 2. So this condition is satisfied at most once per iteration.
- 3. This also explains why previous phase has double width goal:
- 1. We avoid one more bisection at previous phase.
- 2. At most one bound (per iteration) is re-measured
- with current duration.
- 3. Each re-measurement can trigger an external search.
- 4. Such surprising external searches are the main hurdle
- in achieving low overall search durations.
- 5. Even without 1.1, there is at most one external search
- per phase and target loss ratio.
- 6. But without 1.1 there can be two re-measurements,
- each coming with a risk of triggering external search.
- 2. If the previous duration has one bound best, select its transmit rate.
- In deterministic case this is the last measurement needed this iteration.
- 3. If only upper bound exists in current duration results:
- 1. This can only happen for the smallest target loss ratio.
- 2. If the upper bound was measured at min_rate,
- exit the whole phase early (not investigating other target loss ratios).
- 3. Select new transmit rate using external search:
- 1. For computing previous interval size, use:
- 1. second tightest bound at current duration,
- 2. or tightest bound of previous duration,
- if compatible and giving a more narrow interval,
- 3. or target interval width if none of the above is available.
- 4. In any case increase to target interval width if smaller.
- 2. Quadruple the interval width.
- 3. Use min_rate if the new transmit rate is lower.
- 4. If only lower bound exists in current duration results:
- 1. If the lower bound was measured at max_rate,
- exit this iteration (continue with next lowest target loss ratio).
- 2. Select new transmit rate using external search:
- 1. For computing previous interval size, use:
- 1. second tightest bound at current duration,
- 2. or tightest bound of previous duration,
- if compatible and giving a more narrow interval,
- 3. or target interval width if none of the above is available.
- 4. In any case increase to target interval width if smaller.
- 2. Quadruple the interval width.
- 3. Use max_rate if the new transmit rate is higher.
- 5. The only remaining option is both bounds in current duration results.
- 1. This can happen in two ways, depending on how the lower bound
- was chosen.
- 1. It could have been selected for the current loss ratio,
- e.g. in re-measurement (2.2) or in initial bisect (2.1).
- 2. It could have been found as an upper bound for the previous smaller
- target loss ratio, in which case it might be too low.
- 3. The algorithm does not track which one is the case,
- as the decision logic works well regardless.
- 2. Compute "extending down" candidate transmit rate exactly as in 2.3.
- 3. Compute "bisecting" candidate transmit rate:
- 1. Compute the current interval width from the two bounds.
- 2. Express the width as a (float) multiple of the target width goal
- for this phase.
- 3. If the multiple is not higher than one, it means the width goal
- is met. Exit this iteration and continue with next higher
- target loss ratio.
- 4. If the multiple is two or less, use half of that
- for new width if the lower subinterval.
- 5. Round the multiple up to nearest even integer.
- 6. Use half of that for new width if the lower subinterval.
- 7. Example: If lower bound is 2.0 and upper bound is 5.0, and width
- goal is 1.0, the new candidate transmit rate will be 4.0.
- This can save a measurement when 4.0 has small loss.
- Selecting the average (3.5) would never save a measurement,
- giving more narrow bounds instead.
- 4. If either candidate computation want to exit the iteration,
- do as bisecting candidate computation says.
- 5. The remaining case is both candidates wanting to measure at some rate.
- Use the higher rate. This prefers external search down narrow enough
- interval, competing with perfectly sized lower bisect subinterval.
-
-# 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. 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*).
-3. Intended count.
- * The number of packets to send during the trial should be equal to
- the intended load multiplied by the duration.
- * Also multiplied by a coefficient, if loss ratio is calculated
- from a different metric.
- * Example: If a successful transaction uses 10 packets,
- load is given in transactions per second, but loss ratio is calculated
- from packets, so the coefficient to get intended count of packets
- is 10.
- * But in practice that does not work.
- * It could result in a fractional number of packets,
- * so it has to be rounded in a way traffic generator chooses,
- * which may depend on the number of traffic flows
- and traffic generator worker threads.
-4. Attempted count. As the real number of intended packets is not known exactly,
- the computation uses the number of packets traffic generator reports as sent.
- Unless overridden by the next point.
-5. Duration stretching.
- * In some cases, traffic generator may get overloaded,
- causing it to take significantly longer (than duration) to send all packets.
- * The implementation uses an explicit stop,
- * causing lower attempted count in those cases.
- * The implementation tolerates some small difference between
- attempted count and intended count.
- * 10 microseconds worth of traffic is sufficient for our tests.
- * If the difference is higher, the unsent packets are counted as lost.
- * This forces the search to avoid the regions of high duration stretching.
- * The final bounds describe the performance of not just SUT,
- but of the whole system, including the traffic generator.
-6. Excess packets.
- * In some test (e.g. using TCP flows) Traffic generator reacts to packet loss
- by retransmission. Usually, such packet loss is already affecting loss ratio.
- If a test also wants to treat retransmissions due to heavily delayed packets
- also as a failure, this is once again visible as a mismatch between
- the intended count and the attempted count.
- * The CSIT implementation simply looks at absolute value of the difference,
- so it offers the same small tolerance before it starts marking a "loss".
-7. For result processing, we use lower bounds and ignore upper bounds.
-
-### FD.io CSIT Input Parameters
-
-1. **max_rate** - Typical values: 2 * 14.88 Mpps for 64B
- 10GE link rate, 2 * 18.75 Mpps for 64B 40GE NIC (specific model).
-2. **min_rate** - Value: 2 * 9001 pps (we reserve 9000 pps
- for latency measurements).
-3. **final_trial_duration** - Value: 30.0 seconds.
-4. **initial_trial_duration** - Value: 1.0 second.
-5. **final_relative_width** - Value: 0.005 (0.5%).
-6. **packet_loss_ratios** - Value: 0.0, 0.005 (0.0% for NDR, 0.5% for PDR).
-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 immediately declares the test failed,
- to avoid wasting even more time on a misbehaving SUT.
- Value: 600.0 (seconds).
-9. **expansion_coefficient** - Width multiplier for external search.
- Value: 4.0 (interval width is quadroupled).
- Value of 2.0 is best for well-behaved SUTs, but value of 4.0 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 list describes a search from a real test run in CSIT
-(using the default input values as above).
-
-* Initial phase, trial duration 1.0 second.
-
-Measurement 1, intended load 18750000.0 pps (MTR),
-measured loss ratio 0.7089514628479618 (valid upper bound for both NDR and PDR).
-
-Measurement 2, intended load 5457160.071600716 pps (MRR),
-measured loss ratio 0.018650817320118702 (new tightest upper bounds).
-
-Measurement 3, intended load 5348832.933500009 pps (slightly less than MRR2
-in preparation for first intermediate phase target interval width),
-measured loss ratio 0.00964383362905351 (new tightest upper bounds).
-
-* First intermediate phase starts, trial duration still 1.0 seconds.
-
-Measurement 4, intended load 4936605.579021453 pps (no lower bound,
-performing external search downwards, for NDR),
-measured loss ratio 0.0 (valid lower bound for both NDR and PDR).
-
-Measurement 5, intended load 5138587.208637197 pps (bisecting for NDR),
-measured loss ratio 0.0 (new tightest lower bounds).
-
-Measurement 6, intended load 5242656.244044665 pps (bisecting),
-measured loss ratio 0.013523745379347257 (new tightest upper bounds).
-
-* Both intervals are narrow enough.
-* Second intermediate phase starts, trial duration 5.477225575051661 seconds.
-
-Measurement 7, intended load 5190360.904111567 pps (initial bisect for NDR),
-measured loss ratio 0.0023533920869969953 (NDR upper bound, PDR lower bound).
-
-Measurement 8, intended load 5138587.208637197 pps (re-measuring NDR lower bound),
-measured loss ratio 1.2080222912800403e-06 (new tightest NDR upper bound).
-
-* The two intervals have separate bounds from now on.
-
-Measurement 9, intended load 4936605.381062318 pps (external NDR search down),
-measured loss ratio 0.0 (new valid NDR lower bound).
-
-Measurement 10, intended load 5036583.888432355 pps (NDR bisect),
-measured loss ratio 0.0 (new tightest NDR lower bound).
-
-Measurement 11, intended load 5087329.903232804 pps (NDR bisect),
-measured loss ratio 0.0 (new tightest NDR lower bound).
-
-* NDR interval is narrow enough, PDR interval not ready yet.
-
-Measurement 12, intended load 5242656.244044665 pps (re-measuring PDR upper bound),
-measured loss ratio 0.0101174866190136 (still valid PDR upper bound).
-
-* Also PDR interval is narrow enough, with valid bounds for this duration.
-* Final phase starts, trial duration 30.0 seconds.
-
-Measurement 13, intended load 5112894.3238511775 pps (initial bisect for NDR),
-measured loss ratio 0.0 (new tightest NDR lower bound).
-
-Measurement 14, intended load 5138587.208637197 (re-measuring NDR upper bound),
-measured loss ratio 2.030389804256833e-06 (still valid PDR upper bound).
-
-* NDR interval is narrow enough, PDR interval not yet.
-
-Measurement 15, intended load 5216443.04126728 pps (initial bisect for PDR),
-measured loss ratio 0.005620871287975237 (new tightest PDR upper bound).
-
-Measurement 16, intended load 5190360.904111567 (re-measuring PDR lower bound),
-measured loss ratio 0.0027629971184465604 (still valid PDR lower bound).
-
-* PDR interval is also narrow enough.
-* Returning bounds:
-* NDR_LOWER = 5112894.3238511775 pps; NDR_UPPER = 5138587.208637197 pps;
-* PDR_LOWER = 5190360.904111567 pps; PDR_UPPER = 5216443.04126728 pps.
-
-# 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/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/process.txt b/docs/ietf/process.txt
index e170352cb9..128c31bff1 100644
--- a/docs/ietf/process.txt
+++ b/docs/ietf/process.txt
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 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:
@@ -14,9 +14,17 @@
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:
-$ kdrfc --version
+$ sudo aptitude install ruby-rubygems
$ sudo gem install kramdown-rfc2629
+$ kdrfc --version
Main:
-$ kdrfc draft-ietf-bmwg-mlrsearch-02.md
+$ 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/trex-2n-skx.md b/docs/job_specs/mlr_weekly/trex-2n-skx.md
deleted file mode 120000
index 047ccad41a..0000000000
--- a/docs/job_specs/mlr_weekly/trex-2n-skx.md
+++ /dev/null
@@ -1 +0,0 @@
-../report_iterative/2n-skx/trex-mlr-00.md \ No newline at end of file
diff --git a/docs/job_specs/mlr_weekly/vpp-2n-aws.md b/docs/job_specs/mlr_weekly/vpp-2n-aws.md
deleted file mode 120000
index e4c09b1460..0000000000
--- a/docs/job_specs/mlr_weekly/vpp-2n-aws.md
+++ /dev/null
@@ -1 +0,0 @@
-../report_iterative/2n-aws/vpp-mlr-00.md \ No newline at end of file
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-icx.md b/docs/job_specs/mlr_weekly/vpp-2n-icx.md
deleted file mode 120000
index 614c323732..0000000000
--- a/docs/job_specs/mlr_weekly/vpp-2n-icx.md
+++ /dev/null
@@ -1 +0,0 @@
-../report_iterative/2n-icx/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 120000
index ad0bd79aa9..0000000000
--- a/docs/job_specs/mlr_weekly/vpp-2n-zn2.md
+++ /dev/null
@@ -1 +0,0 @@
-../report_iterative/2n-zn2/vpp-mlr-00.md \ No newline at end of file
diff --git a/docs/job_specs/mlr_weekly/vpp-3n-alt.md b/docs/job_specs/mlr_weekly/vpp-3n-alt.md
deleted file mode 120000
index 737bc8f884..0000000000
--- a/docs/job_specs/mlr_weekly/vpp-3n-alt.md
+++ /dev/null
@@ -1 +0,0 @@
-../report_iterative/3n-alt/vpp-mlr-00.md \ No newline at end of file
diff --git a/docs/job_specs/mlr_weekly/vpp-3n-aws.md b/docs/job_specs/mlr_weekly/vpp-3n-aws.md
deleted file mode 120000
index 51edfd1899..0000000000
--- a/docs/job_specs/mlr_weekly/vpp-3n-aws.md
+++ /dev/null
@@ -1 +0,0 @@
-../report_iterative/3n-aws/vpp-mlr-00.md \ No newline at end of file
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-icx.md b/docs/job_specs/mlr_weekly/vpp-3n-icx.md
deleted file mode 120000
index aa5f50f1a4..0000000000
--- a/docs/job_specs/mlr_weekly/vpp-3n-icx.md
+++ /dev/null
@@ -1 +0,0 @@
-../report_iterative/3n-icx/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-snr.md b/docs/job_specs/mlr_weekly/vpp-3n-snr.md
deleted file mode 120000
index 4082eedcd6..0000000000
--- a/docs/job_specs/mlr_weekly/vpp-3n-snr.md
+++ /dev/null
@@ -1 +0,0 @@
-../report_iterative/3n-snr/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-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-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-icx.md b/docs/job_specs/mrr_weekly/dpdk-2n-icx.md
deleted file mode 100644
index fa1cc0012b..0000000000
--- a/docs/job_specs/mrr_weekly/dpdk-2n-icx.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# 2n-icx
-### 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-icx.md b/docs/job_specs/mrr_weekly/dpdk-3n-icx.md
deleted file mode 100644
index 2a19b06024..0000000000
--- a/docs/job_specs/mrr_weekly/dpdk-3n-icx.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# 3n-icx
-### 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-icx.md b/docs/job_specs/mrr_weekly/vpp-3n-icx.md
deleted file mode 100644
index 8ec3c7ca70..0000000000
--- a/docs/job_specs/mrr_weekly/vpp-3n-icx.md
+++ /dev/null
@@ -1,160 +0,0 @@
-# 3n-icx
-## ./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/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 1f34c34b03..0000000000
--- a/docs/job_specs/perf_tests_job_specs.md
+++ /dev/null
@@ -1,139 +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), 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), x553 (3n-tsh).
-- Secondary: x710 (skx).
-
-### 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
- - 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-aws/vpp-00.md b/docs/job_specs/report_coverage/2n-aws/vpp-00.md
deleted file mode 100644
index 3ec44a4e7a..0000000000
--- a/docs/job_specs/report_coverage/2n-aws/vpp-00.md
+++ /dev/null
@@ -1,52 +0,0 @@
-# 2n-aws
-## ./container_memif
-## ./crypto
-## ./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
-## ./ip4_tunnels
-## ./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
-## ./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
-## ./vm_vhost
-## ./vts
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/gso-00.md b/docs/job_specs/report_coverage/2n-clx/gso-00.md
deleted file mode 100644
index 46d6ff237b..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/gso-00.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# 2n-clx
-## ./container_memif
-## ./crypto
-## ./gso
-### intel-x710
-#### drv_tap
-##### ethip4-ip4base-2tap-gso
-1c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
-2c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
-4c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
-#### drv_tap
-##### ethip4-ip4base-2tap
-1c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-iperf3
-2c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-iperf3
-4c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-iperf3
-#### drv_vhost
-##### ethip4-ip4base-2vhost-gso
-1c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
-2c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
-4c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
-#### drv_vhost
-##### ethip4-ip4base-2vhost
-1c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
-2c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
-4c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
-## ./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/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 1b87575363..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/ip4-00.md
+++ /dev/null
@@ -1,317 +0,0 @@
-# 2n-clx
-## ./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
-#### 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
-### 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-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-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
-## ./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/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 7a4729d891..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/ip4-01.md
+++ /dev/null
@@ -1,79 +0,0 @@
-# 2n-clx
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 d30183e622..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/ip4-02.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# 2n-clx
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 b364420d7d..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/ip4-03.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# 2n-clx
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 1f29352f0e..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/ip4-04.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# 2n-clx
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 83442685cc..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/ip4-05.md
+++ /dev/null
@@ -1,82 +0,0 @@
-# 2n-clx
-## ./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
-##### 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-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-##### ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-##### ethip4tcp-nat44ed-h262144-p63-s16515072-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-tput
-##### 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-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-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-tput
-##### ethip4tcp-ip4base-h16384-p63-s1032192-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
-##### ethip4tcp-ip4base-h65536-p63-s4128768-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
-##### ethip4tcp-ip4base-h262144-p63-s16515072-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf 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/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 97e1264c99..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/ip4-06.md
+++ /dev/null
@@ -1,106 +0,0 @@
-# 2n-clx
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### 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 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 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 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 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 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-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 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 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 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
-##### 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-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
-##### ethip4udp-nat44ed-h16384-p63-s1032192-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
-##### ethip4udp-nat44ed-h65536-p63-s4128768-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
-##### ethip4udp-nat44ed-h262144-p63-s16515072-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-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/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 870dc22fee..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/ip4-07.md
+++ /dev/null
@@ -1,50 +0,0 @@
-# 2n-clx
-## ./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
-##### 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-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-tput
-##### ethip4udp-ip4base-h16384-p63-s1032192-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-tput
-##### ethip4udp-ip4base-h65536-p63-s4128768-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
-##### ethip4udp-ip4base-h262144-p63-s16515072-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf 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/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 e161c424b3..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/ip4tun-00.md
+++ /dev/null
@@ -1,78 +0,0 @@
-# 2n-clx
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 e2c7acf389..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/ip6-00.md
+++ /dev/null
@@ -1,137 +0,0 @@
-# 2n-clx
-## ./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
-##### 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
-### 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
-#### 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
-## ./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/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 9aeb6f9f72..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/ip6-01.md
+++ /dev/null
@@ -1,247 +0,0 @@
-# 2n-clx
-## ./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
-##### ethip6-ip6scale2m-rnd
-1c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m-rnd
-2c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m-rnd
-4c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m-rnd
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m-rnd
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m-rnd
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m-rnd
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m-rnd
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m-rnd
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m-rnd
-#### 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
-##### ethip6-ip6scale2m-rnd
-1c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-2c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-4c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-### 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
-### intel-e810cq
-#### dpdk-avf
-##### 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-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-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-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
-## ./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/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 e67c920302..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/l2-00.md
+++ /dev/null
@@ -1,257 +0,0 @@
-# 2n-clx
-## ./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-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
-### 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
-#### 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
-## ./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/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 2cc7d0a58d..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/l2-01.md
+++ /dev/null
@@ -1,137 +0,0 @@
-# 2n-clx
-## ./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
-### intel-e810cq
-#### avf
-##### 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-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
-## ./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/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 9b2c7c2e6c..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/lb-00.md
+++ /dev/null
@@ -1,79 +0,0 @@
-# 2n-clx
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 ba25c00663..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/memif-00.md
+++ /dev/null
@@ -1,79 +0,0 @@
-# 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
-##### 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
-## ./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/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 7025a07068..0000000000
--- a/docs/job_specs/report_coverage/2n-clx/vhost-00.md
+++ /dev/null
@@ -1,139 +0,0 @@
-# 2n-clx
-## ./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-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
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 f07944291f..0000000000
--- a/docs/job_specs/report_coverage/2n-dnv/ip4-00.md
+++ /dev/null
@@ -1,88 +0,0 @@
-# 2n-dnv
-## ./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
-## ./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/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 08618fe698..0000000000
--- a/docs/job_specs/report_coverage/2n-dnv/ip4-01.md
+++ /dev/null
@@ -1,58 +0,0 @@
-# 2n-dnv
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 dff8e60f78..0000000000
--- a/docs/job_specs/report_coverage/2n-dnv/ip6-00.md
+++ /dev/null
@@ -1,58 +0,0 @@
-# 2n-dnv
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 351feca0ac..0000000000
--- a/docs/job_specs/report_coverage/2n-dnv/ip6-01.md
+++ /dev/null
@@ -1,78 +0,0 @@
-# 2n-dnv
-## ./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
-##### ethip6-ip6scale20k-rnd
-1c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-2c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-4c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-##### ethip6-ip6scale200k-rnd
-1c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
-2c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
-4c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
-##### ethip6-ip6scale2m-rnd
-1c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-2c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-4c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-## ./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/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 cf1e77fe80..0000000000
--- a/docs/job_specs/report_coverage/2n-dnv/l2-00.md
+++ /dev/null
@@ -1,57 +0,0 @@
-# 2n-dnv
-## ./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-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
-## ./srv6
-## ./tcp
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 45961eb7c4..0000000000
--- a/docs/job_specs/report_coverage/2n-dnv/l2-01.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# 2n-dnv
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
diff --git a/docs/job_specs/report_coverage/2n-icx/dpdk-00.md b/docs/job_specs/report_coverage/2n-icx/dpdk-00.md
deleted file mode 100644
index c2c9d7b7c9..0000000000
--- a/docs/job_specs/report_coverage/2n-icx/dpdk-00.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# 2n-icx
-### 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-icx/gso-00.md b/docs/job_specs/report_coverage/2n-icx/gso-00.md
deleted file mode 100644
index 68da475a8a..0000000000
--- a/docs/job_specs/report_coverage/2n-icx/gso-00.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# 2n-icx
-## ./container_memif
-## ./crypto
-## ./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
-## ./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/docs/job_specs/report_coverage/2n-icx/ip4-00.md b/docs/job_specs/report_coverage/2n-icx/ip4-00.md
deleted file mode 100644
index a877faceab..0000000000
--- a/docs/job_specs/report_coverage/2n-icx/ip4-00.md
+++ /dev/null
@@ -1,159 +0,0 @@
-# 2n-icx
-## ./container_memif
-## ./crypto
-## ./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
-## ./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/docs/job_specs/report_coverage/2n-icx/ip4-01.md b/docs/job_specs/report_coverage/2n-icx/ip4-01.md
deleted file mode 100644
index 83df513d54..0000000000
--- a/docs/job_specs/report_coverage/2n-icx/ip4-01.md
+++ /dev/null
@@ -1,79 +0,0 @@
-# 2n-icx
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
diff --git a/docs/job_specs/report_coverage/2n-icx/ip4-02.md b/docs/job_specs/report_coverage/2n-icx/ip4-02.md
deleted file mode 100644
index 0042d08ba0..0000000000
--- a/docs/job_specs/report_coverage/2n-icx/ip4-02.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# 2n-icx
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
diff --git a/docs/job_specs/report_coverage/2n-icx/ip4-03.md b/docs/job_specs/report_coverage/2n-icx/ip4-03.md
deleted file mode 100644
index a2603aed63..0000000000
--- a/docs/job_specs/report_coverage/2n-icx/ip4-03.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# 2n-icx
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
diff --git a/docs/job_specs/report_coverage/2n-icx/ip4-04.md b/docs/job_specs/report_coverage/2n-icx/ip4-04.md
deleted file mode 100644
index 97eb12737a..0000000000
--- a/docs/job_specs/report_coverage/2n-icx/ip4-04.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# 2n-icx
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
diff --git a/docs/job_specs/report_coverage/2n-icx/ip4-05.md b/docs/job_specs/report_coverage/2n-icx/ip4-05.md
deleted file mode 100644
index 60562d9909..0000000000
--- a/docs/job_specs/report_coverage/2n-icx/ip4-05.md
+++ /dev/null
@@ -1,82 +0,0 @@
-# 2n-icx
-## ./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
-##### 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-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-##### ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-##### ethip4tcp-nat44ed-h262144-p63-s16515072-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-tput
-##### 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-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-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-tput
-##### ethip4tcp-ip4base-h16384-p63-s1032192-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
-##### ethip4tcp-ip4base-h65536-p63-s4128768-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
-##### ethip4tcp-ip4base-h262144-p63-s16515072-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf 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/docs/job_specs/report_coverage/2n-icx/ip4-06.md b/docs/job_specs/report_coverage/2n-icx/ip4-06.md
deleted file mode 100644
index 28b859945e..0000000000
--- a/docs/job_specs/report_coverage/2n-icx/ip4-06.md
+++ /dev/null
@@ -1,106 +0,0 @@
-# 2n-icx
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### 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 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 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 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 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 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-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 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 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 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
-##### 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-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
-##### ethip4udp-nat44ed-h16384-p63-s1032192-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
-##### ethip4udp-nat44ed-h65536-p63-s4128768-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
-##### ethip4udp-nat44ed-h262144-p63-s16515072-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-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/docs/job_specs/report_coverage/2n-icx/ip4-07.md b/docs/job_specs/report_coverage/2n-icx/ip4-07.md
deleted file mode 100644
index f80749ef55..0000000000
--- a/docs/job_specs/report_coverage/2n-icx/ip4-07.md
+++ /dev/null
@@ -1,50 +0,0 @@
-# 2n-icx
-## ./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
-##### 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-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-tput
-##### ethip4udp-ip4base-h16384-p63-s1032192-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-tput
-##### ethip4udp-ip4base-h65536-p63-s4128768-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
-##### ethip4udp-ip4base-h262144-p63-s16515072-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf 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/docs/job_specs/report_coverage/2n-icx/ip4tun-00.md b/docs/job_specs/report_coverage/2n-icx/ip4tun-00.md
deleted file mode 100644
index 9a0ce8d403..0000000000
--- a/docs/job_specs/report_coverage/2n-icx/ip4tun-00.md
+++ /dev/null
@@ -1,78 +0,0 @@
-# 2n-icx
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
diff --git a/docs/job_specs/report_coverage/2n-icx/ip6-00.md b/docs/job_specs/report_coverage/2n-icx/ip6-00.md
deleted file mode 100644
index 9114eba9b1..0000000000
--- a/docs/job_specs/report_coverage/2n-icx/ip6-00.md
+++ /dev/null
@@ -1,79 +0,0 @@
-# 2n-icx
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./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
-##### 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
-## ./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/docs/job_specs/report_coverage/2n-icx/ip6-01.md b/docs/job_specs/report_coverage/2n-icx/ip6-01.md
deleted file mode 100644
index 3c1dd1f571..0000000000
--- a/docs/job_specs/report_coverage/2n-icx/ip6-01.md
+++ /dev/null
@@ -1,139 +0,0 @@
-# 2n-icx
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./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
-## ./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/docs/job_specs/report_coverage/2n-icx/l2-00.md b/docs/job_specs/report_coverage/2n-icx/l2-00.md
deleted file mode 100644
index fd9ddbf6ea..0000000000
--- a/docs/job_specs/report_coverage/2n-icx/l2-00.md
+++ /dev/null
@@ -1,99 +0,0 @@
-# 2n-icx
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./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
-## ./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/docs/job_specs/report_coverage/2n-icx/l2-01.md b/docs/job_specs/report_coverage/2n-icx/l2-01.md
deleted file mode 100644
index 11311558de..0000000000
--- a/docs/job_specs/report_coverage/2n-icx/l2-01.md
+++ /dev/null
@@ -1,79 +0,0 @@
-# 2n-icx
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./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
-## ./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/docs/job_specs/report_coverage/2n-icx/lb-00.md b/docs/job_specs/report_coverage/2n-icx/lb-00.md
deleted file mode 100644
index a4f0498807..0000000000
--- a/docs/job_specs/report_coverage/2n-icx/lb-00.md
+++ /dev/null
@@ -1,79 +0,0 @@
-# 2n-icx
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
diff --git a/docs/job_specs/report_coverage/2n-icx/memif-00.md b/docs/job_specs/report_coverage/2n-icx/memif-00.md
deleted file mode 100644
index c06882ec9b..0000000000
--- a/docs/job_specs/report_coverage/2n-icx/memif-00.md
+++ /dev/null
@@ -1,79 +0,0 @@
-# 2n-icx
-## ./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
-## ./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/docs/job_specs/report_coverage/2n-icx/vhost-00.md b/docs/job_specs/report_coverage/2n-icx/vhost-00.md
deleted file mode 100644
index 02a40df309..0000000000
--- a/docs/job_specs/report_coverage/2n-icx/vhost-00.md
+++ /dev/null
@@ -1,139 +0,0 @@
-# 2n-icx
-## ./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-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
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/gso-00.md b/docs/job_specs/report_coverage/2n-skx/gso-00.md
deleted file mode 100644
index 488b46cbcb..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/gso-00.md
+++ /dev/null
@@ -1,43 +0,0 @@
-# 2n-skx
-### tests 12
-### job hrs est. 1
-### job hrs real 1
-### test mins est. 0.75
-### test mins real 0.75
-## ./container_memif
-## ./crypto
-## ./gso
-### intel-x710
-#### drv_tap
-##### ethip4-ip4base-2tap-gso
-1c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
-2c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
-4c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
-#### drv_tap
-##### ethip4-ip4base-2tap
-1c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-iperf3
-2c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-iperf3
-4c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-iperf3
-#### drv_vhost
-##### ethip4-ip4base-2vhost-gso
-1c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
-2c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
-4c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
-#### drv_vhost
-##### ethip4-ip4base-2vhost
-1c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
-2c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
-4c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
-## ./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/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 00ffe1c2d7..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/ip4-00.md
+++ /dev/null
@@ -1,227 +0,0 @@
-# 2n-skx
-### tests 180
-### job hrs est. 11.6
-### job hrs real ??.?
-### test mins est. 3.88
-### test mins real 3.88
-## ./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
-#### 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
-## ./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/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 e89ec0c21a..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/ip4-01.md
+++ /dev/null
@@ -1,84 +0,0 @@
-# 2n-skx
-### tests 54
-### job hrs est. 3.9
-### job hrs real ?.?
-### 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
-#### 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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 a8ebcbed8a..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/ip4-02.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# 2n-skx
-### tests 36
-### job hrs est. 2.8
-### job hrs real 2.8
-### test mins est. 4.67
-### test mins real 4.67
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 9fed5aacc0..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/ip4-03.md
+++ /dev/null
@@ -1,64 +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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 557a5d95d9..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/ip4-04.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# 2n-skx
-### tests 36
-### job hrs est. 2.75
-### job hrs real 2.75
-### test mins est. 4.58
-### test mins real 4.58
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 2f9c65fbae..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/ip4-05.md
+++ /dev/null
@@ -1,87 +0,0 @@
-# 2n-skx
-### tests 48
-### job hrs est. 2.4
-### job hrs real ?.?
-### test mins est. 3.05
-### test mins real 3.05
-## ./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
-##### 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-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-##### ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-##### ethip4tcp-nat44ed-h262144-p63-s16515072-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h262144-p63-s16515072-tput
-##### 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-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-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-tput
-##### ethip4tcp-ip4base-h16384-p63-s1032192-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
-##### ethip4tcp-ip4base-h65536-p63-s4128768-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
-##### ethip4tcp-ip4base-h262144-p63-s16515072-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h262144-p63-s16515072-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf 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/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 9b6110e935..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/ip4-06.md
+++ /dev/null
@@ -1,87 +0,0 @@
-# 2n-skx
-### tests 48
-### job hrs est. 5.7
-### job hrs real ?.?
-### test mins est. 7.15
-### test mins real 7.15
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### 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-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-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-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
-##### ethip4udp-nat44ed-h16384-p63-s1032192-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
-##### ethip4udp-nat44ed-h65536-p63-s4128768-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
-##### ethip4udp-nat44ed-h262144-p63-s16515072-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h262144-p63-s16515072-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-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/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 55951c883d..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/ip4-07.md
+++ /dev/null
@@ -1,55 +0,0 @@
-# 2n-skx
-### tests 24
-### job hrs est. 2.2
-### job hrs real ?.?
-### test mins est. 5.45
-### test mins real 5.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
-##### 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-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-tput
-##### ethip4udp-ip4base-h16384-p63-s1032192-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-tput
-##### ethip4udp-ip4base-h65536-p63-s4128768-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
-##### ethip4udp-ip4base-h262144-p63-s16515072-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h262144-p63-s16515072-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf 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/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 b2022eee00..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/ip4tun-00.md
+++ /dev/null
@@ -1,83 +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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 7bcb54ec16..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/ip6-00.md
+++ /dev/null
@@ -1,107 +0,0 @@
-# 2n-skx
-### tests 72
-### job hrs est. 4.6
-### job hrs real ?.?
-### test mins est. 3.83
-### test mins real 3.83
-## ./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
-##### 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
-## ./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/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 acbaf16531..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/ip6-01.md
+++ /dev/null
@@ -1,187 +0,0 @@
-# 2n-skx
-### tests 144
-### job hrs est. 9.5
-### job hrs real ?.?
-### 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
-##### ethip6-ip6scale2m-rnd
-1c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m-rnd
-2c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m-rnd
-4c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m-rnd
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m-rnd
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m-rnd
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m-rnd
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m-rnd
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m-rnd
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m-rnd
-#### 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
-##### ethip6-ip6scale2m-rnd
-1c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-2c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-4c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-### 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
-## ./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/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 4a0b6cb82c..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/l2-00.md
+++ /dev/null
@@ -1,167 +0,0 @@
-# 2n-skx
-### tests 126
-### job hrs est. 7.0
-### job hrs real ?.?
-### test mins est. 3.32
-### test mins real 3.32
-## ./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-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
-## ./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/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 2b94965a9d..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/l2-01.md
+++ /dev/null
@@ -1,107 +0,0 @@
-# 2n-skx
-### tests 72
-### job hrs est. 4.6
-### job hrs real 4.6
-### test mins est. 3.83
-### test mins real 3.83
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 7d14b3533c..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/lb-00.md
+++ /dev/null
@@ -1,84 +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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 7dfc1fd02c..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/memif-00.md
+++ /dev/null
@@ -1,84 +0,0 @@
-# 2n-skx
-### tests 54
-### job hrs est. 5.0
-### job hrs real ?.?
-### test mins est. 5.58
-### test mins real 5.58
-## ./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
-## ./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/docs/job_specs/report_coverage/2n-skx/trex-00.md b/docs/job_specs/report_coverage/2n-skx/trex-00.md
deleted file mode 100644
index 0aa1e696e5..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/trex-00.md
+++ /dev/null
@@ -1,46 +0,0 @@
-# 2n-skx
-### tests 28
-## ./ip4
-##### ethip4-ip4base-tg
-- AND 64b AND ndrpdr AND x710 AND - AND ethip4-ip4base-tg
-- AND 1518b AND ndrpdr AND x710 AND - AND ethip4-ip4base-tg
-- AND 9000b AND ndrpdr AND x710 AND - AND ethip4-ip4base-tg
-- AND imix AND ndrpdr AND x710 AND - AND ethip4-ip4base-tg
-##### ethip4-ip4scale2m-tg
-- AND 64b AND ndrpdr AND x710 AND - AND ethip4-ip4scale2m-tg
-- AND 1518b AND ndrpdr AND x710 AND - AND ethip4-ip4scale2m-tg
-- AND 9000b AND ndrpdr AND x710 AND - AND ethip4-ip4scale2m-tg
-- AND imix AND ndrpdr AND x710 AND - AND ethip4-ip4scale2m-tg
-##### ethip4tcp-ip4base-h1024-p63-s64512-cps-tg
-- AND 64b AND ndrpdr AND x710 AND - AND ethip4tcp-ip4base-h1024-p63-s64512-cps-tg
-##### ethip4tcp-ip4base-h1024-p63-s64512-tput-tg
-- AND 100b AND ndrpdr AND x710 AND - AND ethip4tcp-ip4base-h1024-p63-s64512-tput-tg
-##### ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg
-- AND 64b AND ndrpdr AND x710 AND - AND ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg
-##### ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg
-- AND 100b AND ndrpdr AND x710 AND - AND ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg
-##### ethip4udp-ip4base-h1024-p63-s64512-cps-tg
-- AND 64b AND ndrpdr AND x710 AND - AND ethip4udp-ip4base-h1024-p63-s64512-cps-tg
-##### ethip4udp-ip4base-h1024-p63-s64512-tput-tg
-- AND 100b AND ndrpdr AND x710 AND - AND ethip4udp-ip4base-h1024-p63-s64512-tput-tg
-##### ethip4udp-ip4base-h262144-p63-s16515072-cps-tg
-- AND 64b AND ndrpdr AND x710 AND - AND ethip4udp-ip4base-h262144-p63-s16515072-cps-tg
-##### ethip4udp-ip4base-h262144-p63-s16515072-tput-tg
-- AND 100b AND ndrpdr AND x710 AND - AND ethip4udp-ip4base-h262144-p63-s16515072-tput-tg
-## ./ip6
-##### ethip6-ip6base-tg
-- AND 78b AND ndrpdr AND x710 AND - AND ethip6-ip6base-tg
-- AND 1518b AND ndrpdr AND x710 AND - AND ethip6-ip6base-tg
-- AND 9000b AND ndrpdr AND x710 AND - AND ethip6-ip6base-tg
-- AND imix AND ndrpdr AND x710 AND - AND ethip6-ip6base-tg
-##### ethip6-ip6scale2m-tg
-- AND 78b AND ndrpdr AND x710 AND - AND ethip6-ip6scale2m-tg
-- AND 1518b AND ndrpdr AND x710 AND - AND ethip6-ip6scale2m-tg
-- AND 9000b AND ndrpdr AND x710 AND - AND ethip6-ip6scale2m-tg
-- AND imix AND ndrpdr AND x710 AND - AND ethip6-ip6scale2m-tg
-## ./l2
-##### eth-l2bdscale1mmaclrn-tg
-- AND 64b AND ndrpdr AND x710 AND - AND eth-l2bdscale1mmaclrn-tg
-- AND 1518b AND ndrpdr AND x710 AND - AND eth-l2bdscale1mmaclrn-tg
-- AND 9000b AND ndrpdr AND x710 AND - AND eth-l2bdscale1mmaclrn-tg
-- AND imix AND ndrpdr AND x710 AND - AND eth-l2bdscale1mmaclrn-tg
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 bdb551c187..0000000000
--- a/docs/job_specs/report_coverage/2n-skx/vhost-00.md
+++ /dev/null
@@ -1,144 +0,0 @@
-# 2n-skx
-### tests 108
-### job hrs est. 10.55
-### job hrs real 10.55
-### test mins est. 5.86
-### test mins real 5.86
-## ./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-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
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 c03b96b7e1..0000000000
--- a/docs/job_specs/report_coverage/2n-tx2/ip4-00.md
+++ /dev/null
@@ -1,110 +0,0 @@
-# 2n-tx2
-### tests 84
-## ./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/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 deee2efda1..0000000000
--- a/docs/job_specs/report_coverage/2n-tx2/ip4-01.md
+++ /dev/null
@@ -1,58 +0,0 @@
-# 2n-tx2
-### tests 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
-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/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 7e1df2556a..0000000000
--- a/docs/job_specs/report_coverage/2n-tx2/ip4-02.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# 2n-tx2
-### tests 24
-## ./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/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 567b8585e5..0000000000
--- a/docs/job_specs/report_coverage/2n-tx2/ip4-03.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# 2n-tx2
-### tests 24
-## ./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/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 cfbdc7c62d..0000000000
--- a/docs/job_specs/report_coverage/2n-tx2/ip4-04.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# 2n-tx2
-### tests 24
-## ./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/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 2e54df0fcd..0000000000
--- a/docs/job_specs/report_coverage/2n-tx2/ip4-05.md
+++ /dev/null
@@ -1,51 +0,0 @@
-# 2n-tx2
-### tests 24
-## ./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/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 2ce5ccfec4..0000000000
--- a/docs/job_specs/report_coverage/2n-tx2/ip4-06.md
+++ /dev/null
@@ -1,51 +0,0 @@
-# 2n-tx2
-### tests 24
-## ./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/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 cd99a20567..0000000000
--- a/docs/job_specs/report_coverage/2n-tx2/ip6-00.md
+++ /dev/null
@@ -1,58 +0,0 @@
-# 2n-tx2
-### tests 36
-## ./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/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 637ba68161..0000000000
--- a/docs/job_specs/report_coverage/2n-tx2/ip6-01.md
+++ /dev/null
@@ -1,58 +0,0 @@
-# 2n-tx2
-### tests 36
-## ./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/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 75f7b1b671..0000000000
--- a/docs/job_specs/report_coverage/2n-tx2/l2-00.md
+++ /dev/null
@@ -1,71 +0,0 @@
-# 2n-tx2
-### tests 48
-## ./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/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 08a14dc29e..0000000000
--- a/docs/job_specs/report_coverage/2n-tx2/l2-01.md
+++ /dev/null
@@ -1,58 +0,0 @@
-# 2n-tx2
-### tests 36
-## ./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/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 864be33d28..0000000000
--- a/docs/job_specs/report_coverage/2n-tx2/l2-02.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# 2n-tx2
-### tests 24
-## ./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/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 8d851bf64e..0000000000
--- a/docs/job_specs/report_coverage/2n-tx2/l2-03.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# 2n-tx2
-### tests 24
-## ./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/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 ba6a4d7fa8..0000000000
--- a/docs/job_specs/report_coverage/2n-tx2/l2-04.md
+++ /dev/null
@@ -1,32 +0,0 @@
-# 2n-tx2
-### tests 12
-## ./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/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/gso-00.md b/docs/job_specs/report_coverage/2n-zn2/gso-00.md
deleted file mode 100644
index d8d4ea945a..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/gso-00.md
+++ /dev/null
@@ -1,43 +0,0 @@
-# 2n-zn2
-### tests 12
-### job hrs est. 1
-### job hrs real 1
-### test mins est. 0.75
-### test mins real 0.75
-## ./container_memif
-## ./crypto
-## ./gso
-### intel-x710
-#### drv_tap
-##### ethip4-ip4base-2tap-gso
-1c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
-2c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
-4c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
-#### drv_tap
-##### ethip4-ip4base-2tap
-1c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-iperf3
-2c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-iperf3
-4c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-iperf3
-#### drv_vhost
-##### ethip4-ip4base-2vhost-gso
-1c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
-2c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
-4c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
-#### drv_vhost
-##### ethip4-ip4base-2vhost
-1c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
-2c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
-4c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
-## ./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/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 055c569484..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/ip4-00.md
+++ /dev/null
@@ -1,259 +0,0 @@
-# 2n-zn2
-### tests 207
-### job hrs est. 10.0
-### job hrs real ?.?
-### test mins est. 2.91
-### test mins real 2.91
-## ./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
-#### 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
-## ./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/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 6fd1f32890..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/ip4-01.md
+++ /dev/null
@@ -1,84 +0,0 @@
-# 2n-zn2
-### tests 54
-### job hrs est. 3.1
-### job hrs real 3.1
-### test mins est. 3.43
-### test mins real 3.43
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 f17489e2ae..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/ip4-02.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# 2n-zn2
-### tests 36
-### job hrs est. 2.0
-### job hrs real 2.0
-### test mins est. 3.33
-### test mins real 3.33
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 a4caf5206b..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/ip4-03.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# 2n-zn2
-### tests 36
-### job hrs est. 2.16
-### job hrs real 2.16
-### test mins est. 4.32
-### test mins real 4.32
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 07dbce5a0e..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/ip4-04.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# 2n-zn2
-### tests 36
-### job hrs est. 2.2
-### job hrs real 2.2
-### test mins est. 3.67
-### test mins real 3.67
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 49e2df0135..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/ip4-05.md
+++ /dev/null
@@ -1,124 +0,0 @@
-# 2n-zn2
-### tests 90
-### job hrs est. 7.5
-### job hrs real ?.?
-### test mins est. 5
-### test mins real 5
-## ./container_memif
-## ./crypto
-## ./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
-## ./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/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 5ec4044f88..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/ip4tun-00.md
+++ /dev/null
@@ -1,83 +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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 87dedb5a57..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/ip6-00.md
+++ /dev/null
@@ -1,119 +0,0 @@
-# 2n-zn2
-### tests 81
-### job hrs est. 4.1
-### job hrs real ?.?
-### test mins est. 3.0
-### test mins real 3.0
-## ./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
-##### 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
-## ./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/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 d1b11c0ac4..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/ip6-01.md
+++ /dev/null
@@ -1,209 +0,0 @@
-# 2n-zn2
-### tests 162
-### job hrs est. 9.15
-### job hrs real 9.15
-### test mins est. 3.39
-### test mins real 3.39
-## ./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
-##### ethip6-ip6scale2m-rnd
-1c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m-rnd
-2c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m-rnd
-4c AND 78b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m-rnd
-1c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m-rnd
-2c AND 1518b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m-rnd
-1c AND 9000b AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m-rnd
-1c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m-rnd
-2c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m-rnd
-4c AND imix AND ndrpdr AND x710 AND drv_avf AND ethip6-ip6scale2m-rnd
-#### 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
-##### ethip6-ip6scale2m-rnd
-1c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-2c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-4c AND 78b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-1c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-2c AND 1518b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-1c AND 9000b AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-1c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-2c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-4c AND imix AND ndrpdr AND x710 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-### 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
-## ./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/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 d891e37b5a..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/l2-00.md
+++ /dev/null
@@ -1,199 +0,0 @@
-# 2n-zn2
-### tests 153
-### job hrs est. 6.9
-### job hrs real ?.?
-### test mins est. 2.69
-### test mins real 2.69
-## ./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-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
-## ./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/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 5785799286..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/l2-01.md
+++ /dev/null
@@ -1,119 +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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 6e5d7492d5..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/lb-00.md
+++ /dev/null
@@ -1,84 +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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 dd5764e1cf..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/memif-00.md
+++ /dev/null
@@ -1,84 +0,0 @@
-# 2n-zn2
-### tests 54
-### job hrs est. 3.9
-### job hrs real ?.?
-### test mins est. 4.3
-### test mins real 4.3
-## ./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
-## ./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/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 7e29c2cfec..0000000000
--- a/docs/job_specs/report_coverage/2n-zn2/vhost-00.md
+++ /dev/null
@@ -1,145 +0,0 @@
-# 2n-zn2
-### tests 108
-### job hrs est. 8.65
-### job hrs real 8.65
-### test mins est. 4.81
-### test mins real 4.81
-## ./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-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-alt/dpdk-00.md b/docs/job_specs/report_coverage/3n-alt/dpdk-00.md
deleted file mode 120000
index 66d57569d2..0000000000
--- a/docs/job_specs/report_coverage/3n-alt/dpdk-00.md
+++ /dev/null
@@ -1 +0,0 @@
-../../report_iterative/3n-alt/dpdk-mlr-00.md \ No newline at end of file
diff --git a/docs/job_specs/report_coverage/3n-alt/ip4-00.md b/docs/job_specs/report_coverage/3n-alt/ip4-00.md
deleted file mode 100644
index cce3b84adb..0000000000
--- a/docs/job_specs/report_coverage/3n-alt/ip4-00.md
+++ /dev/null
@@ -1,75 +0,0 @@
-# 3n-alt
-### tests 48
-### job hrs est. 6.4
-### job hrs real ?.?
-### test mins est. 8
-### test mins real 8
-## ./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-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-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
-## ./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/docs/job_specs/report_coverage/3n-alt/ip4-01.md b/docs/job_specs/report_coverage/3n-alt/ip4-01.md
deleted file mode 100644
index d686637a46..0000000000
--- a/docs/job_specs/report_coverage/3n-alt/ip4-01.md
+++ /dev/null
@@ -1,62 +0,0 @@
-# 3n-alt
-### tests 36
-### job hrs est. 4.4
-### job hrs real 4.4
-### test mins est. 7.33
-### test mins real 7.33
-## ./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/docs/job_specs/report_coverage/3n-alt/ip4-02.md b/docs/job_specs/report_coverage/3n-alt/ip4-02.md
deleted file mode 100644
index 191eb1452f..0000000000
--- a/docs/job_specs/report_coverage/3n-alt/ip4-02.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# 3n-alt
-### tests 24
-### job hrs est. 3.0
-### job hrs real ?.?
-### test mins est. 7.55
-### test mins real 7.55
-## ./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/docs/job_specs/report_coverage/3n-alt/ip4-03.md b/docs/job_specs/report_coverage/3n-alt/ip4-03.md
deleted file mode 100644
index 723f4e71fa..0000000000
--- a/docs/job_specs/report_coverage/3n-alt/ip4-03.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# 3n-alt
-### tests 24
-### job hrs est. 3.0
-### job hrs real ?.?
-### test mins est. 7.29
-### test mins real 7.29
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xl710
-#### dpdk-vfio-pci
-##### 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
-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
-4c 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
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sf-10kflows
-4c 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
-4c AND imix 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
-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
-4c 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
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4udp-ip4base-oacl1sl-10kflows
-4c 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
-4c AND imix AND ndrpdr AND xl710 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/docs/job_specs/report_coverage/3n-alt/ip4tun-00.md b/docs/job_specs/report_coverage/3n-alt/ip4tun-00.md
deleted file mode 100644
index 2a61f6e025..0000000000
--- a/docs/job_specs/report_coverage/3n-alt/ip4tun-00.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# 3n-alt
-### tests 24
-### job hrs est. 2.9
-### job hrs real 2.9
-### test mins est. 7.25
-### test mins real 7.25
-## ./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
-4c 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
-4c 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
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn
-4c 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
-4c 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
-4c 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
-4c 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
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-4c 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
-4c 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
-## ./srv6
-## ./tcp
-## ./vm_vhost
diff --git a/docs/job_specs/report_coverage/3n-alt/ip6-00.md b/docs/job_specs/report_coverage/3n-alt/ip6-00.md
deleted file mode 100644
index e31f463972..0000000000
--- a/docs/job_specs/report_coverage/3n-alt/ip6-00.md
+++ /dev/null
@@ -1,62 +0,0 @@
-# 3n-alt
-### tests 36
-### job hrs est. 4.7
-### job hrs real ?.?
-### test mins est. 7.81
-### test mins real 7.81
-## ./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/docs/job_specs/report_coverage/3n-alt/ip6-01.md b/docs/job_specs/report_coverage/3n-alt/ip6-01.md
deleted file mode 100644
index c5dcb43a54..0000000000
--- a/docs/job_specs/report_coverage/3n-alt/ip6-01.md
+++ /dev/null
@@ -1,62 +0,0 @@
-# 3n-alt
-### tests 36
-### job hrs est. 5.1
-### job hrs real 5.1
-### test mins est. 8.5
-### test mins real 8.5
-## ./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/docs/job_specs/report_coverage/3n-alt/l2-00.md b/docs/job_specs/report_coverage/3n-alt/l2-00.md
deleted file mode 100644
index ddfedea72e..0000000000
--- a/docs/job_specs/report_coverage/3n-alt/l2-00.md
+++ /dev/null
@@ -1,75 +0,0 @@
-# 3n-alt
-### tests 48
-### job hrs est. 5.8
-### job hrs real ?.?
-### test mins est. 7.2
-### test mins real 7.2
-## ./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/docs/job_specs/report_coverage/3n-alt/l2-01.md b/docs/job_specs/report_coverage/3n-alt/l2-01.md
deleted file mode 100644
index 779220f5e3..0000000000
--- a/docs/job_specs/report_coverage/3n-alt/l2-01.md
+++ /dev/null
@@ -1,62 +0,0 @@
-# 3n-alt
-### tests 36
-### job hrs est. 4.75
-### job hrs real 4.75
-### test mins est. 7.92
-### test mins real 7.92
-## ./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/docs/job_specs/report_coverage/3n-alt/l2-02.md b/docs/job_specs/report_coverage/3n-alt/l2-02.md
deleted file mode 100644
index a423de8157..0000000000
--- a/docs/job_specs/report_coverage/3n-alt/l2-02.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# 3n-alt
-### tests 24
-### job hrs est. 3.0
-### job hrs real ?.?
-### test mins est. 7.42
-### test mins real 7.42
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./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
-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
-4c 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
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sf-10kflows
-4c 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
-4c AND imix 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
-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
-4c 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
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-iacl1sl-10kflows
-4c 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
-4c AND imix AND ndrpdr AND xl710 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/docs/job_specs/report_coverage/3n-alt/l2-03.md b/docs/job_specs/report_coverage/3n-alt/l2-03.md
deleted file mode 100644
index ba1540f987..0000000000
--- a/docs/job_specs/report_coverage/3n-alt/l2-03.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# 3n-alt
-### tests 24
-### job hrs est. 3.0
-### job hrs real ?.?
-### test mins est. 7.5
-### test mins real 7.5
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xl710
-#### dpdk-vfio-pci
-##### 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
-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
-4c 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
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sf-10kflows
-4c 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
-4c AND imix 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
-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
-4c 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
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-oacl1sl-10kflows
-4c 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
-4c AND imix AND ndrpdr AND xl710 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/docs/job_specs/report_coverage/3n-alt/l2-04.md b/docs/job_specs/report_coverage/3n-alt/l2-04.md
deleted file mode 100644
index 6ee9bf09a0..0000000000
--- a/docs/job_specs/report_coverage/3n-alt/l2-04.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# 3n-alt
-### tests 12
-### job hrs est. 1.5
-### job hrs real ?.?
-### test mins est. 7.5
-### test mins real 7.5
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
diff --git a/docs/job_specs/report_coverage/3n-alt/memif-00.md b/docs/job_specs/report_coverage/3n-alt/memif-00.md
deleted file mode 100644
index ce81452f4a..0000000000
--- a/docs/job_specs/report_coverage/3n-alt/memif-00.md
+++ /dev/null
@@ -1,75 +0,0 @@
-# 3n-alt
-### tests 48
-### job hrs est. 5.8
-### job hrs real ?.?
-### test mins est. 7.25
-### test mins real 7.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
-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
-## ./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/docs/job_specs/report_coverage/3n-alt/srv6-00.md b/docs/job_specs/report_coverage/3n-alt/srv6-00.md
deleted file mode 100644
index b30d03aef3..0000000000
--- a/docs/job_specs/report_coverage/3n-alt/srv6-00.md
+++ /dev/null
@@ -1,62 +0,0 @@
-# 3n-alt
-### tests 36
-### job hrs est. 4.9
-### job hrs real 4.9
-### test mins est. 8.17
-### test mins real 8.17
-## ./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-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
-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
-4c 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
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6ip6-ip6base-srv6enc1sid
-4c 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
-4c 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
-4c 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
-4c 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
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids
-4c 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
-4c 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
-4c 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
-4c 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
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-4c 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
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6enc2sids-nodecaps
-## ./tcp
-## ./vm_vhost
diff --git a/docs/job_specs/report_coverage/3n-alt/srv6-01.md b/docs/job_specs/report_coverage/3n-alt/srv6-01.md
deleted file mode 100644
index ba0d8cad7a..0000000000
--- a/docs/job_specs/report_coverage/3n-alt/srv6-01.md
+++ /dev/null
@@ -1,62 +0,0 @@
-# 3n-alt
-### tests 36
-### job hrs est. 5.25
-### job hrs real 5.25
-### test mins est. 8.75
-### test mins real 8.75
-## ./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-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
-4c 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
-4c 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
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-srv6proxy-dyn
-4c 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
-4c 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
-4c 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
-4c 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
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-masq
-4c 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
-4c 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
-4c 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
-4c 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
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-4c 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
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip6srhip6-ip6base-srv6proxy-stat
-## ./tcp
-## ./vm_vhost
diff --git a/docs/job_specs/report_coverage/3n-alt/vhost-00.md b/docs/job_specs/report_coverage/3n-alt/vhost-00.md
deleted file mode 100644
index 68cd4c53a2..0000000000
--- a/docs/job_specs/report_coverage/3n-alt/vhost-00.md
+++ /dev/null
@@ -1,101 +0,0 @@
-# 3n-alt
-### tests 72
-### job hrs est. 9.9
-### job hrs real 9.9
-### test mins est. 8.25
-### test mins real 8.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
-## ./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
-4c 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
-4c 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
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm
-4c 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
-4c 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
-4c 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
-4c 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
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc
-4c 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
-4c 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
-4c 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
-4c 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
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c 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
-4c 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
-4c 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
-4c 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
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c 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
-4c 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
-4c 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
-4c 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
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm
-4c 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
-4c 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
-4c 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
-4c 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
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
-4c 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
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4
diff --git a/docs/job_specs/report_coverage/3n-alt/vhost-01.md b/docs/job_specs/report_coverage/3n-alt/vhost-01.md
deleted file mode 100644
index 4d717e6326..0000000000
--- a/docs/job_specs/report_coverage/3n-alt/vhost-01.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# 3n-alt
-### tests 24
-### job hrs est. 3.5
-### job hrs real ?.?
-### test mins est. 8.75
-### test mins real 8.75
-## ./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-xl710
-#### dpdk-vfio-pci
-##### 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
-4c 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
-4c 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
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm
-4c 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
-4c 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
-4c 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
-4c 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
-2c AND 9000b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
-4c 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
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
diff --git a/docs/job_specs/report_coverage/3n-aws/vpp-00.md b/docs/job_specs/report_coverage/3n-aws/vpp-00.md
deleted file mode 100644
index 0811902e89..0000000000
--- a/docs/job_specs/report_coverage/3n-aws/vpp-00.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# 3n-aws
-## ./container_memif
-## ./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
-## ./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
-## ./vm_vhost
-## ./vts
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 4df162384f..0000000000
--- a/docs/job_specs/report_coverage/3n-dnv/crypto-00.md
+++ /dev/null
@@ -1,108 +0,0 @@
-# 3n-snr
-## ./container_memif
-## ./crypto
-### intel-x553
-#### dpdk-vfio-pci
-##### 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-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-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-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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 63d117beb7..0000000000
--- a/docs/job_specs/report_coverage/3n-dnv/crypto-01.md
+++ /dev/null
@@ -1,54 +0,0 @@
-# 3n-dnv
-## ./container_memif
-## ./crypto
-### intel-x553
-#### dpdk-vfio-pci
-##### 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-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
-## ./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/docs/job_specs/report_coverage/3n-dnv/crypto-02.md b/docs/job_specs/report_coverage/3n-dnv/crypto-02.md
deleted file mode 100644
index 763a68f34a..0000000000
--- a/docs/job_specs/report_coverage/3n-dnv/crypto-02.md
+++ /dev/null
@@ -1,126 +0,0 @@
-# 3n-dnv
-## ./container_memif
-## ./crypto
-### intel-x553
-#### dpdk-vfio-pci
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 86ef23b737..0000000000
--- a/docs/job_specs/report_coverage/3n-dnv/ip4-00.md
+++ /dev/null
@@ -1,88 +0,0 @@
-# 3n-dnv
-## ./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
-##### 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-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-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
-## ./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/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 ad64235f74..0000000000
--- a/docs/job_specs/report_coverage/3n-dnv/ip4-01.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# 3n-dnv
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 455dc376d5..0000000000
--- a/docs/job_specs/report_coverage/3n-dnv/ip4tun-00.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# 3n-dnv
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 741e3870c7..0000000000
--- a/docs/job_specs/report_coverage/3n-dnv/ip6-00.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# 3n-dnv
-## ./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
-##### 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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 2342495c1d..0000000000
--- a/docs/job_specs/report_coverage/3n-dnv/ip6-01.md
+++ /dev/null
@@ -1,78 +0,0 @@
-# 3n-dnv
-## ./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
-##### ethip6-ip6scale20k-rnd
-1c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-2c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-4c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-##### ethip6-ip6scale200k-rnd
-1c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
-2c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
-4c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
-##### ethip6-ip6scale2m-rnd
-1c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-2c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-4c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-1c AND 9000b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-1c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-## ./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/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 0790b19904..0000000000
--- a/docs/job_specs/report_coverage/3n-dnv/l2-00.md
+++ /dev/null
@@ -1,58 +0,0 @@
-# 3n-dnv
-## ./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-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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 4e1fa8358b..0000000000
--- a/docs/job_specs/report_coverage/3n-dnv/l2-01.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# 3n-dnv
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
diff --git a/docs/job_specs/report_coverage/3n-icx/crypto-00.md b/docs/job_specs/report_coverage/3n-icx/crypto-00.md
deleted file mode 100644
index 1862747954..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/crypto-00.md
+++ /dev/null
@@ -1,159 +0,0 @@
-# 3n-icx
-## ./container_memif
-## ./crypto
-### intel-xxv710
-#### avf
-##### 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-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-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-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-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-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-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-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
-## ./srv6
-## ./tcp
-## ./vm_vhost
diff --git a/docs/job_specs/report_coverage/3n-icx/crypto-01.md b/docs/job_specs/report_coverage/3n-icx/crypto-01.md
deleted file mode 100644
index 8010c6e6a4..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/crypto-01.md
+++ /dev/null
@@ -1,71 +0,0 @@
-# 3n-icx
-## ./container_memif
-## ./crypto
-### intel-xxv710
-#### avf
-##### 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-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
-#### dpdk-vfio-pci
-##### 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-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
-## ./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/docs/job_specs/report_coverage/3n-icx/crypto-02.md b/docs/job_specs/report_coverage/3n-icx/crypto-02.md
deleted file mode 100644
index 9ad08c9bd9..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/crypto-02.md
+++ /dev/null
@@ -1,63 +0,0 @@
-# 3n-icx
-## ./container_memif
-## ./crypto
-### intel-xxv710
-#### avf
-##### 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
-#### dpdk-vfio-pci
-##### 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
-## ./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/docs/job_specs/report_coverage/3n-icx/crypto-03.md b/docs/job_specs/report_coverage/3n-icx/crypto-03.md
deleted file mode 100644
index b24d34b981..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/crypto-03.md
+++ /dev/null
@@ -1,63 +0,0 @@
-# 3n-icx
-## ./container_memif
-## ./crypto
-### intel-xxv710
-#### avf
-##### 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
-#### dpdk-vfio-pci
-##### 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
-## ./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/docs/job_specs/report_coverage/3n-icx/crypto-04.md b/docs/job_specs/report_coverage/3n-icx/crypto-04.md
deleted file mode 100644
index 2eb78ea966..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/crypto-04.md
+++ /dev/null
@@ -1,235 +0,0 @@
-# 3n-icx
-## ./container_memif
-## ./crypto
-### intel-xxv710
-#### avf
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-#### dpdk-vfio-pci
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-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
-## ./srv6
-## ./tcp
-## ./vm_vhost
diff --git a/docs/job_specs/report_coverage/3n-icx/crypto-05.md b/docs/job_specs/report_coverage/3n-icx/crypto-05.md
deleted file mode 100644
index c71f373e6c..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/crypto-05.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# 3n-icx
-## ./container_memif
-## ./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
-## ./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/docs/job_specs/report_coverage/3n-icx/dpdk-00.md b/docs/job_specs/report_coverage/3n-icx/dpdk-00.md
deleted file mode 100644
index 749562124f..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/dpdk-00.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# 3n-icx
-### 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/3n-icx/ip4-00.md b/docs/job_specs/report_coverage/3n-icx/ip4-00.md
deleted file mode 100644
index 368042b97b..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/ip4-00.md
+++ /dev/null
@@ -1,99 +0,0 @@
-# 3n-icx
-## ./container_memif
-## ./crypto
-## ./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-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
-#### 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
-## ./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/docs/job_specs/report_coverage/3n-icx/ip4-01.md b/docs/job_specs/report_coverage/3n-icx/ip4-01.md
deleted file mode 100644
index 13d910e016..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/ip4-01.md
+++ /dev/null
@@ -1,79 +0,0 @@
-# 3n-icx
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
diff --git a/docs/job_specs/report_coverage/3n-icx/ip4-02.md b/docs/job_specs/report_coverage/3n-icx/ip4-02.md
deleted file mode 100644
index 42823f232a..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/ip4-02.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# 3n-icx
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
diff --git a/docs/job_specs/report_coverage/3n-icx/ip4-03.md b/docs/job_specs/report_coverage/3n-icx/ip4-03.md
deleted file mode 100644
index 1d3bc245ae..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/ip4-03.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# 3n-icx
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### 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-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
-#### dpdk-vfio-pci
-##### 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-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
-## ./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/docs/job_specs/report_coverage/3n-icx/ip4-04.md b/docs/job_specs/report_coverage/3n-icx/ip4-04.md
deleted file mode 100644
index 01f46dccef..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/ip4-04.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# 3n-icx
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
diff --git a/docs/job_specs/report_coverage/3n-icx/ip4-05.md b/docs/job_specs/report_coverage/3n-icx/ip4-05.md
deleted file mode 100644
index ad7fd34284..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/ip4-05.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# 3n-icx
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### 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-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
-#### dpdk-vfio-pci
-##### 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-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
-## ./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/docs/job_specs/report_coverage/3n-icx/ip4-06.md b/docs/job_specs/report_coverage/3n-icx/ip4-06.md
deleted file mode 100644
index d1b4394712..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/ip4-06.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# 3n-icx
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### 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-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
-#### dpdk-vfio-pci
-##### 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-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
-## ./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/docs/job_specs/report_coverage/3n-icx/ip4-07.md b/docs/job_specs/report_coverage/3n-icx/ip4-07.md
deleted file mode 100644
index 7efb11dfa3..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/ip4-07.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# 3n-icx
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
diff --git a/docs/job_specs/report_coverage/3n-icx/ip4tun-00.md b/docs/job_specs/report_coverage/3n-icx/ip4tun-00.md
deleted file mode 100644
index 18ca2f2c81..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/ip4tun-00.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# 3n-icx
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
diff --git a/docs/job_specs/report_coverage/3n-icx/ip4tun-02.md b/docs/job_specs/report_coverage/3n-icx/ip4tun-02.md
deleted file mode 100644
index e113fbd208..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/ip4tun-02.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# 3n-icx
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
diff --git a/docs/job_specs/report_coverage/3n-icx/ip6-00.md b/docs/job_specs/report_coverage/3n-icx/ip6-00.md
deleted file mode 100644
index 6bed701866..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/ip6-00.md
+++ /dev/null
@@ -1,79 +0,0 @@
-# 3n-icx
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./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
-##### 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
-## ./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/docs/job_specs/report_coverage/3n-icx/ip6-01.md b/docs/job_specs/report_coverage/3n-icx/ip6-01.md
deleted file mode 100644
index d5cd0b6b6f..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/ip6-01.md
+++ /dev/null
@@ -1,79 +0,0 @@
-# 3n-icx
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./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
-#### 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
-## ./srv6
-## ./tcp
-## ./vm_vhost
diff --git a/docs/job_specs/report_coverage/3n-icx/ip6tun-00.md b/docs/job_specs/report_coverage/3n-icx/ip6tun-00.md
deleted file mode 100644
index d0545fbf78..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/ip6tun-00.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# 3n-icx
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
diff --git a/docs/job_specs/report_coverage/3n-icx/l2-00.md b/docs/job_specs/report_coverage/3n-icx/l2-00.md
deleted file mode 100644
index 985a249dd0..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/l2-00.md
+++ /dev/null
@@ -1,99 +0,0 @@
-# 3n-icx
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./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
-## ./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/docs/job_specs/report_coverage/3n-icx/l2-01.md b/docs/job_specs/report_coverage/3n-icx/l2-01.md
deleted file mode 100644
index 2297b0b62f..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/l2-01.md
+++ /dev/null
@@ -1,79 +0,0 @@
-# 3n-icx
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./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
-## ./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/docs/job_specs/report_coverage/3n-icx/l2-02.md b/docs/job_specs/report_coverage/3n-icx/l2-02.md
deleted file mode 100644
index 002d8c839b..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/l2-02.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# 3n-icx
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xxv710
-#### avf
-##### 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-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
-#### dpdk-vfio-pci
-##### 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-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
-## ./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/docs/job_specs/report_coverage/3n-icx/l2-03.md b/docs/job_specs/report_coverage/3n-icx/l2-03.md
deleted file mode 100644
index 868cd6125e..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/l2-03.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# 3n-icx
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xxv710
-#### avf
-##### 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-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
-#### dpdk-vfio-pci
-##### 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-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
-## ./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/docs/job_specs/report_coverage/3n-icx/l2-04.md b/docs/job_specs/report_coverage/3n-icx/l2-04.md
deleted file mode 100644
index 61598c7db1..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/l2-04.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# 3n-icx
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xxv710
-#### avf
-##### 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-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
-#### dpdk-vfio-pci
-##### 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-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
-## ./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/docs/job_specs/report_coverage/3n-icx/l2-05.md b/docs/job_specs/report_coverage/3n-icx/l2-05.md
deleted file mode 100644
index f070fe399e..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/l2-05.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# 3n-icx
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xxv710
-#### avf
-##### 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-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
-#### dpdk-vfio-pci
-##### 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-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
-## ./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/docs/job_specs/report_coverage/3n-icx/l2-06.md b/docs/job_specs/report_coverage/3n-icx/l2-06.md
deleted file mode 100644
index 5898c1b429..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/l2-06.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# 3n-icx
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xxv710
-#### avf
-##### 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-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
-#### dpdk-vfio-pci
-##### 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-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
-## ./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/docs/job_specs/report_coverage/3n-icx/l2-07.md b/docs/job_specs/report_coverage/3n-icx/l2-07.md
deleted file mode 100644
index f156d8b209..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/l2-07.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# 3n-icx
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xxv710
-#### avf
-##### 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-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
-#### dpdk-vfio-pci
-##### 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-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
-## ./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/docs/job_specs/report_coverage/3n-icx/l2-08.md b/docs/job_specs/report_coverage/3n-icx/l2-08.md
deleted file mode 100644
index a9efce2216..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/l2-08.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# 3n-icx
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xxv710
-#### avf
-##### 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
-#### dpdk-vfio-pci
-##### 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
-## ./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/docs/job_specs/report_coverage/3n-icx/l2-09.md b/docs/job_specs/report_coverage/3n-icx/l2-09.md
deleted file mode 100644
index f7d917c62b..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/l2-09.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# 3n-icx
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xxv710
-#### avf
-##### 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
-#### dpdk-vfio-pci
-##### 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
-## ./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/docs/job_specs/report_coverage/3n-icx/l2-10.md b/docs/job_specs/report_coverage/3n-icx/l2-10.md
deleted file mode 100644
index 21602403ec..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/l2-10.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# 3n-icx
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xxv710
-#### avf
-##### 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
-#### dpdk-vfio-pci
-##### 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
-## ./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/docs/job_specs/report_coverage/3n-icx/memif-00.md b/docs/job_specs/report_coverage/3n-icx/memif-00.md
deleted file mode 100644
index 9dfd81fb2a..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/memif-00.md
+++ /dev/null
@@ -1,99 +0,0 @@
-# 3n-icx
-## ./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
-#### 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
-## ./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/docs/job_specs/report_coverage/3n-icx/srv6-00.md b/docs/job_specs/report_coverage/3n-icx/srv6-00.md
deleted file mode 100644
index 7d20692ec1..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/srv6-00.md
+++ /dev/null
@@ -1,79 +0,0 @@
-# 3n-icx
-## ./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-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
diff --git a/docs/job_specs/report_coverage/3n-icx/srv6-01.md b/docs/job_specs/report_coverage/3n-icx/srv6-01.md
deleted file mode 100644
index c5174fe43f..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/srv6-01.md
+++ /dev/null
@@ -1,79 +0,0 @@
-# 3n-icx
-## ./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-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
diff --git a/docs/job_specs/report_coverage/3n-icx/vhost-00.md b/docs/job_specs/report_coverage/3n-icx/vhost-00.md
deleted file mode 100644
index 3ab6b2379e..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/vhost-00.md
+++ /dev/null
@@ -1,139 +0,0 @@
-# 3n-icx
-## ./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-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
diff --git a/docs/job_specs/report_coverage/3n-icx/vhost-01.md b/docs/job_specs/report_coverage/3n-icx/vhost-01.md
deleted file mode 100644
index fffeb259f9..0000000000
--- a/docs/job_specs/report_coverage/3n-icx/vhost-01.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# 3n-icx
-## ./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-xxv710
-#### avf
-##### 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
-##### 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
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 c7266be843..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/crypto-00.md
+++ /dev/null
@@ -1,164 +0,0 @@
-# 3n-skx
-### tests 120
-### job hrs est. 9.8
-### job hrs real ?
-### test mins est. 4.92
-### test mins real 4.92
-## ./container_memif
-## ./crypto
-### intel-xxv710
-#### avf
-##### 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-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-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-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-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-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-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-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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 d434fa5b65..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/crypto-01.md
+++ /dev/null
@@ -1,76 +0,0 @@
-# 3n-skx
-### tests 44
-### job hrs est. 3.4
-### job hrs real ?
-### test mins est. 4.62
-### test mins real 4.62
-## ./container_memif
-## ./crypto
-### intel-xxv710
-#### avf
-##### 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-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
-#### dpdk-vfio-pci
-##### 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-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
-## ./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/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 b062d9e41c..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/crypto-02.md
+++ /dev/null
@@ -1,68 +0,0 @@
-# 3n-skx
-### tests 38
-### job hrs est. 5.3
-### job hrs real ?
-### test mins est. 8.35
-### test mins real 8.35
-## ./container_memif
-## ./crypto
-### intel-xxv710
-#### avf
-##### 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
-#### dpdk-vfio-pci
-##### 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
-## ./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/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 6caed417e9..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/crypto-03.md
+++ /dev/null
@@ -1,68 +0,0 @@
-# 3n-skx
-### tests 38
-### job hrs est. 3.4
-### job hrs real ?
-### test mins est. 5.39
-### test mins real 5.39
-## ./container_memif
-## ./crypto
-### intel-xxv710
-#### avf
-##### 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
-#### dpdk-vfio-pci
-##### 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
-## ./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/docs/job_specs/report_coverage/3n-skx/crypto-04.md b/docs/job_specs/report_coverage/3n-skx/crypto-04.md
deleted file mode 100644
index 482f492d64..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/crypto-04.md
+++ /dev/null
@@ -1,240 +0,0 @@
-# 3n-skx
-### tests 192
-### job hrs est. 33.6
-### job hrs real ?
-### test mins est. 10.5
-### test mins real x
-## ./container_memif
-## ./crypto
-### intel-xxv710
-#### avf
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-#### dpdk-vfio-pci
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 f470467684..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/ip4-00.md
+++ /dev/null
@@ -1,147 +0,0 @@
-# 3n-skx
-### tests 108
-### job hrs est. 5.9
-### job hrs real 5.9
-### test mins est. 3.29
-### test mins real 3.29
-## ./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
-#### 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
-## ./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/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 2f74e07f3b..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/ip4-01.md
+++ /dev/null
@@ -1,84 +0,0 @@
-# 3n-skx
-### tests 54
-### job hrs est. 4.05
-### job hrs real x.xx
-### test mins est. 4.5
-### test mins real x.x
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 e1f78e960b..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/ip4-02.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# 3n-skx
-### tests 36
-### job hrs est. 2.7
-### job hrs real ?.?
-### test mins est. 4.58
-### test mins real 4.58
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 d9ea194f57..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/ip4-03.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# 3n-skx
-### tests 36
-### job hrs est. 2.9
-### job hrs real ?.?
-### test mins est. 4.81
-### test mins real 4.81
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### 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-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
-#### dpdk-vfio-pci
-##### 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-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
-## ./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/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 72ed2a72bc..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/ip4-04.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# 3n-skx
-### tests 36
-### job hrs est. 2.8
-### job hrs real ?.?
-### test mins est. 4.64
-### test mins real 4.64
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 6075f78e23..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/ip4-05.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# 3n-skx
-### tests 36
-### job hrs est. 2.8
-### job hrs real ?.?
-### test mins est. 5.06
-### test mins real 5.06
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### 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-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
-#### dpdk-vfio-pci
-##### 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-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
-## ./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/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 b454e8fdfc..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/ip4-06.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# 3n-skx
-### tests 36
-### job hrs est. 2.8
-### job hrs real ?.?
-### test mins est. 4.67
-### test mins real 4.67
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-xxv710
-#### avf
-##### 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-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
-#### dpdk-vfio-pci
-##### 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-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
-## ./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/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 66269d0e9a..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/ip4-07.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# 3n-skx
-### tests 36
-### job hrs est. 2.8
-### job hrs real ?.?
-### test mins est. 4.64
-### test mins real 4.64
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 446f4ba419..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/ip4tun-00.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# 3n-skx
-### tests 36
-### job hrs est. 2.1
-### job hrs real 2.1
-### test mins est. 3.5
-### test mins real 3.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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 a102bd0051..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/ip4tun-02.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# 3n-skx
-### tests 36
-### job hrs est. 3.1
-### job hrs real 3.1
-### test mins est. 5.17
-### test mins real 5.17
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 c4c22854f8..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/ip6-00.md
+++ /dev/null
@@ -1,107 +0,0 @@
-# 3n-skx
-### tests 72
-### job hrs est. 4.3
-### job hrs real ?.?
-### test mins est. 3.6
-### test mins real 3.6
-## ./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
-##### 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
-## ./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/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 ac383a9311..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/ip6-01.md
+++ /dev/null
@@ -1,107 +0,0 @@
-# 3n-skx
-### tests 72
-### job hrs est. 4.2
-### job hrs real 4.2
-### test mins est. 3.5
-### test mins real 3.5
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 fb1351627d..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/ip6tun-00.md
+++ /dev/null
@@ -1,64 +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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 25a2b05cc2..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/l2-00.md
+++ /dev/null
@@ -1,167 +0,0 @@
-# 3n-skx
-### tests 126
-### job hrs est. 5.0
-### job hrs real ?.?
-### test mins est. 2.42
-### test mins real 2.42
-## ./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-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
-## ./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/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 dffa8c45bb..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/l2-01.md
+++ /dev/null
@@ -1,107 +0,0 @@
-# 3n-skx
-### tests 72
-### job hrs est. 4.65
-### job hrs real 4.65
-### test mins est. 3.88
-### test mins real 3.88
-## ./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
-## ./srv6
-## ./tcp
-## ./vm_vhost
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 805e05e95c..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/l2-02.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# 3n-skx
-### tests 36
-### job hrs est. 2.8
-### job hrs real ?.?
-### test mins est. 4.68
-### test mins real 4.68
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xxv710
-#### avf
-##### 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-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
-#### dpdk-vfio-pci
-##### 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-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
-## ./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/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 089414ef39..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/l2-03.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# 3n-skx
-### tests 36
-### job hrs est. 2.8
-### job hrs real ?.?
-### test mins est. 5.06
-### test mins real 5.06
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xxv710
-#### avf
-##### 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-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
-#### dpdk-vfio-pci
-##### 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-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
-## ./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/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 e65c3f980a..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/l2-04.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# 3n-skx
-### tests 36
-### job hrs est. 2.8
-### job hrs real ?.?
-### test mins est. 4.67
-### test mins real 4.67
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xxv710
-#### avf
-##### 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-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
-#### dpdk-vfio-pci
-##### 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-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
-## ./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/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 d6fa50da97..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/l2-05.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# 3n-skx
-### tests 36
-### job hrs est. 2.8
-### job hrs real ?.?
-### test mins est. 4.94
-### test mins real 4.94
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xxv710
-#### avf
-##### 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-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
-#### dpdk-vfio-pci
-##### 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-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
-## ./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/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 e4f28c8903..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/l2-06.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# 3n-skx
-### tests 36
-### job hrs est. 2.8
-### job hrs real ?.?
-### test mins est. 5.33
-### test mins real 5.33
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xxv710
-#### avf
-##### 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-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
-#### dpdk-vfio-pci
-##### 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-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
-## ./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/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 91e5280ea3..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/l2-07.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# 3n-skx
-### tests 36
-### job hrs est. 2.8
-### job hrs real ?.?
-### test mins est. 4.67
-### test mins real 4.67
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xxv710
-#### avf
-##### 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-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
-#### dpdk-vfio-pci
-##### 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-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
-## ./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/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 a89d816fd0..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/l2-08.md
+++ /dev/null
@@ -1,44 +0,0 @@
-# 3n-skx
-### tests 18
-### job hrs est. 1.5
-### job hrs real ?.?
-### test mins est. 4.84
-### test mins real 4.84
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xxv710
-#### avf
-##### 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
-#### dpdk-vfio-pci
-##### 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
-## ./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/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 19a4493cf7..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/l2-09.md
+++ /dev/null
@@ -1,44 +0,0 @@
-# 3n-skx
-### tests 18
-### job hrs est. 1.7
-### job hrs real ?.?
-### test mins est. 5.67
-### test mins real 5.67
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xxv710
-#### avf
-##### 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
-#### dpdk-vfio-pci
-##### 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
-## ./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/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 cad36337a1..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/l2-10.md
+++ /dev/null
@@ -1,44 +0,0 @@
-# 3n-skx
-### tests 18
-### job hrs est. 1.7
-### job hrs real ?.?
-### test mins est. 4.89
-### test mins real 4.89
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-xxv710
-#### avf
-##### 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
-#### dpdk-vfio-pci
-##### 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
-## ./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/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 bc2ffbfcba..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/memif-00.md
+++ /dev/null
@@ -1,104 +0,0 @@
-# 3n-skx
-### tests 72
-### job hrs est. 6.9
-### job hrs real ?.?
-### test mins est. 5.71
-### test mins real 5.71
-## ./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
-#### 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
-## ./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/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 c1339ec572..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/srv6-00.md
+++ /dev/null
@@ -1,84 +0,0 @@
-# 3n-skx
-### tests 54
-### job hrs est. 3.7
-### job hrs real 3.7
-### test mins est. 4.11
-### test mins real 4.11
-## ./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-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
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 97e12b63c3..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/srv6-01.md
+++ /dev/null
@@ -1,84 +0,0 @@
-# 3n-skx
-### tests 54
-### job hrs est. 2.5
-### job hrs real 2.5
-### test mins est. 4.17
-### test mins real 4.17
-## ./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-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
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 e2c39c94ea..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/vhost-00.md
+++ /dev/null
@@ -1,144 +0,0 @@
-# 3n-skx
-### tests 108
-### job hrs est. 12.3
-### job hrs real 12.3
-### test mins est. 6.83
-### test mins real 6.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
-## ./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
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 6e5e12ce17..0000000000
--- a/docs/job_specs/report_coverage/3n-skx/vhost-01.md
+++ /dev/null
@@ -1,64 +0,0 @@
-# 3n-skx
-### tests 36
-### job hrs est. 4.0
-### job hrs real ?.?
-### test mins est. 6.68
-### test mins real 6.68
-## ./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-xxv710
-#### avf
-##### 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
-##### 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
diff --git a/docs/job_specs/report_coverage/3n-snr/crypto-00.md b/docs/job_specs/report_coverage/3n-snr/crypto-00.md
deleted file mode 100644
index e6fd2c5950..0000000000
--- a/docs/job_specs/report_coverage/3n-snr/crypto-00.md
+++ /dev/null
@@ -1,108 +0,0 @@
-# 3n-snr
-## ./container_memif
-## ./crypto
-### intel-e810xxv
-#### 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
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c 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
-2c 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
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c 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
-##### ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND 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
-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
-##### ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND e810xxv 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
-## ./srv6
-## ./tcp
-## ./vm_vhost
diff --git a/docs/job_specs/report_coverage/3n-snr/crypto-01.md b/docs/job_specs/report_coverage/3n-snr/crypto-01.md
deleted file mode 100644
index bf12cb97e5..0000000000
--- a/docs/job_specs/report_coverage/3n-snr/crypto-01.md
+++ /dev/null
@@ -1,54 +0,0 @@
-# 3n-snr
-## ./container_memif
-## ./crypto
-### intel-e810xxv
-#### dpdk-vfio-pci
-##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-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
-## ./srv6
-## ./tcp
-## ./vm_vhost
diff --git a/docs/job_specs/report_coverage/3n-snr/crypto-02.md b/docs/job_specs/report_coverage/3n-snr/crypto-02.md
deleted file mode 100644
index aeb1361e73..0000000000
--- a/docs/job_specs/report_coverage/3n-snr/crypto-02.md
+++ /dev/null
@@ -1,126 +0,0 @@
-# 3n-snr
-## ./container_memif
-## ./crypto
-### intel-e810xxv
-#### dpdk-vfio-pci
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128gcm
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes128gcm
-##### ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec2tnlswasync-scheduler-ip4base-int-aes256gcm
-##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes128gcm
-##### ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlswasync-scheduler-ip4base-int-aes256gcm
-##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm
-##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-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
-## ./srv6
-## ./tcp
-## ./vm_vhost
diff --git a/docs/job_specs/report_coverage/3n-snr/dpdk-00.md b/docs/job_specs/report_coverage/3n-snr/dpdk-00.md
deleted file mode 120000
index 5e176c7048..0000000000
--- a/docs/job_specs/report_coverage/3n-snr/dpdk-00.md
+++ /dev/null
@@ -1 +0,0 @@
-../../report_iterative/3n-snr/dpdk-mlr-00.md \ No newline at end of file
diff --git a/docs/job_specs/report_coverage/3n-snr/ip4-00.md b/docs/job_specs/report_coverage/3n-snr/ip4-00.md
deleted file mode 100644
index 295fb86ccd..0000000000
--- a/docs/job_specs/report_coverage/3n-snr/ip4-00.md
+++ /dev/null
@@ -1,88 +0,0 @@
-# 3n-snr
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-e810xxv
-#### 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
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale20k
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale20k
-1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale20k
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale20k
-##### ethip4-ip4scale200k
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale200k
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale200k
-1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale200k
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale200k
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale200k
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale200k
-##### ethip4-ip4scale2m
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale2m
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale2m
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale2m
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale2m
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-##### ethip4-ip4scale200k-rnd
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale200k-rnd
-##### ethip4-ip4scale2m-rnd
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale2m-rnd
-4c AND imix AND ndrpdr AND e810xxv 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/docs/job_specs/report_coverage/3n-snr/ip4-01.md b/docs/job_specs/report_coverage/3n-snr/ip4-01.md
deleted file mode 100644
index b003389bc9..0000000000
--- a/docs/job_specs/report_coverage/3n-snr/ip4-01.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# 3n-snr
-## ./container_memif
-## ./crypto
-## ./ip4
-### intel-e810xxv
-#### dpdk-vfio-pci
-##### ethip4-ip4base-adlalwlistbase
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-adlalwlistbase
-##### ethip4-ip4base-iacldstbase
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-iacldstbase
-##### ethip4-ip4base-ipolicemarkbase
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4base-ipolicemarkbase
-4c AND imix AND ndrpdr AND e810xxv 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/docs/job_specs/report_coverage/3n-snr/ip4tun-00.md b/docs/job_specs/report_coverage/3n-snr/ip4tun-00.md
deleted file mode 100644
index 8944e2b6cb..0000000000
--- a/docs/job_specs/report_coverage/3n-snr/ip4tun-00.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# 3n-snr
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-### intel-e810xxv
-#### 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
-## ./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/docs/job_specs/report_coverage/3n-snr/ip6-00.md b/docs/job_specs/report_coverage/3n-snr/ip6-00.md
deleted file mode 100644
index 91309bd1fd..0000000000
--- a/docs/job_specs/report_coverage/3n-snr/ip6-00.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# 3n-snr
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-### intel-e810xxv
-#### 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
-##### ethip6-ip6base-adlalwlistbase
-1c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-4c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base-adlalwlistbase
-##### ethip6-ip6base-iacldstbase
-1c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-4c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6base-iacldstbase
-4c AND imix AND ndrpdr AND e810xxv 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/docs/job_specs/report_coverage/3n-snr/ip6-01.md b/docs/job_specs/report_coverage/3n-snr/ip6-01.md
deleted file mode 100644
index 4fd2f47432..0000000000
--- a/docs/job_specs/report_coverage/3n-snr/ip6-01.md
+++ /dev/null
@@ -1,78 +0,0 @@
-# 3n-snr
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-### intel-e810xxv
-#### dpdk-vfio-pci
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale20k
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale20k
-1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale20k
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale200k
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale200k
-1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale200k
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale200k
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale200k
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale200k
-##### ethip6-ip6scale2m
-1c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale2m
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale2m
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale2m
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale2m
-##### ethip6-ip6scale20k-rnd
-1c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-2c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-4c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-##### ethip6-ip6scale200k-rnd
-1c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
-2c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
-4c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
-1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale200k-rnd
-##### ethip6-ip6scale2m-rnd
-1c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-2c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-4c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale2m-rnd
-## ./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/docs/job_specs/report_coverage/3n-snr/l2-00.md b/docs/job_specs/report_coverage/3n-snr/l2-00.md
deleted file mode 100644
index d69fe15f34..0000000000
--- a/docs/job_specs/report_coverage/3n-snr/l2-00.md
+++ /dev/null
@@ -1,58 +0,0 @@
-# 3n-snr
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-e810xxv
-#### 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
-## ./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/docs/job_specs/report_coverage/3n-snr/l2-01.md b/docs/job_specs/report_coverage/3n-snr/l2-01.md
deleted file mode 100644
index 902280de13..0000000000
--- a/docs/job_specs/report_coverage/3n-snr/l2-01.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# 3n-snr
-## ./container_memif
-## ./crypto
-## ./ip4
-## ./ip4_tunnels
-## ./ip6
-## ./ip6_tunnels
-## ./l2
-### intel-e810xxv
-#### dpdk-vfio-pci
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale100kmaclrn
-##### eth-l2bdscale1mmaclrn
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND 9000b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale1mmaclrn
-4c AND imix AND ndrpdr AND e810xxv 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/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 a264a02fdf..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/ip4-00.md
+++ /dev/null
@@ -1,75 +0,0 @@
-# 3n-tsh
-### tests 48
-### job hrs est. 6.4
-### job hrs real ?.?
-### test mins est. 8
-### test mins real 8
-## ./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/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 0534e6d335..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/ip4-01.md
+++ /dev/null
@@ -1,62 +0,0 @@
-# 3n-tsh
-### tests 36
-### job hrs est. 4.4
-### job hrs real 4.4
-### test mins est. 7.33
-### test mins real 7.33
-## ./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/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 e6b01edfcb..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/ip4-02.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# 3n-tsh
-### tests 24
-### job hrs est. 3.0
-### job hrs real ?.?
-### test mins est. 7.55
-### test mins real 7.55
-## ./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/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 efa7747d46..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/ip4-03.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# 3n-tsh
-### tests 24
-### job hrs est. 3.0
-### job hrs real ?.?
-### test mins est. 7.29
-### test mins real 7.29
-## ./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/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 089d6940d6..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/ip4tun-00.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# 3n-tsh
-### tests 24
-### job hrs est. 2.9
-### job hrs real 2.9
-### test mins est. 7.25
-### test mins real 7.25
-## ./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/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 a89c7701ed..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/ip6-00.md
+++ /dev/null
@@ -1,62 +0,0 @@
-# 3n-tsh
-### tests 36
-### job hrs est. 4.7
-### job hrs real ?.?
-### test mins est. 7.81
-### test mins real 7.81
-## ./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/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 7f8f586858..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/ip6-01.md
+++ /dev/null
@@ -1,62 +0,0 @@
-# 3n-tsh
-### tests 36
-### job hrs est. 5.1
-### job hrs real 5.1
-### test mins est. 8.5
-### test mins real 8.5
-## ./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/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 9d989292bb..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/l2-00.md
+++ /dev/null
@@ -1,75 +0,0 @@
-# 3n-tsh
-### tests 48
-### job hrs est. 5.8
-### job hrs real ?.?
-### test mins est. 7.2
-### test mins real 7.2
-## ./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/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 1d68ffdaeb..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/l2-01.md
+++ /dev/null
@@ -1,62 +0,0 @@
-# 3n-tsh
-### tests 36
-### job hrs est. 4.75
-### job hrs real 4.75
-### test mins est. 7.92
-### test mins real 7.92
-## ./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/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 9dd67f4820..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/l2-02.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# 3n-tsh
-### tests 24
-### job hrs est. 3.0
-### job hrs real ?.?
-### test mins est. 7.42
-### test mins real 7.42
-## ./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/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 4b65c45291..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/l2-03.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# 3n-tsh
-### tests 24
-### job hrs est. 3.0
-### job hrs real ?.?
-### test mins est. 7.5
-### test mins real 7.5
-## ./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/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 e03ab2a30a..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/l2-04.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# 3n-tsh
-### tests 12
-### job hrs est. 1.5
-### job hrs real ?.?
-### test mins est. 7.5
-### test mins real 7.5
-## ./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/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 6610d93a61..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/memif-00.md
+++ /dev/null
@@ -1,75 +0,0 @@
-# 3n-tsh
-### tests 48
-### job hrs est. 5.8
-### job hrs real ?.?
-### test mins est. 7.25
-### test mins real 7.25
-## ./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/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 9fc3e4537b..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/srv6-00.md
+++ /dev/null
@@ -1,62 +0,0 @@
-# 3n-tsh
-### tests 36
-### job hrs est. 4.9
-### job hrs real 4.9
-### test mins est. 8.17
-### test mins real 8.17
-## ./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/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 50b1ae3b4d..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/srv6-01.md
+++ /dev/null
@@ -1,62 +0,0 @@
-# 3n-tsh
-### tests 36
-### job hrs est. 5.25
-### job hrs real 5.25
-### test mins est. 8.75
-### test mins real 8.75
-## ./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/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 801b9a8513..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/vhost-00.md
+++ /dev/null
@@ -1,101 +0,0 @@
-# 3n-tsh
-### tests 72
-### job hrs est. 9.9
-### job hrs real 9.9
-### test mins est. 8.25
-### test mins real 8.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
-## ./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/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 46450d2553..0000000000
--- a/docs/job_specs/report_coverage/3n-tsh/vhost-01.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# 3n-tsh
-### tests 24
-### job hrs est. 3.5
-### job hrs real ?.?
-### test mins est. 8.75
-### test mins real 8.75
-## ./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/docs/job_specs/report_iterative/2n-aws/vpp-mlr-00.md b/docs/job_specs/report_iterative/2n-aws/vpp-mlr-00.md
deleted file mode 100644
index 3ec44a4e7a..0000000000
--- a/docs/job_specs/report_iterative/2n-aws/vpp-mlr-00.md
+++ /dev/null
@@ -1,52 +0,0 @@
-# 2n-aws
-## ./container_memif
-## ./crypto
-## ./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
-## ./ip4_tunnels
-## ./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
-## ./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
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_iterative/2n-aws/vpp-mrr-00.md b/docs/job_specs/report_iterative/2n-aws/vpp-mrr-00.md
deleted file mode 100644
index e45dadcae2..0000000000
--- a/docs/job_specs/report_iterative/2n-aws/vpp-mrr-00.md
+++ /dev/null
@@ -1,52 +0,0 @@
-# 2n-aws
-## ./container_memif
-## ./crypto
-## ./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
-## ./ip4_tunnels
-## ./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
-## ./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
-## ./vm_vhost
-## ./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 f322eccfd0..0000000000
--- a/docs/job_specs/report_iterative/2n-clx/dpdk-mlr-00.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# 2n-clx
-### 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 84fce25ecd..0000000000
--- a/docs/job_specs/report_iterative/2n-clx/dpdk-mrr-00.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# 2n-clx
-### 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 65a24c8797..0000000000
--- a/docs/job_specs/report_iterative/2n-clx/nfv-density-mlr-00.md
+++ /dev/null
@@ -1,138 +0,0 @@
-# 2n-clx
-## ./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 0eeba4d2cd..0000000000
--- a/docs/job_specs/report_iterative/2n-clx/nfv-density-mrr-00.md
+++ /dev/null
@@ -1,138 +0,0 @@
-# 2n-clx
-## ./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 9807db6081..0000000000
--- a/docs/job_specs/report_iterative/2n-clx/reconf-00.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# 2n-clx
-## ./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 4b0167ebe6..0000000000
--- a/docs/job_specs/report_iterative/2n-clx/soak-00.md
+++ /dev/null
@@ -1,58 +0,0 @@
-# 2n-clx
-## ./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-gso-mrr-00.md b/docs/job_specs/report_iterative/2n-clx/vpp-gso-mrr-00.md
deleted file mode 100644
index 0945486778..0000000000
--- a/docs/job_specs/report_iterative/2n-clx/vpp-gso-mrr-00.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# 2n-clx
-## ./gso
-### intel-x710
-#### drv_tap
-##### ethip4-ip4base-2tap-gso
-1c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
-2c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
-4c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
-#### drv_tap
-##### ethip4-ip4base-2tap
-1c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-iperf3
-2c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-iperf3
-4c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-iperf3
-#### drv_vhost
-##### ethip4-ip4base-2vhost-gso
-1c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
-2c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
-4c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
-#### drv_vhost
-##### ethip4-ip4base-2vhost
-1c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
-2c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
-4c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
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 da051efaac..0000000000
--- a/docs/job_specs/report_iterative/2n-clx/vpp-mlr-00.md
+++ /dev/null
@@ -1,663 +0,0 @@
-# 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
-##### 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
-### 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
-## ./crypto
-## ./hoststack
-## ./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
-#### 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
-#### af_xdp
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k-rnd
-#### 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
-##### 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-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-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-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-h1024-p63-s64512-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
-##### ethip4udp-nat44ed-h16384-p63-s1032192-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
-##### ethip4udp-nat44ed-h65536-p63-s4128768-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
-##### ethip4udp-ip4base-h1024-p63-s64512-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-##### ethip4udp-ip4base-h16384-p63-s1032192-cps
-1c 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
-##### ethip4udp-ip4base-h1024-p63-s64512-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-tput
-##### ethip4udp-ip4base-h16384-p63-s1032192-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-tput
-##### ethip4udp-ip4base-h65536-p63-s4128768-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
-##### 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-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-h1024-p63-s64512-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-##### ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-##### ethip4tcp-ip4base-h1024-p63-s64512-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-##### ethip4tcp-ip4base-h16384-p63-s1032192-cps
-1c 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
-##### ethip4tcp-ip4base-h1024-p63-s64512-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-tput
-##### ethip4tcp-ip4base-h16384-p63-s1032192-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
-##### ethip4tcp-ip4base-h65536-p63-s4128768-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
-#### 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
-##### 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
-### 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
-##### 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
-##### 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
-##### 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
-#### 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
-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
-##### 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-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
-#### 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
-#### af_xdp
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k
-##### ethip6-ip6scale20k-rnd
-1c AND 78b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k-rnd
-2c AND 78b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k-rnd
-4c AND 78b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k-rnd
-#### 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
-##### 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-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
-##### 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
-##### 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
-#### 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
-### 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
-##### 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
-##### 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
-#### 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
-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
-##### 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
-## ./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
-##### 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
-##### 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
-### 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-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
-##### 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
-#### 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-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
-## ./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
-##### 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
-### 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
-#### 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/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 6d3acaa7b1..0000000000
--- a/docs/job_specs/report_iterative/2n-clx/vpp-mrr-00.md
+++ /dev/null
@@ -1,663 +0,0 @@
-# 2n-clx
-## ./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
-### 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
-## ./crypto
-## ./hoststack
-## ./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
-#### 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
-#### af_xdp
-##### ethip4-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_af_xdp AND ethip4-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_af_xdp AND ethip4-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_af_xdp AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND mrr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k
-2c AND 64b AND mrr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k
-4c AND 64b AND mrr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND mrr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k-rnd
-2c AND 64b AND mrr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k-rnd
-4c AND 64b AND mrr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k-rnd
-#### 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
-##### 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-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-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-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-h1024-p63-s64512-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
-2c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
-4c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
-##### ethip4udp-nat44ed-h16384-p63-s1032192-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
-2c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
-4c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
-##### ethip4udp-nat44ed-h65536-p63-s4128768-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
-2c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
-4c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
-##### ethip4udp-ip4base-h1024-p63-s64512-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-##### ethip4udp-ip4base-h16384-p63-s1032192-cps
-1c 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
-##### ethip4udp-ip4base-h1024-p63-s64512-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-tput
-##### ethip4udp-ip4base-h16384-p63-s1032192-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-tput
-##### ethip4udp-ip4base-h65536-p63-s4128768-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
-##### 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-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-h1024-p63-s64512-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-2c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-4c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-##### ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-2c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-4c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-2c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-4c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-##### ethip4tcp-ip4base-h1024-p63-s64512-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-##### ethip4tcp-ip4base-h16384-p63-s1032192-cps
-1c 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
-##### ethip4tcp-ip4base-h1024-p63-s64512-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-tput
-##### ethip4tcp-ip4base-h16384-p63-s1032192-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
-##### ethip4tcp-ip4base-h65536-p63-s4128768-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
-#### 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
-##### 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
-### 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
-##### ethip4-ip4scale20k
-1c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale20k
-2c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale20k
-4c AND 64b AND mrr AND e810cq AND drv_avf AND ethip4-ip4scale20k
-##### 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
-##### 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
-#### 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
-1c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 64b AND mrr AND e810cq AND drv_vfio_pci AND ethip4-ip4scale20k
-##### 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-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
-#### 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
-#### af_xdp
-##### ethip6-ip6base
-1c AND 78b AND mrr AND xxv710 AND drv_af_xdp AND ethip6-ip6base
-2c AND 78b AND mrr AND xxv710 AND drv_af_xdp AND ethip6-ip6base
-4c AND 78b AND mrr AND xxv710 AND drv_af_xdp AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND mrr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k
-2c AND 78b AND mrr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k
-4c AND 78b AND mrr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k
-##### ethip6-ip6scale20k-rnd
-1c AND 78b AND mrr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k-rnd
-2c AND 78b AND mrr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k-rnd
-4c AND 78b AND mrr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k-rnd
-#### 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
-##### 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-ip6scale200k-rnd
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale200k-rnd
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale200k-rnd
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale200k-rnd
-##### 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
-##### ethip6-ip6scale2m-rnd
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale2m-rnd
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale2m-rnd
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale2m-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
-### 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
-##### ethip6-ip6scale20k
-1c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6scale20k
-2c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6scale20k
-4c AND 78b AND mrr AND e810cq AND drv_avf AND ethip6-ip6scale20k
-##### 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
-#### 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
-1c AND 78b AND mrr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 78b AND mrr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 78b AND mrr AND e810cq AND drv_vfio_pci AND ethip6-ip6scale20k
-##### 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
-## ./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
-##### 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
-##### 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
-### 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-l2bdscale100kmaclrn
-1c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
-2c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
-4c AND 64b AND mrr AND e810cq AND drv_avf AND eth-l2bdscale100kmaclrn
-##### 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
-#### 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-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
-## ./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
-##### 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
-### 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
-#### 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/docs/job_specs/report_iterative/2n-clx/vsap-00.md b/docs/job_specs/report_iterative/2n-clx/vsap-00.md
deleted file mode 100644
index f5916458b2..0000000000
--- a/docs/job_specs/report_iterative/2n-clx/vsap-00.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# 2n-clx
-## ./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
-### mellanox-cx556a
-#### dpdk-vfio-pci
-##### eth-ip4tcphttp-ldpreload-nginx-1_15_0
-1c AND 0b AND cps AND cx556a AND drv_rdma_core AND eth-ip4tcphttp-ldpreload-nginx-1_15_0
-1c AND 64b AND cps AND cx556a AND drv_rdma_core AND eth-ip4tcphttp-ldpreload-nginx-1_15_0
-1c AND 1024b AND cps AND cx556a AND drv_rdma_core AND eth-ip4tcphttp-ldpreload-nginx-1_15_0
-1c AND 2048b AND cps AND cx556a AND drv_rdma_core AND eth-ip4tcphttp-ldpreload-nginx-1_15_0
-1c AND 0b AND rps AND cx556a AND drv_rdma_core AND eth-ip4tcphttp-ldpreload-nginx-1_15_0
-1c AND 64b AND rps AND cx556a AND drv_rdma_core AND eth-ip4tcphttp-ldpreload-nginx-1_15_0
-1c AND 1024b AND rps AND cx556a AND drv_rdma_core AND eth-ip4tcphttp-ldpreload-nginx-1_15_0
-1c AND 2048b AND rps AND cx556a AND drv_rdma_core AND eth-ip4tcphttp-ldpreload-nginx-1_15_0
-### intel-e810cq
-#### dpdk-vfio-pci
-##### eth-ip4tcphttp-ldpreload-nginx-1_15_0
-1c AND 0b AND cps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_15_0
-1c AND 64b AND cps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_15_0
-1c AND 1024b AND cps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_15_0
-1c AND 2048b AND cps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_15_0
-1c AND 0b AND rps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_15_0
-1c AND 64b AND rps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_15_0
-1c AND 1024b AND rps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_15_0
-1c AND 2048b AND rps AND e810cq AND drv_vfio_pci AND eth-ip4tcphttp-ldpreload-nginx-1_15_0
-## ./vm_vhost
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 9b2c1d1538..0000000000
--- a/docs/job_specs/report_iterative/2n-dnv/dpdk-mlr-00.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# 2n-dnv
-### 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 55b79e3712..0000000000
--- a/docs/job_specs/report_iterative/2n-dnv/dpdk-mrr-00.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# 2n-dnv
-### 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 0fc8bf4f91..0000000000
--- a/docs/job_specs/report_iterative/2n-dnv/vpp-mlr-00.md
+++ /dev/null
@@ -1,94 +0,0 @@
-# 2n-dnv
-## ./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
-##### 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
-##### ethip4tcp-ip4base-h1024-p63-s64512-tput
-1c AND 100b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-tput
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-tput
-##### ethip4tcp-ip4base-h16384-p63-s1032192-tput
-1c AND 100b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
-##### ethip4tcp-ip4base-h65536-p63-s4128768-tput
-1c AND 100b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
-##### ethip4tcp-nat44ed-h1024-p63-s64512-tput
-1c AND 100b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-2c AND 100b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-4c AND 100b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-4c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-##### ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-1c AND 100b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-2c AND 100b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-4c AND 100b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-4c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-1c AND 100b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-2c AND 100b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-4c AND 100b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-1c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-4c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-## ./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
-##### ethip6-ip6scale20k-rnd
-1c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-2c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-4c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-## ./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 a5bb2297d5..0000000000
--- a/docs/job_specs/report_iterative/2n-dnv/vpp-mrr-00.md
+++ /dev/null
@@ -1,94 +0,0 @@
-# 2n-dnv
-## ./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
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND mrr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-2c AND 64b AND mrr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-4c AND 64b AND mrr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-##### ethip4tcp-ip4base-h1024-p63-s64512-tput
-1c AND 100b AND mrr AND x553 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-tput
-1c AND 1518b AND mrr AND x553 AND drv_vfio_pci AND ethip4tcp-ip4base-h1024-p63-s64512-tput
-##### ethip4tcp-ip4base-h16384-p63-s1032192-tput
-1c AND 100b AND mrr AND x553 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
-1c AND 1518b AND mrr AND x553 AND drv_vfio_pci AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
-##### ethip4tcp-ip4base-h65536-p63-s4128768-tput
-1c AND 100b AND mrr AND x553 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
-1c AND 1518b AND mrr AND x553 AND drv_vfio_pci AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
-##### ethip4tcp-nat44ed-h1024-p63-s64512-tput
-1c AND 100b AND mrr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-2c AND 100b AND mrr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-4c AND 100b AND mrr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-1c AND 1518b AND mrr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-2c AND 1518b AND mrr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-4c AND 1518b AND mrr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-##### ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-1c AND 100b AND mrr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-2c AND 100b AND mrr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-4c AND 100b AND mrr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-1c AND 1518b AND mrr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-2c AND 1518b AND mrr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-4c AND 1518b AND mrr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-1c AND 100b AND mrr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-2c AND 100b AND mrr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-4c AND 100b AND mrr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-1c AND 1518b AND mrr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-2c AND 1518b AND mrr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-4c AND 1518b AND mrr AND x553 AND drv_vfio_pci AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-## ./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
-##### ethip6-ip6scale20k-rnd
-1c AND 78b AND mrr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-2c AND 78b AND mrr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-4c AND 78b AND mrr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-## ./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-icx/dpdk-mlr-00.md b/docs/job_specs/report_iterative/2n-icx/dpdk-mlr-00.md
deleted file mode 100644
index c2c9d7b7c9..0000000000
--- a/docs/job_specs/report_iterative/2n-icx/dpdk-mlr-00.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# 2n-icx
-### 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-icx/dpdk-mrr-00.md b/docs/job_specs/report_iterative/2n-icx/dpdk-mrr-00.md
deleted file mode 100644
index fa1cc0012b..0000000000
--- a/docs/job_specs/report_iterative/2n-icx/dpdk-mrr-00.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# 2n-icx
-### 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-icx/nfv-density-mlr-00.md b/docs/job_specs/report_iterative/2n-icx/nfv-density-mlr-00.md
deleted file mode 100644
index 2d70d5f446..0000000000
--- a/docs/job_specs/report_iterative/2n-icx/nfv-density-mlr-00.md
+++ /dev/null
@@ -1,138 +0,0 @@
-# 2n-icx
-## ./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-icx/nfv-density-mrr-00.md b/docs/job_specs/report_iterative/2n-icx/nfv-density-mrr-00.md
deleted file mode 100644
index 1041a4f676..0000000000
--- a/docs/job_specs/report_iterative/2n-icx/nfv-density-mrr-00.md
+++ /dev/null
@@ -1,138 +0,0 @@
-# 2n-icx
-## ./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-icx/reconf-00.md b/docs/job_specs/report_iterative/2n-icx/reconf-00.md
deleted file mode 100644
index 9d045cf9ed..0000000000
--- a/docs/job_specs/report_iterative/2n-icx/reconf-00.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# 2n-icx
-## ./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-icx/soak-00.md b/docs/job_specs/report_iterative/2n-icx/soak-00.md
deleted file mode 100644
index 74f05cd6e5..0000000000
--- a/docs/job_specs/report_iterative/2n-icx/soak-00.md
+++ /dev/null
@@ -1,58 +0,0 @@
-# 2n-icx
-## ./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-icx/vpp-gso-mrr-00.md b/docs/job_specs/report_iterative/2n-icx/vpp-gso-mrr-00.md
deleted file mode 100644
index 79307b3a2f..0000000000
--- a/docs/job_specs/report_iterative/2n-icx/vpp-gso-mrr-00.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# 2n-icx
-## ./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/docs/job_specs/report_iterative/2n-icx/vpp-mlr-00.md b/docs/job_specs/report_iterative/2n-icx/vpp-mlr-00.md
deleted file mode 100644
index ba67f525c8..0000000000
--- a/docs/job_specs/report_iterative/2n-icx/vpp-mlr-00.md
+++ /dev/null
@@ -1,365 +0,0 @@
-# 2n-icx
-## ./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
-## ./crypto
-## ./hoststack
-## ./ip4
-### intel-xxv710
-#### af_xdp
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k-rnd
-#### 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
-##### 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-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-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-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-h1024-p63-s64512-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
-##### ethip4udp-nat44ed-h16384-p63-s1032192-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
-##### ethip4udp-nat44ed-h65536-p63-s4128768-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
-##### ethip4udp-ip4base-h1024-p63-s64512-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-##### ethip4udp-ip4base-h16384-p63-s1032192-cps
-1c 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
-##### ethip4udp-ip4base-h1024-p63-s64512-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-tput
-##### ethip4udp-ip4base-h16384-p63-s1032192-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-tput
-##### ethip4udp-ip4base-h65536-p63-s4128768-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
-##### 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-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-h1024-p63-s64512-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-##### ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-##### ethip4tcp-ip4base-h1024-p63-s64512-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-##### ethip4tcp-ip4base-h16384-p63-s1032192-cps
-1c 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
-##### ethip4tcp-ip4base-h1024-p63-s64512-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-tput
-##### ethip4tcp-ip4base-h16384-p63-s1032192-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
-##### ethip4tcp-ip4base-h65536-p63-s4128768-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
-#### 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
-## ./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
-#### af_xdp
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k
-##### ethip6-ip6scale20k-rnd
-1c AND 78b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k-rnd
-2c AND 78b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k-rnd
-4c AND 78b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k-rnd
-#### 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
-##### 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-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
-##### 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
-##### 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
-#### 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
-## ./ip6_tunnels
-## ./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
-##### 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
-##### 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
-##### 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
diff --git a/docs/job_specs/report_iterative/2n-icx/vpp-mrr-00.md b/docs/job_specs/report_iterative/2n-icx/vpp-mrr-00.md
deleted file mode 100644
index f6a927a20f..0000000000
--- a/docs/job_specs/report_iterative/2n-icx/vpp-mrr-00.md
+++ /dev/null
@@ -1,365 +0,0 @@
-# 2n-icx
-## ./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
-## ./crypto
-## ./hoststack
-## ./ip4
-### intel-xxv710
-#### af_xdp
-##### ethip4-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_af_xdp AND ethip4-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_af_xdp AND ethip4-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_af_xdp AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND mrr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k
-2c AND 64b AND mrr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k
-4c AND 64b AND mrr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND mrr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k-rnd
-2c AND 64b AND mrr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k-rnd
-4c AND 64b AND mrr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k-rnd
-#### 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
-##### 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-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-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-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-h1024-p63-s64512-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
-2c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
-4c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
-##### ethip4udp-nat44ed-h16384-p63-s1032192-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
-2c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
-4c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
-##### ethip4udp-nat44ed-h65536-p63-s4128768-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
-2c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
-4c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
-##### ethip4udp-ip4base-h1024-p63-s64512-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-##### ethip4udp-ip4base-h16384-p63-s1032192-cps
-1c 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
-##### ethip4udp-ip4base-h1024-p63-s64512-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-tput
-##### ethip4udp-ip4base-h16384-p63-s1032192-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-tput
-##### ethip4udp-ip4base-h65536-p63-s4128768-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
-##### 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-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-h1024-p63-s64512-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-2c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-4c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-##### ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-2c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-4c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-2c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-4c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-##### ethip4tcp-ip4base-h1024-p63-s64512-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-##### ethip4tcp-ip4base-h16384-p63-s1032192-cps
-1c 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
-##### ethip4tcp-ip4base-h1024-p63-s64512-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-tput
-##### ethip4tcp-ip4base-h16384-p63-s1032192-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
-##### ethip4tcp-ip4base-h65536-p63-s4128768-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
-#### 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
-## ./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
-#### af_xdp
-##### ethip6-ip6base
-1c AND 78b AND mrr AND xxv710 AND drv_af_xdp AND ethip6-ip6base
-2c AND 78b AND mrr AND xxv710 AND drv_af_xdp AND ethip6-ip6base
-4c AND 78b AND mrr AND xxv710 AND drv_af_xdp AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND mrr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k
-2c AND 78b AND mrr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k
-4c AND 78b AND mrr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k
-##### ethip6-ip6scale20k-rnd
-1c AND 78b AND mrr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k-rnd
-2c AND 78b AND mrr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k-rnd
-4c AND 78b AND mrr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k-rnd
-#### 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
-##### 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-ip6scale200k-rnd
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale200k-rnd
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale200k-rnd
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale200k-rnd
-##### 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
-##### ethip6-ip6scale2m-rnd
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale2m-rnd
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale2m-rnd
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale2m-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
-## ./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
-##### 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
-##### 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
-##### 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
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 ff5c23b42d..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. 7.95
-### job hrs real 7.95
-### test mins est. 5.68
-### test mins real 5.68
-## ./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 5fe8f92880..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. 3
-### job hrs real 3
-### test mins est. 2.14
-### test mins real 2.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-skx/reconf-00.md b/docs/job_specs/report_iterative/2n-skx/reconf-00.md
deleted file mode 100644
index a788a2aa5d..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. 1.2
-### job hrs real 1.2
-### test mins est. 4
-### test mins real 4
-## ./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/trex-mlr-00.md b/docs/job_specs/report_iterative/2n-skx/trex-mlr-00.md
deleted file mode 100644
index ebe63a35f2..0000000000
--- a/docs/job_specs/report_iterative/2n-skx/trex-mlr-00.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# 2n-skx
-### tests 13
-## ./ip4
-##### ethip4-ip4base-tg
-- AND 64b AND ndrpdr AND x710 AND - AND ethip4-ip4base-tg
-##### ethip4-ip4scale2m-tg
-- AND 64b AND ndrpdr AND x710 AND - AND ethip4-ip4scale2m-tg
-##### ethip4tcp-ip4base-h1024-p63-s64512-cps-tg
-- AND 64b AND ndrpdr AND x710 AND - AND ethip4tcp-ip4base-h1024-p63-s64512-cps-tg
-##### ethip4tcp-ip4base-h1024-p63-s64512-tput-tg
-- AND 100b AND ndrpdr AND x710 AND - AND ethip4tcp-ip4base-h1024-p63-s64512-tput-tg
-##### ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg
-- AND 64b AND ndrpdr AND x710 AND - AND ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg
-##### ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg
-- AND 100b AND ndrpdr AND x710 AND - AND ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg
-##### ethip4udp-ip4base-h1024-p63-s64512-cps-tg
-- AND 64b AND ndrpdr AND x710 AND - AND ethip4udp-ip4base-h1024-p63-s64512-cps-tg
-##### ethip4udp-ip4base-h1024-p63-s64512-tput-tg
-- AND 100b AND ndrpdr AND x710 AND - AND ethip4udp-ip4base-h1024-p63-s64512-tput-tg
-##### ethip4udp-ip4base-h262144-p63-s16515072-cps-tg
-- AND 64b AND ndrpdr AND x710 AND - AND ethip4udp-ip4base-h262144-p63-s16515072-cps-tg
-##### ethip4udp-ip4base-h262144-p63-s16515072-tput-tg
-- AND 100b AND ndrpdr AND x710 AND - AND ethip4udp-ip4base-h262144-p63-s16515072-tput-tg
-## ./ip6
-##### ethip6-ip6base-tg
-- AND 78b AND ndrpdr AND x710 AND - AND ethip6-ip6base-tg
-##### ethip6-ip6scale2m-tg
-- AND 78b AND ndrpdr AND x710 AND - AND ethip6-ip6scale2m-tg
-## ./l2
-##### eth-l2bdscale1mmaclrn-tg
-- AND 64b AND ndrpdr AND x710 AND - AND eth-l2bdscale1mmaclrn-tg
diff --git a/docs/job_specs/report_iterative/2n-skx/trex-mrr-00.md b/docs/job_specs/report_iterative/2n-skx/trex-mrr-00.md
deleted file mode 100644
index d5f7167198..0000000000
--- a/docs/job_specs/report_iterative/2n-skx/trex-mrr-00.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# 2n-skx
-### tests 13
-## ./ip4
-##### ethip4-ip4base-tg
-- AND 64b AND mrr AND x710 AND - AND ethip4-ip4base-tg
-##### ethip4-ip4scale2m-tg
-- AND 64b AND mrr AND x710 AND - AND ethip4-ip4scale2m-tg
-##### ethip4tcp-ip4base-h1024-p63-s64512-cps-tg
-- AND 64b AND mrr AND x710 AND - AND ethip4tcp-ip4base-h1024-p63-s64512-cps-tg
-##### ethip4tcp-ip4base-h1024-p63-s64512-tput-tg
-- AND 100b AND mrr AND x710 AND - AND ethip4tcp-ip4base-h1024-p63-s64512-tput-tg
-##### ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg
-- AND 64b AND mrr AND x710 AND - AND ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg
-##### ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg
-- AND 100b AND mrr AND x710 AND - AND ethip4tcp-ip4base-h262144-p63-s16515072-tput-tg
-##### ethip4udp-ip4base-h1024-p63-s64512-cps-tg
-- AND 64b AND mrr AND x710 AND - AND ethip4udp-ip4base-h1024-p63-s64512-cps-tg
-##### ethip4udp-ip4base-h1024-p63-s64512-tput-tg
-- AND 100b AND mrr AND x710 AND - AND ethip4udp-ip4base-h1024-p63-s64512-tput-tg
-##### ethip4udp-ip4base-h262144-p63-s16515072-cps-tg
-- AND 64b AND mrr AND x710 AND - AND ethip4udp-ip4base-h262144-p63-s16515072-cps-tg
-##### ethip4udp-ip4base-h262144-p63-s16515072-tput-tg
-- AND 100b AND mrr AND x710 AND - AND ethip4udp-ip4base-h262144-p63-s16515072-tput-tg
-## ./ip6
-##### ethip6-ip6base-tg
-- AND 78b AND mrr AND x710 AND - AND ethip6-ip6base-tg
-##### ethip6-ip6scale2m-tg
-- AND 78b AND mrr AND x710 AND - AND ethip6-ip6scale2m-tg
-## ./l2
-##### eth-l2bdscale1mmaclrn-tg
-- AND 64b AND mrr AND x710 AND - AND eth-l2bdscale1mmaclrn-tg
diff --git a/docs/job_specs/report_iterative/2n-skx/vpp-gso-mrr-00.md b/docs/job_specs/report_iterative/2n-skx/vpp-gso-mrr-00.md
deleted file mode 100644
index 0c66eac309..0000000000
--- a/docs/job_specs/report_iterative/2n-skx/vpp-gso-mrr-00.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# 2n-skx
-### tests 12
-### job hrs est. 1
-### job hrs real 1
-### test mins est. 0.75
-### test mins real 0.75
-## ./gso
-### intel-x710
-#### drv_tap
-##### ethip4-ip4base-2tap-gso
-1c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
-2c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
-4c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
-#### drv_tap
-##### ethip4-ip4base-2tap
-1c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-iperf3
-2c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-iperf3
-4c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-iperf3
-#### drv_vhost
-##### ethip4-ip4base-2vhost-gso
-1c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
-2c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
-4c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
-#### drv_vhost
-##### ethip4-ip4base-2vhost
-1c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
-2c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
-4c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
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 4c9783d9da..0000000000
--- a/docs/job_specs/report_iterative/2n-skx/vpp-mlr-00.md
+++ /dev/null
@@ -1,430 +0,0 @@
-# 2n-skx
-### tests 288
-## ./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
-## ./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
-#### 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
-#### af_xdp
-##### ethip4-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k-rnd
-2c AND 64b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k-rnd
-4c AND 64b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k-rnd
-#### 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
-##### 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-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-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-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-h1024-p63-s64512-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
-##### ethip4udp-nat44ed-h16384-p63-s1032192-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
-##### ethip4udp-nat44ed-h65536-p63-s4128768-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
-##### ethip4udp-ip4base-h1024-p63-s64512-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-##### ethip4udp-ip4base-h16384-p63-s1032192-cps
-1c 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
-##### ethip4udp-ip4base-h1024-p63-s64512-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-tput
-##### ethip4udp-ip4base-h16384-p63-s1032192-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-tput
-##### ethip4udp-ip4base-h65536-p63-s4128768-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
-##### 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-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-h1024-p63-s64512-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-##### ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-2c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-4c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-##### ethip4tcp-ip4base-h1024-p63-s64512-cps
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-##### ethip4tcp-ip4base-h16384-p63-s1032192-cps
-1c 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
-##### ethip4tcp-ip4base-h1024-p63-s64512-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-tput
-##### ethip4tcp-ip4base-h16384-p63-s1032192-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
-##### ethip4tcp-ip4base-h65536-p63-s4128768-tput
-1c AND 100b AND ndrpdr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
-#### 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
-## ./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
-#### 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
-#### af_xdp
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k
-##### ethip6-ip6scale20k-rnd
-1c AND 78b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k-rnd
-2c AND 78b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k-rnd
-4c AND 78b AND ndrpdr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k-rnd
-#### 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
-##### 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-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
-##### 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
-##### 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
-#### 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
-## ./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
-##### 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
-##### 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
-##### 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
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 8e910bb0fa..0000000000
--- a/docs/job_specs/report_iterative/2n-skx/vpp-mrr-00.md
+++ /dev/null
@@ -1,430 +0,0 @@
-# 2n-skx
-### tests 288
-## ./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
-## ./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
-#### 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
-#### af_xdp
-##### ethip4-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_af_xdp AND ethip4-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_af_xdp AND ethip4-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_af_xdp AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND mrr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k
-2c AND 64b AND mrr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k
-4c AND 64b AND mrr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND mrr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k-rnd
-2c AND 64b AND mrr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k-rnd
-4c AND 64b AND mrr AND xxv710 AND drv_af_xdp AND ethip4-ip4scale20k-rnd
-#### 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
-##### 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-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-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-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-h1024-p63-s64512-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
-2c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
-4c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h1024-p63-s64512-tput
-##### ethip4udp-nat44ed-h16384-p63-s1032192-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
-2c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
-4c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h16384-p63-s1032192-tput
-##### ethip4udp-nat44ed-h65536-p63-s4128768-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
-2c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
-4c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-nat44ed-h65536-p63-s4128768-tput
-##### ethip4udp-ip4base-h1024-p63-s64512-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-cps
-##### ethip4udp-ip4base-h16384-p63-s1032192-cps
-1c 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
-##### ethip4udp-ip4base-h1024-p63-s64512-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h1024-p63-s64512-tput
-##### ethip4udp-ip4base-h16384-p63-s1032192-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h16384-p63-s1032192-tput
-##### ethip4udp-ip4base-h65536-p63-s4128768-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4udp-ip4base-h65536-p63-s4128768-tput
-##### 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-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-h1024-p63-s64512-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-2c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-4c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h1024-p63-s64512-tput
-##### ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-2c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-4c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h16384-p63-s1032192-tput
-##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-2c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-4c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
-##### ethip4tcp-ip4base-h1024-p63-s64512-cps
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-cps
-##### ethip4tcp-ip4base-h16384-p63-s1032192-cps
-1c 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
-##### ethip4tcp-ip4base-h1024-p63-s64512-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h1024-p63-s64512-tput
-##### ethip4tcp-ip4base-h16384-p63-s1032192-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h16384-p63-s1032192-tput
-##### ethip4tcp-ip4base-h65536-p63-s4128768-tput
-1c AND 100b AND mrr AND xxv710 AND drv_avf AND ethip4tcp-ip4base-h65536-p63-s4128768-tput
-#### 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
-## ./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
-#### 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
-#### af_xdp
-##### ethip6-ip6base
-1c AND 78b AND mrr AND xxv710 AND drv_af_xdp AND ethip6-ip6base
-2c AND 78b AND mrr AND xxv710 AND drv_af_xdp AND ethip6-ip6base
-4c AND 78b AND mrr AND xxv710 AND drv_af_xdp AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND mrr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k
-2c AND 78b AND mrr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k
-4c AND 78b AND mrr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k
-##### ethip6-ip6scale20k-rnd
-1c AND 78b AND mrr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k-rnd
-2c AND 78b AND mrr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k-rnd
-4c AND 78b AND mrr AND xxv710 AND drv_af_xdp AND ethip6-ip6scale20k-rnd
-#### 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
-##### 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-ip6scale200k-rnd
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale200k-rnd
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale200k-rnd
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale200k-rnd
-##### 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
-##### ethip6-ip6scale2m-rnd
-1c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale2m-rnd
-2c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale2m-rnd
-4c AND 78b AND mrr AND xxv710 AND drv_avf AND ethip6-ip6scale2m-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
-## ./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
-##### 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
-##### 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
-##### 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
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 bb9dfcd40d..0000000000
--- a/docs/job_specs/report_iterative/2n-tx2/dpdk-mlr-00.md
+++ /dev/null
@@ -1,30 +0,0 @@
-# 2n-tx2
-### tests 24
-### 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 15f28afd03..0000000000
--- a/docs/job_specs/report_iterative/2n-tx2/dpdk-mrr-00.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# 2n-tx2
-### tests 6
-### 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 3788ccacf0..0000000000
--- a/docs/job_specs/report_iterative/2n-tx2/vpp-mlr-00.md
+++ /dev/null
@@ -1,279 +0,0 @@
-# 2n-tx2
-### tests 192
-## ./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
-1c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip4-ip4base
-2c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip4-ip4base
-4c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip4-ip4scale20k
-##### ethip4-ip4scale200k
-1c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip4-ip4scale200k
-2c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip4-ip4scale200k
-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
-## ./ip4_tunnels
-## ./ip6
-### intel-xl710
-#### af_xdp
-##### ethip6-ip6base
-1c AND 78b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip6-ip6base
-2c AND 78b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip6-ip6base
-4c AND 78b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip6-ip6scale200k
-2c AND 78b AND ndrpdr AND xl710 AND drv_af_xdp AND ethip6-ip6scale200k
-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
-## ./ip6_tunnels
-## ./l2
-### intel-xl710
-#### af_xdp
-##### eth-l2bdbasemaclrn
-1c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND eth-l2bdbasemaclrn
-2c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND eth-l2bdbasemaclrn
-4c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND eth-l2bdscale10kmaclrn
-4c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND eth-l2bdscale100kmaclrn
-2c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND eth-l2bdscale100kmaclrn
-4c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND eth-l2bdscale100kmaclrn
-##### eth-l2xcbase
-1c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND eth-l2xcbase
-2c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND eth-l2xcbase
-4c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND eth-l2xcbase
-##### eth-l2patch
-1c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND eth-l2patch
-2c AND 64b AND ndrpdr AND xl710 AND drv_af_xdp AND eth-l2patch
-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
-## ./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 61c7cd7eb6..0000000000
--- a/docs/job_specs/report_iterative/2n-tx2/vpp-mrr-00.md
+++ /dev/null
@@ -1,279 +0,0 @@
-# 2n-tx2
-### tests 192
-## ./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
-1c AND 64b AND mrr AND xl710 AND drv_af_xdp AND ethip4-ip4base
-2c AND 64b AND mrr AND xl710 AND drv_af_xdp AND ethip4-ip4base
-4c AND 64b AND mrr AND xl710 AND drv_af_xdp AND ethip4-ip4base
-##### ethip4-ip4scale20k
-1c AND 64b AND mrr AND xl710 AND drv_af_xdp AND ethip4-ip4scale20k
-2c AND 64b AND mrr AND xl710 AND drv_af_xdp AND ethip4-ip4scale20k
-4c AND 64b AND mrr AND xl710 AND drv_af_xdp AND ethip4-ip4scale20k
-##### ethip4-ip4scale200k
-1c AND 64b AND mrr AND xl710 AND drv_af_xdp AND ethip4-ip4scale200k
-2c AND 64b AND mrr AND xl710 AND drv_af_xdp AND ethip4-ip4scale200k
-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
-## ./ip4_tunnels
-## ./ip6
-### intel-xl710
-#### af_xdp
-##### ethip6-ip6base
-1c AND 78b AND mrr AND xl710 AND drv_af_xdp AND ethip6-ip6base
-2c AND 78b AND mrr AND xl710 AND drv_af_xdp AND ethip6-ip6base
-4c AND 78b AND mrr AND xl710 AND drv_af_xdp AND ethip6-ip6base
-##### ethip6-ip6scale20k
-1c AND 78b AND mrr AND xl710 AND drv_af_xdp AND ethip6-ip6scale20k
-2c AND 78b AND mrr AND xl710 AND drv_af_xdp AND ethip6-ip6scale20k
-4c AND 78b AND mrr AND xl710 AND drv_af_xdp AND ethip6-ip6scale20k
-##### ethip6-ip6scale200k
-1c AND 78b AND mrr AND xl710 AND drv_af_xdp AND ethip6-ip6scale200k
-2c AND 78b AND mrr AND xl710 AND drv_af_xdp AND ethip6-ip6scale200k
-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
-## ./ip6_tunnels
-## ./l2
-### intel-xl710
-#### af_xdp
-##### eth-l2bdbasemaclrn
-1c AND 64b AND mrr AND xl710 AND drv_af_xdp AND eth-l2bdbasemaclrn
-2c AND 64b AND mrr AND xl710 AND drv_af_xdp AND eth-l2bdbasemaclrn
-4c AND 64b AND mrr AND xl710 AND drv_af_xdp AND eth-l2bdbasemaclrn
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND mrr AND xl710 AND drv_af_xdp AND eth-l2bdscale10kmaclrn
-2c AND 64b AND mrr AND xl710 AND drv_af_xdp AND eth-l2bdscale10kmaclrn
-4c AND 64b AND mrr AND xl710 AND drv_af_xdp AND eth-l2bdscale10kmaclrn
-##### eth-l2bdscale100kmaclrn
-1c AND 64b AND mrr AND xl710 AND drv_af_xdp AND eth-l2bdscale100kmaclrn
-2c AND 64b AND mrr AND xl710 AND drv_af_xdp AND eth-l2bdscale100kmaclrn
-4c AND 64b AND mrr AND xl710 AND drv_af_xdp AND eth-l2bdscale100kmaclrn
-##### eth-l2xcbase
-1c AND 64b AND mrr AND xl710 AND drv_af_xdp AND eth-l2xcbase
-2c AND 64b AND mrr AND xl710 AND drv_af_xdp AND eth-l2xcbase
-4c AND 64b AND mrr AND xl710 AND drv_af_xdp AND eth-l2xcbase
-##### eth-l2patch
-1c AND 64b AND mrr AND xl710 AND drv_af_xdp AND eth-l2patch
-2c AND 64b AND mrr AND xl710 AND drv_af_xdp AND eth-l2patch
-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
-## ./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 354e986ecf..0000000000
--- a/docs/job_specs/report_iterative/2n-zn2/soak-00.md
+++ /dev/null
@@ -1,63 +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-gso-mrr-00.md b/docs/job_specs/report_iterative/2n-zn2/vpp-gso-mrr-00.md
deleted file mode 100644
index 65f46c909f..0000000000
--- a/docs/job_specs/report_iterative/2n-zn2/vpp-gso-mrr-00.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# 2n-zn2
-### tests 12
-### job hrs est. 1
-### job hrs real 1
-### test mins est. 0.75
-### test mins real 0.75
-## ./gso
-### intel-x710
-#### drv_tap
-##### ethip4-ip4base-2tap-gso
-1c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
-2c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
-4c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-gso-iperf3
-#### drv_tap
-##### ethip4-ip4base-2tap
-1c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-iperf3
-2c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-iperf3
-4c AND 128kb AND mrr AND x710 AND drv_tap AND ethip4-ip4base-2tap-iperf3
-#### drv_vhost
-##### ethip4-ip4base-2vhost-gso
-1c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
-2c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
-4c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-gso-iperf3
-#### drv_vhost
-##### ethip4-ip4base-2vhost
-1c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
-2c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
-4c AND 128kb AND mrr AND x710 AND drv_vhost AND ethip4-ip4base-2vhost-iperf3
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 a2f2c5810e..0000000000
--- a/docs/job_specs/report_iterative/2n-zn2/vpp-mlr-00.md
+++ /dev/null
@@ -1,378 +0,0 @@
-# 2n-zn2
-### tests 243
-## ./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
-## ./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
-#### 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
-##### 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-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
-#### 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-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
-## ./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
-#### 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
-##### 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
-## ./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
-##### 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
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 e2d0709e82..0000000000
--- a/docs/job_specs/report_iterative/2n-zn2/vpp-mrr-00.md
+++ /dev/null
@@ -1,378 +0,0 @@
-# 2n-zn2
-### tests 243
-## ./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
-## ./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
-#### 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
-##### 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-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
-#### 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-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-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
-#### 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
-##### 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
-## ./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
-##### 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/docs/job_specs/report_iterative/3n-alt/dpdk-mlr-00.md b/docs/job_specs/report_iterative/3n-alt/dpdk-mlr-00.md
deleted file mode 100644
index bc30128ff3..0000000000
--- a/docs/job_specs/report_iterative/3n-alt/dpdk-mlr-00.md
+++ /dev/null
@@ -1,34 +0,0 @@
-# 3n-alt
-### 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/3n-alt/dpdk-mrr-00.md b/docs/job_specs/report_iterative/3n-alt/dpdk-mrr-00.md
deleted file mode 100644
index 47fcb8e5c3..0000000000
--- a/docs/job_specs/report_iterative/3n-alt/dpdk-mrr-00.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# 3n-alt
-### 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/3n-alt/vpp-mlr-00.md b/docs/job_specs/report_iterative/3n-alt/vpp-mlr-00.md
deleted file mode 100644
index e6efa3742d..0000000000
--- a/docs/job_specs/report_iterative/3n-alt/vpp-mlr-00.md
+++ /dev/null
@@ -1,245 +0,0 @@
-# 3n-alt
-### tests 168
-## ./container_memif
-## ./crypto
-### intel-xl710
-#### dpdk-vfio-pci
-##### 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-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
-4c 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
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-##### 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-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
-4c 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
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-##### 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-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
-4c 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
-4c AND imix AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-##### 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
-##### 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
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-##### ethip4ipsec40tnlsw-ip4base-policy-aes256gcm
-1c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-policy-aes256gcm
-2c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-policy-aes256gcm
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-policy-aes256gcm
-##### 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
-4c AND 64b AND ndrpdr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-##### 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
-#### 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
-## ./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-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
-## ./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
-##### 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
-## ./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-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
-##### 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
diff --git a/docs/job_specs/report_iterative/3n-alt/vpp-mrr-00.md b/docs/job_specs/report_iterative/3n-alt/vpp-mrr-00.md
deleted file mode 100644
index 194bf62b1e..0000000000
--- a/docs/job_specs/report_iterative/3n-alt/vpp-mrr-00.md
+++ /dev/null
@@ -1,245 +0,0 @@
-# 3n-alt
-### tests 168
-## ./container_memif
-## ./crypto
-### intel-xl710
-#### dpdk-vfio-pci
-##### 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-aes128gcm
-1c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-4c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-1c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-2c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-4c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128gcm
-##### 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-aes128gcm
-1c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-4c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-1c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-2c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-4c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128gcm
-##### 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-aes128gcm
-1c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-2c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-4c AND 1518b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-1c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-2c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-4c AND imix AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec10000tnlsw-ip4base-int-aes128gcm
-##### 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
-##### ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1tnlsw-ip4base-policy-aes256gcm
-##### ethip4ipsec40tnlsw-ip4base-policy-aes256gcm
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-policy-aes256gcm
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-policy-aes256gcm
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-policy-aes256gcm
-##### ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-1c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-2c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-4c AND 64b AND mrr AND xl710 AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm
-##### 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
-#### 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
-## ./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-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
-## ./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
-##### 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
-## ./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-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
-##### 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
diff --git a/docs/job_specs/report_iterative/3n-aws/vpp-mlr-00.md b/docs/job_specs/report_iterative/3n-aws/vpp-mlr-00.md
deleted file mode 100644
index 0811902e89..0000000000
--- a/docs/job_specs/report_iterative/3n-aws/vpp-mlr-00.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# 3n-aws
-## ./container_memif
-## ./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
-## ./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
-## ./vm_vhost
-## ./vts
diff --git a/docs/job_specs/report_iterative/3n-aws/vpp-mrr-00.md b/docs/job_specs/report_iterative/3n-aws/vpp-mrr-00.md
deleted file mode 100644
index 74c67e417f..0000000000
--- a/docs/job_specs/report_iterative/3n-aws/vpp-mrr-00.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# 3n-aws
-## ./container_memif
-## ./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
-## ./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
-## ./vm_vhost
-## ./vts
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 d071ba3aae..0000000000
--- a/docs/job_specs/report_iterative/3n-dnv/dpdk-mlr-00.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# 3n-dnv
-### 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 75217b27b0..0000000000
--- a/docs/job_specs/report_iterative/3n-dnv/dpdk-mrr-00.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# 3n-dnv
-### 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 8334f8f38a..0000000000
--- a/docs/job_specs/report_iterative/3n-dnv/vpp-mlr-00.md
+++ /dev/null
@@ -1,118 +0,0 @@
-# 3n-dnv
-## ./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
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-3c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-3c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 1518b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-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
-##### 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
-## ./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
-##### ethip6-ip6scale20k-rnd
-1c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-2c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-4c AND 78b AND ndrpdr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-## ./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 bcbaf97636..0000000000
--- a/docs/job_specs/report_iterative/3n-dnv/vpp-mrr-00.md
+++ /dev/null
@@ -1,118 +0,0 @@
-# 3n-dnv
-## ./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
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-3c AND 1518b AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-3c AND imix AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND 1518b AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND imix AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND mrr AND x553 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-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
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND mrr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-2c AND 64b AND mrr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-4c AND 64b AND mrr AND x553 AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-## ./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
-##### ethip6-ip6scale20k-rnd
-1c AND 78b AND mrr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-2c AND 78b AND mrr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-4c AND 78b AND mrr AND x553 AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-## ./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-icx/dpdk-mlr-00.md b/docs/job_specs/report_iterative/3n-icx/dpdk-mlr-00.md
deleted file mode 100644
index 749562124f..0000000000
--- a/docs/job_specs/report_iterative/3n-icx/dpdk-mlr-00.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# 3n-icx
-### 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-icx/dpdk-mrr-00.md b/docs/job_specs/report_iterative/3n-icx/dpdk-mrr-00.md
deleted file mode 100644
index 2a19b06024..0000000000
--- a/docs/job_specs/report_iterative/3n-icx/dpdk-mrr-00.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# 3n-icx
-### 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-icx/hoststack-00.md b/docs/job_specs/report_iterative/3n-icx/hoststack-00.md
deleted file mode 100644
index bcc0bbb5c0..0000000000
--- a/docs/job_specs/report_iterative/3n-icx/hoststack-00.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# 3n-icx
-## ./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-xxv710
-#### dpdk-vfio-pci
-##### eth-ip4tcpbase-ldpreload-iperf3
-1c AND 1460b AND bps AND xxv710 AND drv_vfio_pci AND eth-ip4tcpbase-ldpreload-iperf3
-##### eth-ip4tcpscale1cl10s-ldpreload-iperf3
-1c AND 1460b AND bps AND xxv710 AND drv_vfio_pci AND eth-ip4tcpscale1cl10s-ldpreload-iperf3
-##### eth-ip4udpbase-ldpreload-iperf3
-1c AND 1460b AND bps AND xxv710 AND drv_vfio_pci AND eth-ip4udpbase-ldpreload-iperf3
-##### eth-ip4udpscale1cl10s-ldpreload-iperf3
-1c AND 1460b AND bps AND xxv710 AND drv_vfio_pci AND eth-ip4udpscale1cl10s-ldpreload-iperf3
-##### eth-ip4udpquicbase-vppecho
-1c AND 1280b AND bps AND xxv710 AND drv_vfio_pci AND eth-ip4udpquicbase-vppecho
-##### eth-ip4udpquicscale1cl10s-vppecho
-1c AND 1280b AND bps AND xxv710 AND drv_vfio_pci AND eth-ip4udpquicscale1cl10s-vppecho
-##### eth-ip4udpquicscale10cl1s-vppecho
-1c AND 1280b AND bps AND xxv710 AND drv_vfio_pci AND eth-ip4udpquicscale10cl1s-vppecho
-##### eth-ip4udpquicscale10cl10s-vppecho
-1c AND 1280b AND bps AND xxv710 AND drv_vfio_pci AND eth-ip4udpquicscale10cl10s-vppecho
-## ./vm_vhost
diff --git a/docs/job_specs/report_iterative/3n-icx/nfv-density-00.md b/docs/job_specs/report_iterative/3n-icx/nfv-density-00.md
deleted file mode 100644
index 2b7e85b6dd..0000000000
--- a/docs/job_specs/report_iterative/3n-icx/nfv-density-00.md
+++ /dev/null
@@ -1,60 +0,0 @@
-# 3n-icx
-## ./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-icx/vpp-mlr-00.md b/docs/job_specs/report_iterative/3n-icx/vpp-mlr-00.md
deleted file mode 100644
index 0775f17c97..0000000000
--- a/docs/job_specs/report_iterative/3n-icx/vpp-mlr-00.md
+++ /dev/null
@@ -1,284 +0,0 @@
-# 3n-icx
-## ./container_memif
-## ./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
-##### ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c 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
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-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
-##### 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
-4c 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
-##### 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
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-3c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-3c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-3c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-3c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-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
-##### 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
-4c 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
-##### 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
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci 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
-## ./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
-#### 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
-## ./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
-##### 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
-##### ethip4gtpusw-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4gtpusw-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4gtpusw-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4gtpusw-ip4base
-#### 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
-##### ethip4gtpusw-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4gtpusw-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4gtpusw-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4gtpusw-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
-## ./ip6
-#### 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
-#### 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
-## ./ip6_tunnels
-## ./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
-##### 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-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
diff --git a/docs/job_specs/report_iterative/3n-icx/vpp-mrr-00.md b/docs/job_specs/report_iterative/3n-icx/vpp-mrr-00.md
deleted file mode 100644
index e37a67e205..0000000000
--- a/docs/job_specs/report_iterative/3n-icx/vpp-mrr-00.md
+++ /dev/null
@@ -1,283 +0,0 @@
-# 3n-icx
-## ./container_memif
-## ./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
-##### ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-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
-##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-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
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-3c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-3c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-3c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-3c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-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
-##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-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
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND 1518b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND 1518b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci 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
-## ./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
-#### 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
-## ./ip4_tunnels
-### intel-xxv710
-#### avf
-##### 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
-##### ethip4gtpusw-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4gtpusw-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4gtpusw-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4gtpusw-ip4base
-#### 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
-##### ethip4gtpusw-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4gtpusw-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4gtpusw-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4gtpusw-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
-## ./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
-#### 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
-## ./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
-##### 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-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
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/hoststack-00.md b/docs/job_specs/report_iterative/3n-skx/hoststack-00.md
deleted file mode 100644
index b5574f31f5..0000000000
--- a/docs/job_specs/report_iterative/3n-skx/hoststack-00.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# 3n-skx
-### tests 8
-### job hrs est. 0.25
-### job hrs real ?
-### test mins est. 1.88
-### test mins real ?
-## ./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-xxv710
-#### dpdk-vfio-pci
-##### eth-ip4tcpbase-ldpreload-iperf3
-1c AND 1460b AND bps AND xxv710 AND drv_vfio_pci AND eth-ip4tcpbase-ldpreload-iperf3
-##### eth-ip4tcpscale1cl10s-ldpreload-iperf3
-1c AND 1460b AND bps AND xxv710 AND drv_vfio_pci AND eth-ip4tcpscale1cl10s-ldpreload-iperf3
-##### eth-ip4udpbase-ldpreload-iperf3
-1c AND 1460b AND bps AND xxv710 AND drv_vfio_pci AND eth-ip4udpbase-ldpreload-iperf3
-##### eth-ip4udpscale1cl10s-ldpreload-iperf3
-1c AND 1460b AND bps AND xxv710 AND drv_vfio_pci AND eth-ip4udpscale1cl10s-ldpreload-iperf3
-##### eth-ip4udpquicbase-vppecho
-1c AND 1280b AND bps AND xxv710 AND drv_vfio_pci AND eth-ip4udpquicbase-vppecho
-##### eth-ip4udpquicscale1cl10s-vppecho
-1c AND 1280b AND bps AND xxv710 AND drv_vfio_pci AND eth-ip4udpquicscale1cl10s-vppecho
-##### eth-ip4udpquicscale10cl1s-vppecho
-1c AND 1280b AND bps AND xxv710 AND drv_vfio_pci AND eth-ip4udpquicscale10cl1s-vppecho
-##### eth-ip4udpquicscale10cl10s-vppecho
-1c AND 1280b AND bps AND xxv710 AND drv_vfio_pci AND eth-ip4udpquicscale10cl10s-vppecho
-## ./vm_vhost
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 4ca00bc6dd..0000000000
--- a/docs/job_specs/report_iterative/3n-skx/vpp-mlr-00.md
+++ /dev/null
@@ -1,275 +0,0 @@
-# 3n-skx
-### tests 186
-## ./container_memif
-## ./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
-##### ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c 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
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-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
-##### 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
-4c 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
-##### 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
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-3c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-3c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-3c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-3c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 1518b AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-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
-##### 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
-4c 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
-##### 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
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 1518b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-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
-### 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
-#### 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
-## ./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
-##### 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
-##### ethip4gtpusw-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4gtpusw-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4gtpusw-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_avf AND ethip4gtpusw-ip4base
-#### 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
-##### ethip4gtpusw-ip4base
-1c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4gtpusw-ip4base
-2c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4gtpusw-ip4base
-4c AND 64b AND ndrpdr AND xxv710 AND drv_vfio_pci AND ethip4gtpusw-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
-#### 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
-#### 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
-## ./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-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
-##### 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-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
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 816bc5f955..0000000000
--- a/docs/job_specs/report_iterative/3n-skx/vpp-mrr-00.md
+++ /dev/null
@@ -1,275 +0,0 @@
-# 3n-skx
-### tests 186
-## ./container_memif
-## ./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
-##### ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-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
-##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec40tnlsw-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
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-3c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-3c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-3c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-3c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_avf AND ethip4ipsec8tnlswasync-scheduler-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
-##### ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-1c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-ip4base-int-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec40tnlsw-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
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND 1518b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-##### ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND 1518b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND mrr AND xxv710 AND drv_vfio_pci AND ethip4ipsec8tnlswasync-scheduler-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
-### 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
-#### 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
-## ./ip4_tunnels
-### intel-xxv710
-#### avf
-##### 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
-##### ethip4gtpusw-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4gtpusw-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4gtpusw-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_avf AND ethip4gtpusw-ip4base
-#### 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
-##### ethip4gtpusw-ip4base
-1c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4gtpusw-ip4base
-2c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4gtpusw-ip4base
-4c AND 64b AND mrr AND xxv710 AND drv_vfio_pci AND ethip4gtpusw-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
-#### 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
-#### 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
-## ./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-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
-##### 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-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
diff --git a/docs/job_specs/report_iterative/3n-snr/dpdk-mlr-00.md b/docs/job_specs/report_iterative/3n-snr/dpdk-mlr-00.md
deleted file mode 100644
index 484ea0ba0b..0000000000
--- a/docs/job_specs/report_iterative/3n-snr/dpdk-mlr-00.md
+++ /dev/null
@@ -1,24 +0,0 @@
-# 3n-snr
-### intel-e810xxv
-### 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/docs/job_specs/report_iterative/3n-snr/dpdk-mrr-00.md b/docs/job_specs/report_iterative/3n-snr/dpdk-mrr-00.md
deleted file mode 100644
index 1ab3a5774b..0000000000
--- a/docs/job_specs/report_iterative/3n-snr/dpdk-mrr-00.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# 3n-snr
-### 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
diff --git a/docs/job_specs/report_iterative/3n-snr/vpp-mlr-00.md b/docs/job_specs/report_iterative/3n-snr/vpp-mlr-00.md
deleted file mode 100644
index dbc4826690..0000000000
--- a/docs/job_specs/report_iterative/3n-snr/vpp-mlr-00.md
+++ /dev/null
@@ -1,118 +0,0 @@
-# 3n-snr
-## ./container_memif
-## ./crypto
-### intel-e810xxv
-#### dpdk-vfio-pci
-##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### 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
-##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-3c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-3c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 1518b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-## ./ip4
-### intel-e810xxv
-#### 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
-##### ethip4-ip4scale20k
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-## ./ip4_tunnels
-### intel-e810xxv
-#### 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
-##### 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
-## ./ip6
-### intel-e810xxv
-#### 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
-##### ethip6-ip6scale20k
-1c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale20k
-##### ethip6-ip6scale20k-rnd
-1c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-2c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-4c AND 78b AND ndrpdr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-## ./ip6_tunnels
-## ./l2
-### intel-e810xxv
-#### 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
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND 64b AND ndrpdr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-##### 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
-##### 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
-## ./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-snr/vpp-mrr-00.md b/docs/job_specs/report_iterative/3n-snr/vpp-mrr-00.md
deleted file mode 100644
index a7f3cd228e..0000000000
--- a/docs/job_specs/report_iterative/3n-snr/vpp-mrr-00.md
+++ /dev/null
@@ -1,118 +0,0 @@
-# 3n-snr
-## ./container_memif
-## ./crypto
-### intel-e810xxv
-#### dpdk-vfio-pci
-##### ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### 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
-##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-1c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-1c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-2c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-4c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-3c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-2c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-3c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-4c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha
-##### ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND 1518b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-2c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-3c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-4c AND imix AND mrr AND e810xxv AND drv_vfio_pci AND ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm
-## ./ip4
-### intel-e810xxv
-#### 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
-##### ethip4-ip4scale20k
-1c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale20k
-2c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale20k
-4c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale20k
-##### ethip4-ip4scale20k-rnd
-1c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-2c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-4c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4-ip4scale20k-rnd
-## ./ip4_tunnels
-### intel-e810xxv
-#### 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
-##### ethip4vxlan-l2xcbase
-1c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-2c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-4c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND ethip4vxlan-l2xcbase
-## ./ip6
-### intel-e810xxv
-#### 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
-##### ethip6-ip6scale20k
-1c AND 78b AND mrr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale20k
-2c AND 78b AND mrr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale20k
-4c AND 78b AND mrr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale20k
-##### ethip6-ip6scale20k-rnd
-1c AND 78b AND mrr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-2c AND 78b AND mrr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-4c AND 78b AND mrr AND e810xxv AND drv_vfio_pci AND ethip6-ip6scale20k-rnd
-## ./ip6_tunnels
-## ./l2
-### intel-e810xxv
-#### 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
-##### eth-l2bdscale10kmaclrn
-1c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-2c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-4c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND eth-l2bdscale10kmaclrn
-##### eth-l2xcbase
-1c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase
-2c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase
-4c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND eth-l2xcbase
-##### eth-l2patch
-1c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND eth-l2patch
-2c AND 64b AND mrr AND e810xxv AND drv_vfio_pci AND eth-l2patch
-4c AND 64b AND mrr AND e810xxv 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-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 8dc8e9b8ee..0000000000
--- a/docs/job_specs/report_iterative/3n-tsh/vpp-mlr-00.md
+++ /dev/null
@@ -1,231 +0,0 @@
-# 3n-tsh
-### tests 156
-## ./container_memif
-## ./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
-## ./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
-## ./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
-## ./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
-##### 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
-## ./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
-##### 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
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 0d967da440..0000000000
--- a/docs/job_specs/report_iterative/3n-tsh/vpp-mrr-00.md
+++ /dev/null
@@ -1,231 +0,0 @@
-# 3n-tsh
-### tests 156
-## ./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
-## ./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
-## ./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
-## ./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
-##### 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/docs/job_specs/vpp_device/vpp-1n-tx2.md b/docs/job_specs/vpp_device/vpp-1n-tx2.md
deleted file mode 100644
index 1745db3a13..0000000000
--- a/docs/job_specs/vpp_device/vpp-1n-tx2.md
+++ /dev/null
@@ -1,158 +0,0 @@
-# 1n-tx2
-## ./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
-## ./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 \ No newline at end of file
diff --git a/docs/lab/fdio-dc-physical.md b/docs/lab/fdio-dc-physical.md
deleted file mode 100644
index b049073379..0000000000
--- a/docs/lab/fdio-dc-physical.md
+++ /dev/null
@@ -1,131 +0,0 @@
-<!-- MarkdownTOC autolink="true" -->
-
-- [FD.io DC Vexxhost Inventory](#fdio-dc-vexxhost-inventory)
- - [Missing Equipment Inventory](#missing-equipment-inventory)
- - [YUL1 Inventory](#yul1-inventory)
- - [Rack YUL1-8 (3016.8)](#rack-yul1-8-3016.8)
- - [Rack YUL1-9 (3016.9)](#rack-yul1-9-3016.9)
- - [Rack YUL1-10 (3016.10)](#rack-yul1-10-3016.10)
- - [Rack YUL1-11 (3016.11)](#rack-yul1-11-3016.11)
- - [Rack YUL1-12 (3016.12)](#rack-yul1-12-3016.12)
-
-<!-- /MarkdownTOC -->
-
-## FD.io DC Vexxhost Inventory
-
-- for each DC location, per rack .csv table with server inventory
-- captured inventory data: name,oper-status,testbed-id,role,model,s/n,rackid,rackunit,mgmt-ip4,ipmi-ip4,new-rackid,new-rackunit,new-mgmt-ip4,new-ipmi-ip4
- - name: CSIT functional server name as tracked in [CSIT testbed specification](https://git.fd.io/csit/tree/docs/lab/testbed_specifications.md), followed by "/" and the actual configured hostname, unless it is the same as CSIT name.
- - oper-status: operational status (up|down|ipmi).
- - testbed-id: CSIT testbed identifier.
- - 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: Ixia PerfectStorm One Appliance TG for FD.io TCP/IP performance tests.](https://git.fd.io/csit/tree/docs/lab/testbed_specifications.md#n554)
- - [Wiring: 2-Node-IxiaPS1L47 Servers (2n-ps1)](https://git.fd.io/csit/tree/docs/lab/testbed_specifications.md#n1017)
- - [mgmt-ip4 10.30.51.62 s26-t25-tg1](https://git.fd.io/csit/tree/docs/lab/testbed_specifications.md#n374)
- - [ipmi-ip4 10.30.50.59 s26-t25-tg1](https://git.fd.io/csit/tree/docs/lab/testbed_specifications.md#n281)
-
-### YUL1 Inventory
-
-#### Rack YUL1-8 (3016.8)
-name,oper-status,testbed-id,role,model,s/n,mgmt-ip4,ipmi-ip4,rackid,rackunit
-mtl1-8-lb4m,up,switch,uplink,?,?,?,?,3016.8,u47,?,?
-s65-t37-sut1,up,t37,3n-icx,SYS-740GP-TNRT,C7470KK25P50098,10.30.51.75,10.30.50.75,3016.8,u42-u45
-s66-t37-sut2,up,t37,3n-icx,SYS-740GP-TNRT,C7470KK33P50247,10.30.51.76,10.30.50.76,3016.8,u38-u41
-s67-t37-tg1,up,t37,3n-icx,SYS-740GP-TNRT,C7470KK25P50076,10.30.51.77,10.30.50.77,3016.8,u34-u37
-s71-t212-sut1,up,t212,2n-icx,SYS-740GP-TNRT,C7470KK25P50173,10.30.51.81,10.30.50.81,3016.8,u30-u33
-s72-t212-tg1,up,t212,2n-icx,SYS-740GP-TNRT,C7470KK33P50220,10.30.51.82,10.30.50.82,3016.8,u26-u29
-s83-t213-sut1,up,t213,2n-icx,SYS-740GP-TNRT,C7470KL07P50300,10.30.51.83,10.30.50.83,3016.8,u22-u25
-s84-t213-tg1,up,t213,2n-icx,SYS-740GP-TNRT,C7470KL03P50187,10.30.51.84,10.30.50.84,3016.8,u18-u21
-s85-t214-sut1,up,t214,2n-icx,SYS-740GP-TNRT,C7470KK33P50219,10.30.51.85,10.30.50.85,3016.8,u14-u17
-s86-t214-tg1,up,t214,2n-icx,SYS-740GP-TNRT,C7470KL07P50312,10.30.51.86,10.30.50.86,3016.8,u10-u13
-s87-t215-sut1,up,t215,2n-icx,SYS-740GP-TNRT,C7470KL03P50171,10.30.51.87,10.30.50.87,3016.8,u6-u9
-s88-t215-tg1,up,t215,2n-icx,SYS-740GP-TNRT,C7470KL07P50301,10.30.51.88,10.30.50.88,3016.8,u2-u5
-
-#### Rack YUL1-9 (3016.9)
-name,oper-status,testbed-id,role,model,s/n,mgmt-ip4,ipmi-ip4,rackid,rackunit
-mtl1-5-lb4m,up,switch,uplink,?,?,?,?,3016.9,u47,?,?
-s11-t31-sut1,up,t31,3n-skx,SYS-7049GP-TRT,C7470KH06A20037,10.30.51.46,10.30.50.43,3016.9,u42-u45
-s12-t31-sut2,up,t31,3n-skx,SYS-7049GP-TRT,C7470KH06A20018,10.30.51.47,10.30.50.44,3016.9,u38-u41
-s13-t31-tg1,up,t31,3n-skx,SYS-7049GP-TRT,C7470KH06A20043,10.30.51.48,10.30.50.45,3016.9,u34-u37
-s14-t32-sut1,up,t31,3n-skx,SYS-7049GP-TRT,C7470KH06A20075,10.30.51.58,10.30.50.55,3016.9,u30-u33
-s15-t32-sut2,up,t31,3n-skx,SYS-7049GP-TRT,C7470KH06A20010,10.30.51.59,10.30.50.56,3016.9,u26-u29
-s16-t32-tg1,up,t31,3n-skx,SYS-7049GP-TRT,C7470KH06A20047,10.30.51.60,10.30.50.57,3016.9,u22-u25
-s25-t25-sut1,down,t25,2n-p1,SYS-7049GP-TRT,C7470KH06A20022,10.30.51.61,10.30.50.58,3016.9,u18-u21
-s19-t33t211-tg1,up,t33t211,3n-tsh/2n-tx2,SYS-7049GP-TRT,C7470KH06A20056,10.30.51.49,10.30.50.46,3016.9,u14-u17
-s27-t211-sut1,up,t211,2n-tx2,ThunderX2-9975,K61186073100003,10.30.51.69,10.30.50.69,3016.9,u13
-s18-t33-sut2,up,t33,3n-tsh,HUAWEI-TAISHAN-2280,N/A,10.30.51.37,10.30.50.37,3016.9,u11-u12
-s17-t33-sut1,up,t33,3n-tsh,HUAWEI-TAISHAN-2280,N/A,10.30.51.36,10.30.50.36,3016.9,u9-u10
-s79-t39t310-tg1,in-transit,t39t310,tbd,SYS-740GP-TNRT,???,10.30.51.89,10.30.50.89,3016.9,u5-u8
-
-#### Rack YUL1-10 (3016.10)
-
-name,oper-status,testbed-id,role,model,s/n,mgmt-ip4,ipmi-ip4,rackid,rackunit
-yul1-10-lb4m,up,switch,uplink,?,?,?,?,3016.10,u47,?,?
-s2-t12-sut1,up,t12,1n-skx,SYS-7049GP-TRT,C7470KH06A20119,10.30.51.51,10.30.50.48,3016.10,u42-u45
-s1-t11-sut1,up,t11,1n-skx,SYS-7049GP-TRT,C7470KH06A20154,10.30.51.50,10.30.50.47,3016.10,u38-u41
-s3-t21-sut1,up,t21,2n-skx,SYS-7049GP-TRT,C7470KH06A20167,10.30.51.44,10.30.50.41,3016.10,u34-u37
-s4-t21-tg1,up,t21,2n-skx,SYS-7049GP-TRT,C7470KH06A20158,10.30.51.45,10.30.50.42,3016.10,u30-u33
-s5-t22-sut1,up,t22,2n-skx,SYS-7049GP-TRT,N/A,10.30.51.52,10.30.50.49,3016.10,u26-u29
-s6-t22-tg1,up,t22,2n-skx,SYS-7049GP-TRT,N/A,10.30.51.53,10.30.50.50,3016.10,u22-u25
-s7-t23-sut1,up,t23,2n-skx,SYS-7049GP-TRT,N/A,10.30.51.54,10.30.50.51,3016.10,u18-u21
-s8-t23-tg1,up,t23,2n-skx,SYS-7049GP-TRT,C7470KH06A20035,10.30.51.55,10.30.50.52,3016.10,u14-u17
-s93-t39-sut1,up,t39,3n-snr,?,?,10.30.51.93,10.30.50.93,3016.10,u10-u13
-s94-t39-sut2,up,t39,3n-snr,?,?,10.30.51.94,10.30.50.94,3016.10,u6-u9
-s89-t39t310-tg1,up,t39,3n-snr,?,?,10.30.51.89,10.30.50.89,3016.10,u2-u5
-
-#### Rack YUL1-11 (3016.11)
-
-name,oper-status,testbed-id,role,model,s/n,mgmt-ip4,ipmi-ip4,rackid,rackunit
-yul1-11-lb6m,up,switch,arm-uplink,?,?,?,?,3016.11,u48
-yul1-11-lf-tor-switch,up,switch,uplink,?,?,?,?,3016.11,u47
-mtl1-6-7050QX-32,up,switch,uplink,?,?,?,?,3016.11,u46
-fdio-marvell-dev,up,N/A,dev,ThunderX-88XX,N/A,10.30.51.38,10.30.50.38,3016.11,u45
-s56-t14-sut1,up,t14,1n-tx2,ThunderX2-9980,N/A,10.30.51.71,10.30.50.71,3016.11,u41-u42
-s20-nomad,up,nomad-cluster1,nomad-client,UCSC-C240-M4SX,FCH1950V1FQ,10.30.51.20,10.30.50.20,3016.11,u39-u40
-s22-nomad,up,nomad-cluster1,nomad-client,UCSC-C240-M4SX,FCH2013V0HZ,10.30.51.22,10.30.50.22,3016.11,u37-u38
-s21-nomad,up,nomad-cluster1,nomad-client,UCSC-C240-M4SX,FCH2013V0J2,10.30.51.21,10.30.50.21,3016.11,u35-u36
-s78-t38-sut1,up,t38,3n-icx,SYS-740GP-TNRT,C7470KL03P50450,10.30.51.78,10.30.50.78,3016.11,u31-u34
-s79-t38-sut2,up,t38,3n-icx,SYS-740GP-TNRT,C7470KL07P50297,10.30.51.79,10.30.50.79,3016.11,u27-u30
-s80-t38-tg1,up,t38,3n-icx,SYS-740GP-TNRT,C7470KL03P50454,10.30.51.80,10.30.50.80,3016.11,u23-u26
-s16-nomad,up,nomad-cluster1,nomad-client,UCSC-C240-M4SX,FCH1950V1FN,10.30.51.16,10.30.50.16,3016.11,u19-u20
-s17-nomad,up,nomad-cluster1,nomad-client,UCSC-C240-M4SX,FCH1950V1H5,10.30.51.17,10.30.50.17,3016.11,u17-u18
-s18-nomad,up,nomad-cluster1,nomad-client,UCSC-C240-M4SX,FCH1950V1FS,10.30.51.18,10.30.50.18,3016.11,u15-u16
-s19-nomad,up,nomad-cluster1,nomad-client,UCSC-C240-M4SX,FCH1950V1FL,10.30.51.19,10.30.50.19,3016.11,u13-u14
-s55-t13-sut1,up,t13,1n-tx2,ThunderX2-9980,N/A,10.30.51.70,10.30.50.70,3016.11,u11-u12
-s62-t34-sut1,up,t34,3n-alt,WIWYNN,04000059N0SC,10.30.51.72,10.30.50.72,3016.11,u9-u10
-s63-t34-sut2,up,t34,3n-alt,WIWYNN,0390003EN0SC,10.30.51.73,10.30.50.73,3016.11,u7-u8
-s64-t34-tg1,up,t34,3n-alt,SYS-740GP-TNRT,C7470KK40P50249,10.30.51.74,10.30.50.74,3016.11,u3-u6
-
-#### Rack YUL1-12 (3016.12)
-
-name,oper-status,testbed-id,role,model,s/n,mgmt-ip4,ipmi-ip4,rackid,rackunit
-yul1-12-lb4m,up,switch,uplink,?,?,?,?,3016.12,u47
-s31-t35-sut2/dnv3,up,t35,3n-dnv,SYS-E300-9A,CE300AG39040898,10.32.8.13,10.30.55.13,3016.12,u45
-s30-t35-sut1/dnv2,up,t35,3n-dnv,SYS-E300-9A,CE300AG39040866,10.32.8.12,10.30.55.12,3016.12,u44
-s29-t26-sut1/dnv1,up,t26,2n-dnv,SYS-E300-9A,CE300AG39040897,10.32.8.11,10.30.55.11,3016.12,u43
-s28-t26t35-tg1,up,t26t35,2n/3n-dnv,SYS-7049GP-TRT,C7470KH06A20137,10.32.8.10,10.30.55.10,3016.12,u39-u42
-s91-nomad,up,nomad-cluster1,nomad-client,R152-P30-00,GLG4P9912A0016,10.30.51.91,10.30.50.91,3016.12,u36
-s92-nomad,up,nomad-cluster1,nomad-client,R152-P30-00,GLG4P9912A0004,10.30.51.92,10.30.50.92,3016.12,u35
-s23-nomad,up,nomad-cluster1,nomad-server,SYS-1029P-WTRT,C1160LI12NM0256,10.30.51.23,10.30.51.23,3016.12,u34
-s24-nomad,up,nomad-cluster1,nomad-server,SYS-1029P-WTRT,C1160LI12NM0241,10.30.51.24,10.30.51.24,3016.12,u33
-s25-nomad,up,nomad-cluster1,nomad-server,SYS-1029P-WTRT,C1160LI12NM0540,10.30.51.25,10.30.51.25,3016.12,u32
-s61-t210-tg1,up,t210,2n-zn2,AS-1014S-WTRT,C8150LI50NS2689,10.32.8.25,10.30.55.25,3016.12,u31
-s60-t210-sut1,up,t210,2n-zn2,AS-1114S-WTRT,N/A,10.32.8.24,10.30.55.24,3016.12,u30
-s26-nomad,up,nomad-cluster1,nomad-server,SYS-7049GP-TRT,C7470KH37A30505,10.30.51.26,10.30.51.26,3016.12,u26-u29
-s33-t27-sut1,up,t27,2n-clx,SYS-7049GP-TRT,C7470KH37A30567,10.32.8.18,10.30.55.18,3016.12,u22-u25
-s34-t27-tg1,up,t27,2n-clx,SYS-7049GP-TRT,C7470KH37A30565,10.32.8.19,10.30.55.19,3016.12,u18-u21
-s35-t28-sut1,up,t28,2n-clx,SYS-7049GP-TRT,C7470KH37A30509,10.32.8.20,10.30.55.20,3016.12,u14-u17
-s36-t28-tg1,up,t28,2n-clx,SYS-7049GP-TRT,C7470KH37A30511,10.32.8.21,10.30.55.21,3016.12,u10-u13
-s37-t29-sut1,up,t29,2n-clx,SYS-7049GP-TRT,C7470KH37A30566,10.32.8.22,10.30.55.22,3016.12,u6-u9
-s38-t29-tg1,up,t29,2n-clx,SYS-7049GP-TRT,C7470KH37A30506,10.32.8.23,10.30.55.23,3016.12,u2-u5
diff --git a/docs/lab/fdio-dc-physical.yaml b/docs/lab/fdio-dc-physical.yaml
deleted file mode 100644
index 2f973d1755..0000000000
--- a/docs/lab/fdio-dc-physical.yaml
+++ /dev/null
@@ -1,567 +0,0 @@
----
-# file: fdio-dc-physical.yaml
-
-yul1:
- rack:
- name: yul1-8
- facility_id: 3016.8
- tenant: Linux Foundation
- status: active
- dimensions:
- type: 4-post cabinet
- width: 19 inches
- height: 48U
- - unit: 47
- name: mtl1-8-lb4m
- oper_status: production
- device_type: switch
- serial_number: N/A
- mgmt_ip4: N/A
- lom_ip4: N/A
- lom_type: N/A
- - unit: 42..45
- name: s65-t37-sut1
- oper_status: production
- device_type: SYS-740GP-TNRT
- serial_number: C7470KK25P50098
- mgmt_ip4: 10.30.51.75
- lom_ip4: 10.30.50.75
- - unit: 38..41
- name: s66-t37-sut2
- oper_status: production
- device_type: SYS-740GP-TNRT
- serial_number: C7470KK33P50247
- mgmt_ip4: 10.30.51.76
- lom_ip4: 10.30.50.76
- - unit: 34..37
- name: s67-t37-tg1
- oper_status: production
- device_type: SYS-740GP-TNRT
- serial_number: C7470KK25P50076
- mgmt_ip4: 10.30.51.77
- lom_ip4: 10.30.50.77
- - unit: 30..33
- name: s71-t212-sut1
- oper_status: production
- device_type: SYS-740GP-TNRT
- serial_number: C7470KK25P50173
- mgmt_ip4: 10.30.51.81
- lom_ip4: 10.30.50.81
- - unit: 26..29
- name: s72-t212-tg1
- oper_status: production
- device_type: SYS-740GP-TNRT
- serial_number: C7470KK33P50220
- mgmt_ip4: 10.30.51.82
- lom_ip4: 10.30.50.82
- - unit: 22..25
- name: s83-t213-sut1
- oper_status: production
- device_type: SYS-740GP-TNRT
- serial_number: C7470KL07P50300
- mgmt_ip4: 10.30.51.83
- lom_ip4: 10.30.50.83
- - unit: 18..21
- name: s84-t213-tg1
- oper_status: production
- device_type: SYS-740GP-TNRT
- serial_number: C7470KL03P50187
- mgmt_ip4: 10.30.51.84
- lom_ip4: 10.30.50.84
- - unit: 14..17
- name: s85-t214-sut1
- oper_status: production
- device_type: SYS-740GP-TNRT
- serial_number: C7470KK33P50219
- mgmt_ip4: 10.30.51.85
- lom_ip4: 10.30.50.85
- - unit: 10..13
- name: s86-t214-tg1
- oper_status: production
- device_type: SYS-740GP-TNRT
- serial_number: C7470KL07P50312
- mgmt_ip4: 10.30.51.86
- lom_ip4: 10.30.50.86
- - unit: 6..9
- name: s87-t215-sut1
- oper_status: production
- device_type: SYS-740GP-TNRT
- serial_number: C7470KL03P50171
- mgmt_ip4: 10.30.51.87
- lom_ip4: 10.30.50.87
- - unit: 2..5
- name: s88-t215-tg1
- oper_status: production
- device_type: SYS-740GP-TNRT
- serial_number: C7470KL07P50301
- mgmt_ip4: 10.30.51.88
- lom_ip4: 10.30.50.88
- name: yul1-9
- facility_id: 3016.9
- tenant: Linux Foundation
- status: active
- dimensions:
- type: 4-post cabinet
- width: 19 inches
- height: 48U
- - unit: 47
- name: mtl1-5-lb4m
- oper_status: production
- device_type: switch
- serial_number: N/A
- mgmt_ip4: N/A
- lom_ip4: N/A
- lom_type: N/A
- - unit: 42..45
- name: s11-t31-sut1
- oper_status: production
- device_type: SYS-7049GP-TRT
- serial_number: C7470KH06A20037
- mgmt_ip4: 10.30.51.46
- lom_ip4: 10.30.50.43
- - unit: 38..41
- name: s12-t31-sut2
- oper_status: production
- device_type: SYS-7049GP-TRT
- serial_number: C7470KH06A20018
- mgmt_ip4: 10.30.51.47
- lom_ip4: 10.30.50.44
- - unit: 34..37
- name: s13-t31-tg1
- oper_status: production
- device_type: SYS-7049GP-TRT
- serial_number: C7470KH06A20043
- mgmt_ip4: 10.30.51.48
- lom_ip4: 10.30.50.45
- - unit: 30..33
- name: s14-t32-sut1
- oper_status: production
- device_type: SYS-7049GP-TRT
- serial_number: C7470KH06A20075
- mgmt_ip4: 10.30.51.58
- lom_ip4: 10.30.50.55
- - unit: 26..29
- name: s15-t32-sut2
- oper_status: production
- device_type: SYS-7049GP-TRT
- serial_number: C7470KH06A20010
- mgmt_ip4: 10.30.51.59
- lom_ip4: 10.30.50.56
- - unit: 22..25
- name: s16-t32-tg1
- oper_status: production
- device_type: SYS-7049GP-TRT
- serial_number: C7470KH06A20047
- mgmt_ip4: 10.30.51.60
- lom_ip4: 10.30.50.57
- - unit: 18..21
- name: s25-t25-sut1
- oper_status: stage
- device_type: SYS-7049GP-TRT
- serial_number: C7470KH06A20022
- mgmt_ip4: 10.30.51.61
- lom_ip4: 10.30.50.58
- - unit: 14..17
- name: s19-t33t211-tg1
- oper_status: production
- device_type: SYS-7049GP-TRT
- serial_number: C7470KH06A20056
- mgmt_ip4: 10.30.51.49
- lom_ip4: 10.30.50.46
- - unit: 13
- name: s27-t211-sut1
- oper_status: production
- device_type: ThunderX2-9975
- serial_number: K61186073100003
- mgmt_ip4: 10.30.51.69
- lom_ip4: 10.30.50.69
- - unit: 11..12
- name: s18-t33-sut2
- oper_status: production
- device_type: HUAWEI-TAISHAN-2280
- serial_number: N/A
- mgmt_ip4: 10.30.51.37
- lom_ip4: 10.30.50.37
- - unit: 9..10
- name: s17-t33-sut1
- oper_status: production
- device_type: HUAWEI-TAISHAN-2280
- serial_number: N/A
- mgmt_ip4: 10.30.51.36
- lom_ip4: 10.30.50.36
-yul1:
- rack:
- name: yul1-10
- facility_id: 3016.10
- tenant: Linux Foundation
- status: active
- dimensions:
- type: 4-post cabinet
- width: 19 inches
- height: 48U
- - unit: 47
- name: yul1-10-lb4m
- oper_status: production
- device_type: switch
- serial_number: N/A
- mgmt_ip4: N/A
- lom_ip4: N/A
- - unit: 42..45
- name: s2-t12-sut1
- oper_status: production
- device_type: SYS-7049GP-TRT
- serial_number: C7470KH06A20119
- mgmt_ip4: 10.30.51.51
- lom_ip4: 10.30.50.48
- - unit: 38..41
- name: s1-t11-sut1
- oper_status: production
- device_type: SYS-7049GP-TRT
- serial_number: C7470KH06A20154
- mgmt_ip4: 10.30.51.50
- lom_ip4: 10.30.50.47
- - unit: 34..37
- name: s3-t21-sut1
- oper_status: production
- device_type: SYS-7049GP-TRT
- serial_number: C7470KH06A20167
- mgmt_ip4: 10.30.51.44
- lom_ip4: 10.30.50.41
- - unit: 30..33
- name: s4-t21-tg1
- oper_status: production
- device_type: SYS-7049GP-TRT
- serial_number: C7470KH06A20158
- mgmt_ip4: 10.30.51.45
- lom_ip4: 10.30.50.42
- - unit: 26..29
- name: s5-t22-sut1
- oper_status: production
- device_type: SYS-7049GP-TRT
- serial_number: N/A
- mgmt_ip4: 10.30.51.52
- lom_ip4: 10.30.50.49
- - unit: 22..25
- name: s6-t22-tg1
- oper_status: production
- device_type: SYS-7049GP-TRT
- serial_number: N/A
- mgmt_ip4: 10.30.51.53
- lom_ip4: 10.30.50.50
- - unit: 18..21
- name: s7-t23-sut1
- oper_status: production
- device_type: SYS-7049GP-TRT
- serial_number: N/A
- mgmt_ip4: 10.30.51.54
- lom_ip4: 10.30.50.51
- - unit: 14..17
- name: s8-t23-tg1
- oper_status: production
- device_type: SYS-7049GP-TRT
- serial_number: C7470KH06A20035
- mgmt_ip4: 10.30.51.55
- lom_ip4: 10.30.50.52
- - unit: 10..13
- name: s93-t39-sut1
- oper_status: production
- device_type: ?
- serial_number: ?
- mgmt_ip4: 10.30.51.93
- lom_ip4: 10.30.50.93
- - unit: 6..9
- name: s94-t39-sut2
- oper_status: production
- device_type: ?
- serial_number: ?
- mgmt_ip4: 10.30.51.94
- lom_ip4: 10.30.50.94
- - unit: 2..5
- name: s89-t39t310-tg1
- oper_status: production
- device_type: ?
- serial_number: ?
- mgmt_ip4: 10.30.51.89
- lom_ip4: 10.30.50.89
- rack:
- name: yul1-11
- facility_id: 3016.11
- tenant: Linux Foundation
- status: active
- dimensions:
- type: 4-post cabinet
- width: 19 inches
- height: 48U
- - unit: 48
- name: yul1-11-lb6m
- oper_status: production
- device_type: switch
- serial_number: N/A
- mgmt_ip4: N/A
- lom_ip4: N/A
- - unit: 47
- name: yul1-11-lf-tor-switch
- oper_status: production
- device_type: switch
- serial_number: N/A
- mgmt_ip4: N/A
- lom_ip4: N/A
- - unit: 46
- name: mtl1-6-7050QX-32
- oper_status: production
- device_type: switch
- serial_number: N/A
- mgmt_ip4: N/A
- lom_ip4: N/A
- - unit: 45
- name: fdio-marvell-dev
- oper_status: production
- device_type: ThunderX-88XX
- serial_number: N/A
- mgmt_ip4: 10.30.51.38
- lom_ip4: 10.30.50.38
- - unit: 41..42
- name: s56-t14-sut1
- oper_status: production
- device_type: ThunderX2-9980
- serial_number: N/A
- mgmt_ip4: 10.30.51.71
- lom_ip4: 10.30.50.71
- - unit: 39..40
- name: s20-nomad
- oper_status: production
- device_type: UCSC-C240-M4SX
- serial_number: FCH1950V1FQ
- mgmt_ip4: 10.30.51.20
- lom_ip4: 10.30.50.20
- - unit: 37..38
- name: s22-nomad
- oper_status: production
- device_type: UCSC-C240-M4SX
- serial_number: FCH2013V0HZ
- mgmt_ip4: 10.30.51.22
- lom_ip4: 10.30.50.22
- - unit: 35..36
- name: s21-nomad
- oper_status: production
- device_type: UCSC-C240-M4SX
- serial_number: FCH2013V0J2
- mgmt_ip4: 10.30.51.21
- lom_ip4: 10.30.50.21
- - unit: 31..34
- name: s78-t38-sut1
- oper_status: production
- device_type: SYS-740GP-TNRT
- serial_number: C7470KL03P50450
- mgmt_ip4: 10.30.51.78
- lom_ip4: 10.30.50.78
- - unit: 27..30
- name: s79-t38-sut2
- oper_status: production
- device_type: SYS-740GP-TNRT
- serial_number: C7470KL07P50297
- mgmt_ip4: 10.30.51.79
- lom_ip4: 10.30.50.79
- - unit: 23..26
- name: s80-t38-tg1
- oper_status: production
- device_type: SYS-740GP-TNRT
- serial_number: C7470KL03P50454
- mgmt_ip4: 10.30.51.80
- lom_ip4: 10.30.50.80
- - unit: 19..20
- name: s16-nomad
- oper_status: production
- device_type: UCSC-C240-M4S
- serial_number: FCH1950V1FN
- mgmt_ip4: 10.30.51.16
- lom_ip4: 10.30.50.16
- - unit: 17..18
- name: s17-nomad
- oper_status: production
- device_type: UCSC-C240-M4S
- serial_number: FCH1950V1H5
- mgmt_ip4: 10.30.51.17
- lom_ip4: 10.30.50.17
- - unit: 15..16
- name: s18-nomad
- oper_status: production
- device_type: UCSC-C240-M4S
- serial_number: FCH1950V1FS
- mgmt_ip4: 10.30.51.18
- lom_ip4: 10.30.50.18
- - unit: 13..14
- name: s19-nomad
- oper_status: production
- device_type: UCSC-C240-M4S
- serial_number: FCH1950V1FL
- mgmt_ip4: 10.30.51.19
- lom_ip4: 10.30.50.19
- - unit: 11..12
- name: s55-t13-sut1
- oper_status: production
- device_type: ThunderX2-9980
- serial_number: N/A
- mgmt_ip4: 10.30.51.70
- lom_ip4: 10.30.50.70
- - unit: 9..10
- name: s62-t34-sut1
- oper_status: production
- device_type: Mt.Jade Server System B81.030Z1.0007
- serial_number: 04000059N0SC
- mgmt_ip4: 10.30.51.72
- lom_ip4: 10.30.50.72
- - unit: 7..8
- name: s63-t34-sut2
- oper_status: production
- device_type: Mt.Jade Server System B81.030Z1.0007
- serial_number: 0390003EN0SC
- mgmt_ip4: 10.30.51.73
- lom_ip4: 10.30.50.73
- - unit: 3..6
- name: s64-t34-tg1
- oper_status: production
- device_type: SYS-740GP-TNRT
- serial_number: C7470KK40P50249
- mgmt_ip4: 10.30.51.74
- lom_ip4: 10.30.50.74
- rack:
- name: yul1-12
- facility_id: 3016.12
- tenant: Linux Foundation
- status: active
- dimensions:
- type: 4-post cabinet
- width: 19 inches
- height: 48U
- layout:
- - unit: 47
- name: yul1-12-lb4m
- oper_status: production
- - unit: 45
- name: s31-t35-sut2
- oper_status: production
- device_type: SYS-E300-9A
- serial_number: CE300AG39040898
- mgmt_ip4: 10.32.8.13
- lom_ip4: 10.30.55.13
- - unit: 44
- name: s30-t35-sut1
- oper_status: production
- device_type: SYS-E300-9A
- serial_number: CE300AG39040866
- mgmt_ip4: 10.32.8.12
- lom_ip4: 10.30.55.12
- - unit: 43
- name: s29-t26-sut1
- oper_status: production
- device_type: SYS-E300-9A
- serial_number: CE300AG39040897
- mgmt_ip4: 10.32.8.11
- lom_ip4: 10.30.55.11
- - unit: 39..42
- name: s28-t26t35-tg1
- oper_status: production
- device_type: SYS-7049GP-TRT
- serial_number: C7470KH06A20137
- mgmt_ip4: 10.32.8.10
- lom_ip4: 10.30.55.10
- - unit: 36
- name: s58-nomad
- oper_status:
- device_type: R152-P30-00
- serial_number: GLG4P9912A0016
- mgmt_ip4: 10.30.51.91
- lom_ip4: 10.30.50.91
- - unit: 35
- name: s59-nomad
- oper_status:
- device_type: R152-P30-00
- serial_number: GLG4P9912A0004
- mgmt_ip4: 10.30.51.92
- lom_ip4: 10.30.50.92
- - unit: 34
- name: s23-nomad
- oper_status: production
- device_type: SYS-1029P-WTRT
- serial_number: C1160LI12NM0256
- mgmt_ip4: 10.30.51.23
- lom_ip4: 10.30.51.23
- - unit: 33
- name: s24-nomad
- oper_status: production
- device_type: SYS-1029P-WTRT
- serial_number: C1160LI12NM0241
- mgmt_ip4: 10.30.51.24
- lom_ip4: 10.30.51.24
- - unit: 32
- name: s25-nomad
- oper_status: production
- device_type: SYS-1029P-WTRT
- serial_number: C1160LI12NM0540
- mgmt_ip4: 10.30.51.25
- lom_ip4: 10.30.51.25
- - unit: 31
- name: s61-t210-tg1
- oper_status: production
- device_type: AS-1014S-WTRT
- serial_number: C8150LI50NS2689
- mgmt_ip4: 10.32.8.25
- lom_ip4: 10.30.55.25
- - unit: 30
- name: s60-t210-sut1
- oper_status: production
- device_type: AS-1114S-WTRT
- serial_number: N/A
- mgmt_ip4: 10.32.8.24
- lom_ip4: 10.30.55.24
- - unit: 26..29
- name: s26-nomad
- oper_status: production
- device_type: SYS-7049GP-TRT
- serial_number: C7470KH37A30505
- mgmt_ip4: 10.30.51.26
- lom_ip4: 10.30.51.26
- - unit: 22..25
- name: s33-t27-sut1
- oper_status: production
- device_type: SYS-7049GP-TRT
- serial_number: C7470KH37A30567
- mgmt_ip4: 10.32.8.18
- lom_ip4: 10.30.55.18
- - unit: 18..21
- name: s34-t27-tg1
- oper_status: production
- device_type: SYS-7049GP-TRT
- serial_number: C7470KH37A30565
- mgmt_ip4: 10.32.8.19
- lom_ip4: 10.30.55.19
- - unit: 14..17
- name: s35-t28-sut1
- oper_status: production
- device_type: SYS-7049GP-TRT
- serial_number: C7470KH37A30509
- mgmt_ip4: 10.32.8.20
- lom_ip4: 10.30.55.20
- - unit: 10..13
- name: s36-t28-tg1
- oper_status: production
- device_type: SYS-7049GP-TRT
- serial_number: C7470KH37A30511
- mgmt_ip4: 10.32.8.21
- lom_ip4: 10.30.55.21
- - unit: 6..9
- name: s37-t29-sut1
- oper_status: production
- device_type: SYS-7049GP-TRT
- serial_number: C7470KH37A30566
- mgmt_ip4: 10.32.8.22
- lom_ip4: 10.30.55.22
- lom_type: ipmi
- - unit: 2..5
- name: s38-t29-tg1
- oper_status: production
- model: SYS-7049GP-TRT
- serial_number: C7470KH37A30506
- mgmt_ip4: 10.32.8.23
- ilo_ip4: 10.30.55.23 \ No newline at end of file
diff --git a/docs/lab/testbed_specifications.md b/docs/lab/testbed_specifications.md
deleted file mode 100644
index 47c41c23d3..0000000000
--- a/docs/lab/testbed_specifications.md
+++ /dev/null
@@ -1,2408 +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. [2-Node-Icelake Xeon Intel (2n-icx)](#2-node-icelake-xeon-intel-2n-icx)
- 1. [3-Node-Skylake Xeon Intel (3n-skx)](#3-node-skylake-xeon-intel-3n-skx)
- 1. [3-Node-Rangeley Atom Testbeds](#3-node-rangeley-atom-testbeds)
- 1. [3-Node-TaiShan Arm Huawei (3n-tsh)](#3-node-taishan-arm-huawei-3n-tsh)
- 1. [3-Node-Altra Arm Ampere (3n-alt)](#3-node-altra-arm-armpere-3n-alt)
- 1. [3-Node-Icelake Xeon Intel (3n-icx)](#3-node-icelake-xeon-intel-3n-icx)
- 1. [3-Node-SnowRidge Atom Intel (3n-snr)](#3-node-snowridge-atom-intel-3n-snr)
-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) PROD](#2-node-denverton-servers-2n-dnv-prod)
- 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) PROD](#2-node-thunderx2-servers-2n-tx2-prod)
- 1. [2-Node-Icelake Servers (2n-icx) PROD](#2-node-icelake-servers-2n-icx-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. [3-Node-Altra Servers (3n-alt) PROD](#3-node-altra-servers-3n-alt-prod)
- 1. [3-Node-Icelake Servers (3n-icx) PROD](#3-node-icelake-servers-3n-icx-prod)
- 1. [3-Node-SnowRidge Servers (3n-snr) PROD](#3-node-snowridge-servers-3n-snr-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) PROD](#2-node-denverton-wiring-2n-dnv-prod)
- 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) PROD](#2-node-thunderx2-wiring-2n-tx2-prod)
- 1. [2-Node-Icelake Servers (2n-icx) PROD](#2-node-icelake-servers-2n-icx-prod)
- 1. [3-Node-Skylake Wiring (3n-skx) PROD](#3-node-skylake-wiring-3n-skx-prod)
- 1. [3-Node-Rangeley Wiring (3n-rng) VERIFY](#3-node-rangeley-wiring-3n-rng-todo)
- 1. [3-Node-Taishan Wiring (3n-tsh) PROD](#3-node-taishan-wiring-3n-tsh-prod)
- 1. [3-Node-Altra Wiring (3n-alt) PROD](#3-node-altra-wiring-3n-alt-prod)
- 1. [3-Node-Icelake Wiring (3n-icx) PROD](#3-node-icelake-wiring-3n-icx-prod)
- 1. [3-Node-SnowRidge Wiring (3n-snr) PROD](#3-node-snowridge-wiring-3n-snr-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 #alt #clx #zn2 #icx #snr
- 1. 1-Node-Haswell nomad hsw na 4 4 0 4 0 0 0 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 0 0 0
- 3. 1-Node-ThunderX2 dev tx2 na 2 2 0 0 0 0 0 0 2 0 0 0 0 0 0
- 4. 1-Node-Cascadelake dev clx lcx 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0
- 5. 1-Node-AmpereAltra nomad alt na 2 2 0 0 0 0 0 0 0 0 2 0 0 0 0
- 6. 2-Node-Skylake perf skx skx 3 3 3 0 6 0 0 0 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 0 0 0
- 8. 2-Node-IxiaPS1L47 tcp skx ps1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0
- 9. 2-Node-Cascadelake perf clx clx 3 3 3 0 0 0 0 0 0 0 0 6 0 0 0
-10. 2-Node-ThunderX2 perf tx2 skx 1 1 .5 0 .5 0 0 0 1 0 0 0 0 0 0
-11. 2-Node-Icelake perf icx icx 4 4 4 0 0 0 0 0 0 0 0 0 0 8 0
-12. 3-Node-Skylake perf skx skx 2 4 2 0 6 0 0 0 0 0 0 0 0 0 0
-13. 3-Node-Rangeley perf rng skx 1 3 1 0 0 0 2 0 0 0 0 0 0 0 0
-14. 3-Node-Taishan perf tsh skx 1 2 .5 0 .5 0 0 0 0 2 0 0 0 0 0
-15. 3-Node-Altra perf alt icx 1 2 1 0 0 0 0 0 0 0 2 0 0 1 0
-16. 3-Node-Denverton perf dnv skx 1 2 1 0 .5 0 0 2 0 0 0 0 0 0 0
-17. 2-Node-Zen2 perf zn2 zn2 1 1 1 0 0 0 0 0 0 0 0 0 2 0 0
-18. 3-Node-Icelake perf icx icx 2 4 2 0 0 0 0 0 0 0 0 0 0 6 0
-19. 3-Node-SnowRidge perf snr icx 1 2 .5 0 0 0 0 0 0 0 0 0 0 .5 2
- Totals: 34 44 21.5 4 17 1 2 3 3 2 4 7 2 15.5 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-E11) 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-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-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-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-F4) 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-F1) 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-SnowRidge Atom Intel (3n-snr)
-
-Each 3-Node-SnowRidge testbed includes two SUTs (Server-Type-G1) and one
-TG (Server-Type-F4) 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 | s16-nomad
-10.30.50.17 | s17-nomad
-10.30.50.18 | s18-nomad
-10.30.50.19 | s19-nomad
-10.30.50.20 | s20-nomad
-10.30.50.21 | s21-nomad
-10.30.50.22 | s22-nomad
-10.30.50.23 | s23-nomad
-10.30.50.24 | s24-nomad
-10.30.50.25 | s25-nomad
-10.30.50.26 | s26-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.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-t33t211-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.69 | s27-t211-sut1
-10.30.50.70 | s55-t13-sut1
-10.30.50.71 | s56-t14-sut1
-10.30.50.72 | s62-t34-sut1
-10.30.50.73 | s63-t34-sut2
-10.30.50.74 | s64-t34-tg1
-10.30.50.75 | s65-t37-sut1
-10.30.50.76 | s66-t37-sut2
-10.30.50.77 | s67-t37-tg1
-10.30.50.78 | s78-t38-sut1
-10.30.50.79 | s79-t38-sut2
-10.30.50.80 | s80-t38-tg1
-10.30.50.81 | s71-t212-sut1
-10.30.50.82 | s72-t212-tg1
-10.30.50.83 | s83-t213-sut1
-10.30.50.84 | s84-t213-tg1
-10.30.50.85 | s85-t214-sut1
-10.30.50.86 | s86-t214-tg1
-10.30.50.87 | s87-t215-sut1
-10.30.50.88 | s88-t215-tg1
-10.30.50.89 | s89-t39t310-tg1
-10.30.50.90 | s90-t311t312-tg1
-10.30.50.91 | s91-nomad
-10.30.50.92 | s92-nomad
-10.30.50.93 | s93-t39-sut1
-10.30.50.94 | s94-t39-sut2
-10.30.50.255 | Broadcast
-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.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.15 | LF Reserved
-10.30.51.16 | s16-nomad
-10.30.51.17 | s17-nomad
-10.30.51.18 | s18-nomad
-10.30.51.19 | s19-nomad
-10.30.51.20 | s20-nomad
-10.30.51.21 | s21-nomad
-10.30.51.22 | s22-nomad
-10.30.51.23 | s23-nomad
-10.30.51.24 | s24-nomad
-10.30.51.25 | s25-nomad
-10.30.51.26 | s26-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.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-t33t211-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.69 | s27-t211-sut1
-10.30.51.70 | s55-t13-sut1
-10.30.51.71 | s56-t14-sut1
-10.30.51.72 | s62-t34-sut1
-10.30.51.73 | s63-t34-sut2
-10.30.51.74 | s64-t34-tg1
-10.30.51.75 | s65-t37-sut1
-10.30.51.76 | s66-t37-sut2
-10.30.51.77 | s67-t37-tg1
-10.30.51.78 | s78-t38-sut1
-10.30.51.79 | s79-t38-sut2
-10.30.51.80 | s80-t38-tg1
-10.30.51.81 | s71-t212-sut1
-10.30.51.82 | s72-t212-tg1
-10.30.51.83 | s83-t213-sut1
-10.30.51.84 | s84-t213-tg1
-10.30.51.85 | s85-t214-sut1
-10.30.51.86 | s86-t214-tg1
-10.30.51.87 | s87-t215-sut1
-10.30.51.88 | s88-t215-tg1
-10.30.51.89 | s89-t39t310-tg1
-10.30.51.90 | s90-t311t312-tg1
-10.30.51.91 | s91-nomad
-10.30.51.92 | s92-nomad
-10.30.51.93 | s93-t39-sut1
-10.30.51.94 | s94-t39-sut2
-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.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: empty.
- - PCIe Slot2: empty.
- - PCIe Slot3: empty.
- - Numa1: Left PCIe Riser Board (Riser 2) (x8, x16, x8 PCIe3.0 lanes)
- - PCIe Slot4: empty.
- - PCIe Slot5: empty.
- - PCIe Slot6: empty
- - 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 PCIe3.0 lanes)
- - PCIe Slot1: empty.
- - PCIe Slot2: empty.
- - PCIe Slot3: empty.
- - Numa1: Left PCIe Riser Board (Riser 2) (x8, x16, x8 PCIe3.0 lanes)
- - PCIe Slot4: empty.
- - PCIe Slot5: empty.
- - PCIe Slot6: empty
- - 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-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
-7. 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.
-8. 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+.
-9. 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.
-10. 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
-11. 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.
-12. 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.
-13. 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.
-14. Server-Type-C4: Purpose - Cascadelake Xeon Backend hosts for FD.io builds and data processing.
- - Quantity: 3.
- - 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:
- - no cards.
- - Numa1:
- - no cards.
-15. 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.
-16. 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.
-17. Server-Type-E11: 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.
-18. 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.
-19. 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.
-20. 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:
- - PCIe Slot1 0004:04:00.x: xl710-QDA2-2p40GE Intel.
- - Numa1:
- - no cards.
-21. 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
-22. Server-Type-E31: Purpose - Skylake Xeon 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.
-23. Server-Type-F1: Purpose - Icelake Xeon SUT for FD.io performance testing.
- - Quantity: 8.
- - Physical connectivity:
- - IPMI and host management ports.
- - NIC ports connected into 2-node 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 PCIe3.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 PCIe3.0 lanes)
- - PCIe Slot6 86:00.xx: empty.
- - PCIe Slot8 af:00.xx: empty.
- - PCIe Slot10 d8:00.xx: empty.
-24. Server-Type-F2: Purpose - Icelake 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-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 PCIe3.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 PCIe3.0 lanes)
- - PCIe Slot6 86:00.xx: e810-2CQDA2-2p100GE Intel.
- - PCIe Slot8 af:00.xx: empty.
- - PCIe Slot10 d8:00.xx: empty.
-25. Server-Type-F3: 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 PCIe3.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 PCIe3.0 lanes)
- - PCIe Slot6 86:00.xx: empty.
- - PCIe Slot8 af:00.xx: empty.
- - PCIe Slot10 d8:00.xx: empty.
-26. Server-Type-F4: Purpose - Icelake Xeon Shared TG for FD.io performance testing.
- - Quantity: 3.
- - 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 PCIe3.0 lanes)
- - PCIe Slot2 18:00.xx: xxv710-DA2-2p25GE 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: e810-XXVDA4-4p25GE Intel.
- - PCIe Slot8 af:00.xx: e810-2CQDA2-2p100GE Intel.
- - PCIe Slot10 d8:00.xx: empty.
-27. 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.
-```
-
-### 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-E11]:
- - testbedname: testbed13
- - hostname: s55-t13-sut1
- - IPMI IP: 10.30.50.70
- - Host IP: 10.30.51.70
- - portnames:
- - s55-t13-sut1-c4/p1 - 40GE-port1 XL710-QDA2-2p40GE.
- - s55-t13-sut1-c4/p2 - 40GE-port2 XL710-QDA2-2p40GE.
- - s55-t13-sut1-c8/p1 - 40GE-port1 ConnectX5-2p10/25GE Mellanox.
- - s55-t13-sut1-c8/p2 - 40GE-port2 ConnectX5-2p10/25GE Mellanox.
- - s55-t13-sut1-c14/p1 - 40GE-port1 XL710-QDA2-2p40GE.
- - s55-t13-sut1-c14/p2 - 40GE-port2 XL710-QDA2-2p40GE.
- - s55-t13-sut1-c26/p1 - 40GE-port1 ConnectX5-2p10/25GE Mellanox.
- - s55-t13-sut1-c26/p2 - 40GE-port2 ConnectX5-2p10/25GE Mellanox.
-- SUT [Server-Type-E11]:
- - testbedname: testbed14
- - hostname: s56-t14-sut1
- - IPMI IP: 10.30.50.71
- - Host IP: 10.30.51.71
- - portnames:
- - s56-t14-sut1-c4/p1 - 40GE-port1 XL710-QDA2-2p40GE.
- - s56-t14-sut1-c4/p2 - 40GE-port2 XL710-QDA2-2p40GE.
- - s56-t14-sut1-c8/p1 - 40GE-port1 ConnectX5-2p10/25GE Mellanox.
- - s56-t14-sut1-c8/p2 - 40GE-port2 ConnectX5-2p10/25GE Mellanox.
- - s56-t14-sut1-c14/p1 - 40GE-port1 XL710-QDA2-2p40GE.
- - s56-t14-sut1-c14/p2 - 40GE-port2 XL710-QDA2-2p40GE.
- - s56-t14-sut1-c26/p1 - 40GE-port1 ConnectX5-2p10/25GE Mellanox.
- - s56-t14-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.
- - s3-t21-tg1-c10/p1 - 10GE-port1 x710-4p10GE.
- - s3-t21-tg1-c10/p2 - 10GE-port2 x710-4p10GE.
- - s3-t21-tg1-c10/p3 - 10GE-port3 x710-4p10GE.
- - s3-t21-tg1-c10/p4 - 10GE-port4 x710-4p10GE.
-- 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.
- - s6-t22-tg1-c10/p1 - 10GE-port1 x710-4p10GE.
- - s6-t22-tg1-c10/p2 - 10GE-port2 x710-4p10GE.
- - s6-t22-tg1-c10/p3 - 10GE-port3 x710-4p10GE.
- - s6-t22-tg1-c10/p4 - 10GE-port4 x710-4p10GE.
-- 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.
- - s8-t23-tg1-c10/p1 - 10GE-port1 x710-4p10GE.
- - s8-t23-tg1-c10/p2 - 10GE-port2 x710-4p10GE.
- - s8-t23-tg1-c10/p3 - 10GE-port3 x710-4p10GE.
- - s8-t23-tg1-c10/p4 - 10GE-port4 x710-4p10GE.
-- 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.
- - s10-t24-tg1-c10/p1 - 10GE-port1 x710-4p10GE.
- - s10-t24-tg1-c10/p2 - 10GE-port2 x710-4p10GE.
- - s10-t24-tg1-c10/p3 - 10GE-port3 x710-4p10GE.
- - s10-t24-tg1-c10/p4 - 10GE-port4 x710-4p10GE.
-```
-
-#### 2-Node-Denverton Servers (2n-dnv) PROD
-
-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 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 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) PROD
-
-Note: Server19 (TG) is shared between testbed33 & testbed211
-
-```
-- 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 Servers (2n-icx) PROD
-
-```
-- SUT [Server-Type-F1]:
- - testbedname: testbed212.
- - hostname: s71-t212-sut1.
- - IPMI IP: 10.30.51.81
- - Host IP: 10.30.50.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.
-- TG [Server-Type-F2]:
- - testbedname: testbed212.
- - hostname: s72-t212-tg1.
- - IPMI IP: 10.30.51.82
- - Host IP: 10.30.50.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.
-- SUT [Server-Type-F1]:
- - testbedname: testbed213.
- - hostname: s83-t213-sut1.
- - IPMI IP: 10.30.51.83
- - Host IP: 10.30.50.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.
-- TG [Server-Type-F2]:
- - testbedname: testbed213.
- - hostname: s84-t213-tg1.
- - IPMI IP: 10.30.51.84
- - Host IP: 10.30.50.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.
-- SUT [Server-Type-F1]:
- - testbedname: testbed214.
- - hostname: s85-t214-sut1.
- - IPMI IP: 10.30.51.85
- - Host IP: 10.30.50.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.
-- TG [Server-Type-F2]:
- - testbedname: testbed214.
- - hostname: s86-t214-tg1.
- - IPMI IP: 10.30.51.86
- - Host IP: 10.30.50.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.
-- SUT [Server-Type-F1]:
- - testbedname: testbed215.
- - hostname: s87-t215-sut1.
- - IPMI IP: 10.30.51.87
- - Host IP: 10.30.50.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.
-- TG [Server-Type-F2]:
- - testbedname: testbed215.
- - hostname: s88-t215-tg1.
- - IPMI IP: 10.30.51.88
- - Host IP: 10.30.50.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.
-```
-
-#### 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.
-- 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.
-- 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-c10/p1 - 10GE-port1 x710-4p10GE.
- - s13-t31-tg1-c10/p2 - 10GE-port2 x710-4p10GE.
- - s13-t31-tg1-c10/p3 - 10GE-port3 x710-4p10GE.
- - s13-t31-tg1-c10/p4 - 10GE-port4 x710-4p10GE.
-- 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.
-- 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.
-- 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-c10/p1 - 10GE-port1 x710-4p10GE.
- - s16-t32-tg1-c10/p2 - 10GE-port2 x710-4p10GE.
- - s16-t32-tg1-c10/p3 - 10GE-port3 x710-4p10GE.
- - s16-t32-tg1-c10/p4 - 10GE-port4 x710-4p10GE.
-```
-
-#### 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 & testbed211
-
-```
-- 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 Servers (3n-alt) PROD
-
-```
-- 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.
-- 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.
-- TG [Server-Type-F4]:
- - 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-c6/p1 - 25GE-port1 e810-XXVDA4-4p25GE.
- - s64-t34-tg1-c6/p2 - 25GE-port2 e810-XXVDA4-4p25GE.
- - s64-t34-tg1-c6/p3 - 25GE-port3 e810-XXVDA4-4p25GE.
- - s64-t34-tg1-c6/p4 - 25GE-port4 e810-XXVDA4-4p25GE.
- - s64-t34-tg1-c8/p1 - 100GE-port1 e810-2CQDA2-2p100GE.
- - s64-t34-tg1-c8/p2 - 100GE-port2 e810-2CQDA2-2p100GE.
-```
-
-#### 3-Node-Denverton Servers (3n-dnv) PROD
-
-```
-- 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.
-```
-
-#### 3-Node-Icelake Servers (3n-icx) PROD
-
-```
-- ServerF1 [Server-Type-F1]:
- - 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.
-- ServerF1 [Server-Type-F1]:
- - 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.
-- ServerF3 [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.
-- ServerF1 [Server-Type-F1]:
- - 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.
-- ServerF1 [Server-Type-F1]:
- - 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.
-- ServerF3 [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.
-```
-
-#### 3-Node-SnowRidge Servers (3n-snr) PROD
-
-```
-- 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-F4]:
- - 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.
-```
-
-### 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/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-ThunderX2 Wiring (1n-tx2) PROD
-
-```
-- testbed13:
- - ring1 40GE-ports XL710-QDA2-2p40GE on SUTs:
- - s55-t13-sut1-c4/p1 - s55-t13-sut1-c14/p1.
- - ring2 40GE-ports XL710-QDA2-2p40GE on SUTs:
- - s55-t13-sut1-c4/p2 - s55-t13-sut1-c14/p2.
- - ring3 10/25GE-ports ConnectX5-2p10/25GE on SUTs:
- - s55-t13-sut1-c8/p1 - s55-t13-sut1-c26/p1.
- - ring4 10/25GE-ports ConnectX5-2p10/25GE on SUTs:
- - s55-t13-sut1-c8/p2 - s55-t13-sut1-c26/p2.
-
-- testbed14:
- - ring1 40GE-ports XL710-QDA2-2p40GE on SUTs:
- - s56-t14-sut1-c4/p1 - s56-t14-sut1-c14/p1.
- - ring2 40GE-ports XL710-QDA2-2p40GE on SUTs:
- - s56-t14-sut1-c4/p2 - s56-t14-sut1-c14/p2.
- - ring3 10/25GE-ports ConnectX5-2p10/25GE on SUTs:
- - s56-t14-sut1-c8/p1 - s56-t14-sut1-c26/p1.
- - ring4 10/25GE-ports ConnectX5-2p10/25GE on SUTs:
- - s56-t14-sut1-c8/p2 - s56-t14-sut1-c26/p2.
-```
-
-#### 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.
- - ring4 10GE-ports x710-4p10GE loopbacks on TG for self-tests:
- - s4-t21-tg1-c10/p1 to s4-t21-tg1-c10/p2.
- - s4-t21-tg1-c10/p3 to s4-t21-tg1-c10/p4.
-- 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.
- - ring4 10GE-ports x710-4p10GE loopbacks on TG for self-tests:
- - s6-t22-tg1-c10/p1 to s6-t22-tg1-c10/p2.
- - s6-t22-tg1-c10/p3 to s6-t22-tg1-c10/p4.
-- 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.
- - ring4 10GE-ports x710-4p10GE loopbacks on TG for self-tests:
- - s8-t23-tg1-c10/p1 to s8-t23-tg1-c10/p2.
- - s8-t23-tg1-c10/p3 to s8-t23-tg1-c10/p4.
-- 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.
- - ring4 10GE-ports x710-4p10GE loopbacks on TG for self-tests:
- - s10-t24-tg1-c10/p1 to s10-t24-tg1-c10/p2.
- - s10-t24-tg1-c10/p3 to s10-t24-tg1-c10/p4.
-```
-
-#### 2-Node-Denverton Wiring (2n-dnv) PROD
-
-```
-- 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 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 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) PROD
-
-```
-- 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 Wiring (2n-icx) PROD
-
-```
-- testbed212:
- - ring1 25GE-ports xxv710-DA2-2p25GE on SUT
- - 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 on SUT:
- - 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 on SUT:
- - 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 on SUT:
- - s72-t212-tg1-c6/p1 to s72-t212-tg1-c6/p2.
- - s72-t212-tg1-c6/p2 to s72-t212-tg1-c6/p1.
-- testbed213:
- - ring1 25GE-ports xxv710-DA2-2p25GE on SUT
- - 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 on SUT:
- - 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 on SUT:
- - 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 on SUT:
- - s84-t213-tg1-c6/p1 to s84-t213-tg1-c6/p2.
- - s84-t213-tg1-c6/p2 to s84-t213-tg1-c6/p1.
-- testbed214:
- - ring1 25GE-ports xxv710-DA2-2p25GE on SUT
- - 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 on SUT:
- - 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 on SUT:
- - 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 on SUT:
- - s86-t214-tg1-c6/p1 to s86-t214-tg1-c6/p2.
- - s86-t214-tg1-c6/p2 to s86-t214-tg1-c6/p1.
-- testbed215:
- - ring1 25GE-ports xxv710-DA2-2p25GE on SUT
- - 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 on SUT:
- - 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 on SUT:
- - 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 on SUT:
- - s88-t215-tg1-c6/p1 to s88-t215-tg1-c6/p2.
- - s88-t215-tg1-c6/p2 to s88-t215-tg1-c6/p1.
-```
-
-#### 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) VERIFY
-
-```
-To be completed.
-```
-
-#### 3-Node-Taishan Wiring (3n-tsh) PROD
-
-```
-- 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 Wiring (3n-alt) PROD
-
-```
-- 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.
-```
-
-#### 3-Node-Denverton Wiring (3n-dnv) PROD
-
-```
-- 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.
-```
-
-#### 3-Node-Icelake Wiring (3n-icx) PROD
-
-```
-- testbed37:
- - ring1 25GE-ports xxv710-DA2-2p25GE on SUTs:
- - 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 on SUT:
- - 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 on SUT
- - 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.
-- testbed38:
- - ring1 25GE-ports xxv710-DA2-2p25GE on SUTs:
- - 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 on SUT:
- - 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 on SUT
- - 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.
-```
-
-#### 3-Node-SnowRidge Wiring (3n-snr) PROD
-
-```
-- testbed39:
- - ring1 25GE-ports e810-XXVDA4-4p25GE on SUTs and TG:
- - 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.
-```
-
-## 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.
-2. Arm Neoverse N1 servers
- - 2 * Ampere Altra (Performance)
- - Chassis: WIWYNN Mt.Jade Server System B81.030Z1.0007 2U
- - 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
- - 2 * Ampere Altra (Build)
- - 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
-```
-
-### 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
- - ?
-2. 25GE NICs
- - ?
-3. 40GE NICs
- - ?
-4. 100GE NICs
- - ?
-```
-
-### Pluggables and Cables
-
-Pluggables:
-
-```
-1. 10GE SFP+
- - ?
-2. 25GE SFP28
- - ?
-3. 40GE QSFP+
- - ?
-4. 100GE
- - ?
-```
-
-Standalone cables:
-
-```
-1. 10GE
- - ?
-2. 25GE
- - ?
-3. 40GE QSFP+
- - ?
-4. 100GE
- - ?
-```
-
-### 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 c1f5e28034..0000000000
--- a/docs/lab/testbeds_sm_clx_hw_bios_cfg.md
+++ /dev/null
@@ -1,1452 +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 E810 Firmware. ice.
-s33-t27-sut1. 10.30.55.18. 1.67. 3.2. 03.B1.05. 0500002C. A5.01.18. 8.30 0x8000a49d 1.2926.0. 8.30 0x8000a485 1.2926.0. 2.17.15. 16.32.1010. 5.3-1.0.5.0. 3.20 0x8000d83e 1.3146.0. 1.8.3.
-s34-t27-tg1. 10.30.55.19. 1.67. 3.2. 03.B1.05. 0500002C. A5.01.18. 8.00 0x80008b82 1.2007.0. 8.00 0x80008c1a 1.2007.0. 2.14.13. 16.32.1010. 5.5-1.0.3.2. N/A. N/A.
-s35-t28-sut1. 10.30.55.20. 1.67. 3.2. 03.B1.05. 0500002C. A5.01.18. 8.30 0x8000a49d 1.2926.0. 8.30 0x8000a485 1.2926.0. 2.17.15. 16.32.1010. 5.3-1.0.5.0. 3.20 0x8000d83e 1.3146.0. 1.8.3.
-s36-t28-tg1. 10.30.55.21. 1.67. 3.2. 03.B1.05. 0500002C. A5.01.18. 8.00 0x80008b82 1.2007.0. 8.00 0x80008c1a 1.2007.0. 2.14.13. 16.32.1010. 5.5-1.0.3.2. N/A. N/A.
-s37-t29-sut1. 10.30.55.22. 1.67. 3.2. 03.B1.05. 0500002C. A5.01.18. 8.30 0x8000a49d 1.2926.0. 8.30 0x8000a485 1.2926.0. 2.17.15. 16.32.1010. 5.3-1.0.5.0. 3.20 0x8000d83e 1.3146.0. 1.8.3.
-s38-t29-tg1. 10.30.55.23. 1.67. 3.2. 03.B1.05. 0500002C. A5.01.18. 8.00 0x80008b82 1.2007.0. 8.00 0x80008c1a 1.2007.0. 2.14.13. 16.32.1010. 5.5-1.0.3.2. N/A. N/A.
-```
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_icx_hw_bios_cfg.md b/docs/lab/testbeds_sm_icx_hw_bios_cfg.md
deleted file mode 100644
index b897d64593..0000000000
--- a/docs/lab/testbeds_sm_icx_hw_bios_cfg.md
+++ /dev/null
@@ -1,1256 +0,0 @@
-# SuperMicro Icelake 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 ICX Server BIOS Configuration](#xeon-icx-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 ICX Server Firmware Inventory](#xeon-icx-server-firmware-inventory)
-
-## 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 pci
-
-```
- $ dmidecode -t slot
-Handle 0x000A, DMI type 9, 17 bytes
-System Slot Information
- Designation: CPU1 SLOT2 PCI-E 4.0 X16
- Type: x16 <OUT OF SPEC>
- Current Usage: In Use
- Length: Short
- Characteristics:
- 3.3 V is provided
- Opening is shared
- PME signal is supported
- Bus Address: 0000:4b:00.0
-
-Handle 0x000B, DMI type 9, 17 bytes
-System Slot Information
- Designation: CPU1 SlOT4 PCI-E 4.0 X16
- Type: x16 <OUT OF SPEC>
- Current Usage: In Use
- Length: Short
- Characteristics:
- 3.3 V is provided
- Opening is shared
- PME signal is supported
- Bus Address: 0000:31:00.0
-
-Handle 0x000C, DMI type 9, 17 bytes
-System Slot Information
- Designation: CPU2 SLOT6 PCI-E 4.0 X16
- Type: x16 <OUT OF SPEC>
- Current Usage: Available
- Length: Short
- Characteristics:
- 3.3 V is provided
- Opening is shared
- PME signal is supported
- Bus Address: 0000:ff:00.0
-
-Handle 0x000D, DMI type 9, 17 bytes
-System Slot Information
- Designation: CPU2 SLOT8 PCI-E 4.0 X16
- Type: x16 <OUT OF SPEC>
- Current Usage: Available
- Length: Short
- 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: CPU1 SLOT9 PCI-E 4.0 X16
- Type: x16 <OUT OF SPEC>
- Current Usage: In Use
- Length: Short
- Characteristics:
- 3.3 V is provided
- Opening is shared
- PME signal is supported
- Bus Address: 0000:17:00.0
-
-Handle 0x000F, DMI type 9, 17 bytes
-System Slot Information
- Designation: CPU2 SLOT10 PCI-E 4.0 X16
- Type: x16 <OUT OF SPEC>
- Current Usage: Available
- Length: Short
- 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 SLOT11 PCI-E 4.0 X8
- Type: x8 <OUT OF SPEC>
- Current Usage: Available
- Length: Short
- 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: M.2-HC1
- 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
-
-Handle 0x0012, DMI type 9, 17 bytes
-System Slot Information
- Designation: M.2-HC2
- 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 0x0033, DMI type 16, 23 bytes
-Physical Memory Array
- Location: System Board Or Motherboard
- Use: System Memory
- Error Correction Type: Single-bit ECC
- Maximum Capacity: 12 TB
- Error Information Handle: Not Provided
- Number Of Devices: 16
-
-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 | |
-```
-
-## Xeon ICX Server Firmware Inventory
-
-```
-Host. IPMI IP. BMC. BIOS. CPLD. CPU Microcode. PCI Bus. X710 Firmware. i40e. E810 Firmware. ice.
-s65-t37-sut1. 10.30.50.75. 1.00.21. 1.1. F1.00.07. 0D000280. A5.01.24. 8.30 0x8000a49d 1.2926.0. 2.17.15. 3.20 0x8000d83e 1.3146.0. 1.8.3.
-s66-t37-sut2. 10.30.50.76. 1.00.21. 1.1. F1.00.07. 0D000280. A5.01.24. 8.30 0x8000a49d 1.2926.0. 2.14.15. 3.20 0x8000d83e 1.3146.0. 1.8.3.
-s67-t37-tg1. 10.30.50.77. 1.00.21. 1.1. F1.00.07. 0D000280. A5.01.24. 8.30 0x8000a49d 1.2926.0. 2.14.13. 3.20 0x8000d83e 1.3146.0. 1.8.3.
-s78-t38-sut1. 10.30.50.78. 1.00.21. 1.1. F1.00.07. 0D000280. A5.01.24. 8.30 0x8000a49d 1.2926.0. 2.17.15. 3.20 0x8000d83e 1.3146.0. 1.8.3.
-s79-t38-sut2. 10.30.50.79. 1.00.21. 1.1. F1.00.07. 0D000280. A5.01.24. 8.30 0x8000a49d 1.2926.0. 2.14.15. 3.20 0x8000d83e 1.3146.0. 1.8.3.
-s80-t38-tg1. 10.30.50.80. 1.00.21. 1.1. F1.00.07. 0D000280. A5.01.24. 8.30 0x8000a49d 1.2926.0. 2.14.13. 3.20 0x8000d83e 1.3146.0. 1.8.3.
-s71-t212-sut1. 10.30.50.81. 1.00.21. 1.1. F1.00.07. 0D000280. A5.01.24. 8.30 0x8000a49d 1.2926.0. 2.17.15. 3.20 0x8000d83e 1.3146.0. 1.8.3.
-s72-t212-tg1. 10.30.50.82. 1.00.21. 1.1. F1.00.07. 0D000280. A5.01.24. 8.30 0x8000a49d 1.2926.0. 2.14.13. 3.20 0x8000d83e 1.3146.0. 1.8.3.
-s83-t213-sut1. 10.30.50.83. 1.00.21. 1.1. F1.00.07. 0D000280. A5.01.24. 8.30 0x8000a49d 1.2926.0. 2.17.15. 3.20 0x8000d83e 1.3146.0. 1.8.3.
-s84-t213-tg1. 10.30.50.84. 1.00.21. 1.1. F1.00.07. 0D000280. A5.01.24. 8.30 0x8000a49d 1.2926.0. 2.14.13. 3.20 0x8000d83e 1.3146.0. 1.8.3.
-s85-t214-sut1. 10.30.50.85. 1.00.21. 1.1. F1.00.07. 0D000280. A5.01.24. 8.30 0x8000a49d 1.2926.0. 2.17.15. 3.20 0x8000d83e 1.3146.0. 1.8.3.
-s86-t214-tg1. 10.30.50.86. 1.00.21. 1.1. F1.00.07. 0D000280. A5.01.24. 8.30 0x8000a49d 1.2926.0. 2.14.13. 3.20 0x8000d83e 1.3146.0. 1.8.3.
-s87-t215-sut1. 10.30.50.87. 1.00.21. 1.1. F1.00.07. 0D000280. A5.01.24. 8.30 0x8000a49d 1.2926.0. 2.17.15. 3.20 0x8000d83e 1.3146.0. 1.8.3.
-s88-t215-tg1. 10.30.50.88. 1.00.21. 1.1. F1.00.07. 0D000280. A5.01.24. 8.30 0x8000a49d 1.2926.0. 2.14.13. 3.20 0x8000d83e 1.3146.0. 1.8.3.
-```
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 b00ba370b6..0000000000
--- a/docs/lab/testbeds_sm_skx_hw_bios_cfg.md
+++ /dev/null
@@ -1,578 +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.8.20-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.8.20-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. 8.30 0x8000a49a 1.2926.0. 8.30 0x8000a485 1.2926.0. 2.17.15.
-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. 8.00 0x80008b80 1.2007.0. 8.00 0x80008c1a 1.2007.0. 2.14.13.
-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. 8.30 0x8000a49a 1.2926.0. 8.30 0x8000a485 1.2926.0. 2.17.15.
-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. 8.00 0x80008b80 1.2007.0. 8.00 0x80008c1a 1.2007.0. 2.14.13.
-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. 8.30 0x8000a49a 1.2926.0. 8.30 0x8000a485 1.2926.0. 2.17.15.
-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. 8.00 0x80008b80 1.2007.0. 8.00 0x80008c1a 1.2007.0. 2.14.13.
-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. 8.30 0x8000a49a 1.2926.0. 8.30 0x8000a485 1.2926.0. 2.17.15.
-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. 8.00 0x80008b80 1.2007.0. 8.00 0x80008c1a 1.2007.0. 2.14.13.
-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. 8.30 0x8000a49a 1.2926.0. 8.30 0x8000a485 1.2926.0. 2.17.15.
-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. 8.30 0x8000a49a 1.2926.0. 8.30 0x8000a485 1.2926.0. 2.17.15.
-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. 8.00 0x80008b80 1.2007.0. 8.00 0x80008c1a 1.2007.0. 2.14.13.
-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. 8.30 0x8000a49a 1.2926.0. 8.30 0x8000a485 1.2926.0. 2.17.15.
-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. 8.30 0x8000a49a 1.2926.0. 8.30 0x8000a485 1.2926.0. 2.17.15.
-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. 8.00 0x80008b80 1.2007.0. 8.00 0x80008c1a 1.2007.0. 2.14.13.
-s19-t33t211-sut1. 10.30.50.46. 1.39. 3.2. 03.B1.03. 2.19.1268. 02000065. A5.01.18. 4.0.4.294. 8.00 0x80008b80 1.2007.0. 8.00 0x80008c1a 1.2007.0. 2.17.15.
-s28-t26t35-tg1. 10.30.55.10. 1.39. 3.2. 03.B1.03. 2.19.1268. 02000065. A5.01.18. 4.0.4.294. 8.00 0x80008b80 1.2007.0. N/A. 2.14.13.
-```
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 9c2c4b9503..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. ?. 8.30 0x8000a4c7 1.2074.0. 8.30 0x8000a485 1.2926.0. 2.17.15. 16.32.1010. 5.3-1.0.5.0.
-s61-t210-tg1. 10.30.55.25. 03.10.04. 1.1a. 02.c2.00. 0x8301038. ?. 8.00 0x80008c1a 1.2007.0. 8.00 0x80008ba1 1.2007.0. 2.14.13. 16.32.1010. 5.5-1.0.3.2.
-``` \ No newline at end of file
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/model/current/schema/test_case.info.schema.json b/docs/model/current/schema/test_case.info.schema.json
deleted file mode 100644
index d99dd4766a..0000000000
--- a/docs/model/current/schema/test_case.info.schema.json
+++ /dev/null
@@ -1,544 +0,0 @@
-{
- "$id": "https://fd.io/FIXME/CSIT/UTI/test_case/info/1.0.1",
- "$schema": "https://json-schema.org/draft/2020-12/schema",
- "description": "Schema for info 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, present only in info output files. 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"
- }
- },
- "log": {
- "description": "No log items are implemented in the current version, but the (empty) list is present to simplify logic in multi-version importers.",
- "$ref": "#/$defs/types/empty_array"
- },
- "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 (Non Drop Rate). For PPS, this is aggregate (bidirectional) rate. Each bound was used as the target load value in a full-duration trial measurement. The accepted loss ratio for NDR is exact zero. Note that packets the Traffic Generator did not send are also counted as lost packets.",
- "$ref": "#/$defs/macros/lower_and_upper_rate"
- },
- "pdr": {
- "description": "The results refer to search for PDR (Partial Drop Rate). For PPS, this is aggregate (bidirectional) rate. Each bound was used as the target load value in a full-duration trial measurement. The accepted loss ratio for PDR is 0.5%. Note that packets the Traffic Generator did not send are also counted as lost packets.",
- "$ref": "#/$defs/macros/lower_and_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_upper_rate"
- }
- },
- "required": [
- "type",
- "critical_rate"
- ]
- }
- ]
- }
- ]
- },
- "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, present only in info output files. 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, present only in info output files. 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, present only in info output files. 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, present only in info output files. 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",
- "vsap"
- ]
- },
- "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.0.1"
- }
- },
- "required": [
- "duration",
- "dut_type",
- "dut_version",
- "end_time",
- "hosts",
- "log",
- "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) or connections per second (cps).",
- "type": "string",
- "enum": [
- "pps",
- "cps"
- ]
- },
- "bandwidth_unit": {
- "description": "Unit of measurement for bandwidth values. Currently a constant, but later versions of model may allow more units.",
- "enum": [
- "bps"
- ]
- },
- "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"
- ]
- },
- "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, present only in info output files. It is the arithmetic average of the values list.",
- "$ref": "#/$defs/types/nonnegative_number"
- },
- "stdev": {
- "description": "A derived quantity, present only in info output files. 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 entity, thus it only appears in info output, and only if rate unit is pps.",
- "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_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",
- "upper"
- ]
- },
- "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"
- ]
- }
- }
- }
-} \ No newline at end of file
diff --git a/docs/model/current/schema/test_case.info.schema.yaml b/docs/model/current/schema/test_case.info.schema.yaml
deleted file mode 100644
index 9fd105a972..0000000000
--- a/docs/model/current/schema/test_case.info.schema.yaml
+++ /dev/null
@@ -1,624 +0,0 @@
-# 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.
-
----
-
-$id: https://fd.io/FIXME/CSIT/UTI/test_case/info/1.0.1
-$schema: https://json-schema.org/draft/2020-12/schema
-description: >-
- Schema for info 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, present only in info output files.
- 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
- log:
- description: >-
- No log items are implemented in the current version,
- but the (empty) list is present to simplify logic
- in multi-version importers.
- $ref: "#/$defs/types/empty_array"
- 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
- (Non Drop Rate). For PPS, this is aggregate
- (bidirectional) rate.
- Each bound was used as the target load value
- in a full-duration trial measurement.
- The accepted loss ratio for NDR is exact zero.
- Note that packets the Traffic Generator
- did not send are also counted as lost packets.
- $ref: "#/$defs/macros/lower_and_upper_rate"
- pdr:
- description: >-
- The results refer to search for PDR
- (Partial Drop Rate). For PPS, this is aggregate
- (bidirectional) rate.
- Each bound was used as the target load value
- in a full-duration trial measurement.
- The accepted loss ratio for PDR is 0.5%.
- Note that packets the Traffic Generator
- did not send are also counted as lost packets.
- $ref: "#/$defs/macros/lower_and_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_upper_rate"
- required:
- - type
- - critical_rate
- 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, present only in info output files.
- 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, present only in info output files.
- 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, present only in info output files.
- 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, present only in info output files.
- 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
- - vsap
- 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.0.1
- required:
- - duration
- - dut_type
- - dut_version
- - end_time
- - hosts
- - log
- - 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) or connections per second (cps).
- type: string
- enum:
- - pps
- - cps
- bandwidth_unit:
- description: >-
- Unit of measurement for bandwidth values.
- Currently a constant, but later versions of model
- may allow more units.
- enum:
- - bps
- 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
- 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, present only in info output files.
- It is the arithmetic average of the values list.
- $ref: "#/$defs/types/nonnegative_number"
- stdev:
- description: >-
- A derived quantity, present only in info output files.
- 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 entity, thus it only appears in info output,
- and only if rate unit is pps.
- 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_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
- - upper
- 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/docs/model/current/schema/todos.txt b/docs/model/current/schema/todos.txt
deleted file mode 100644
index 91e8bb49bb..0000000000
--- a/docs/model/current/schema/todos.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-
-Add description with link to methodology for MRR, NDRPDR and SOAK.
-
-Add multiplicity field to MRR result, so PAL can detect incomplete samples.
-
-Add link explaining our L1 bandwidth calculation.
-
-Add a link to URL explaining how to decode the hdrh data.
diff --git a/docs/model/current/schema/yaml2json.py b/docs/model/current/schema/yaml2json.py
deleted file mode 100644
index 1b69ba9c92..0000000000
--- a/docs/model/current/schema/yaml2json.py
+++ /dev/null
@@ -1,27 +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.
-
-"""Utility to convert from .schema.yaml to .schema.json.
-
-TODO: Read the input file name from command line argument.
-"""
-
-import glob
-import json
-import yaml
-
-
-for filename in glob.glob(u"*.schema.yaml"):
- name = filename[:-5]
- with open(f"{name}.yaml", u"r") as fin, open(f"{name}.json", u"w") as fout:
- json.dump(yaml.load(fin.read()), fout, indent=2)
diff --git a/docs/model/current/top.rst b/docs/model/current/top.rst
deleted file mode 100644
index ee33a29cd3..0000000000
--- a/docs/model/current/top.rst
+++ /dev/null
@@ -1,83 +0,0 @@
-..
- 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.
-
-
-CSIT model
-^^^^^^^^^^
-
-This document describes what is currently implemented in CSIT,
-especially the export side (UTI), not import side (PAL).
-
-Version
-~~~~~~~
-
-This document is valid for CSIT model version 1.0.1.
-
-It is recommended to use semantic versioning: https://semver.org/
-That means, if the new model misses a field present in the old model,
-bump the major version. If the new model adds a field
-not present in the old model, bump the minor version.
-Any other edit in the implmenetation (or documentation) bumps the patch version.
-If you change value type or formatting,
-consider whether the parser (PAL) understands the new value correctly.
-Renaming a field is the same as adding a new one and removing the old one.
-Parser (PAL) has to know exact major version and minimal minor version,
-and unless bugs, it can ignore patch version and bumped minor version.
-
-UTI
-~~~
-
-UTI stands for Unified Test Interface.
-It mainly focuses on exporting information gathered during test run
-into JSON output files.
-
-Output Structure
------------------
-
-UTI outputs come in filesystem tree structure (single tree), where directories
-correspond to suite levels and files correspond to suite setup, suite teardown
-or any test case at this level of suite.
-The directory name comes from SUITE_NAME Robot variable (the last part
-as the previous parts are higher level suites), converted to lowercase.
-If the suite name contains spaces (Robot converts underscores to spaces),
-they are replaced with underscores.
-
-The filesystem tree is rooted under tests/ (as suites in git are there),
-and for each component (test case, suite setup, suite teardown)
-two files are generated.
-The "raw" variant is suitable for debugging (can contain lower level logging),
-while the "info" variant is suitable for processing by PAL
-(can contain derivative values so PAL does not need to compute them
-on every download).
-Their structure and content is mostly identical, model definition mentions
-if a particular subschema is not identical in the two variants.
-It is possible to convert from raw to info, but not the other way.
-
-Although we expect only ASCII text in the exported files,
-we manipulate files using UTF-8 encoding,
-so if Robot Framework uses a non-ascii character, it will be handled.
-
-JSON schemas
-------------
-
-CSIT model is formally defined as a collection of JSON schema documents,
-one for each output file type.
-
-The current version specifies only one output file type:
-Info output for test case.
-
-The authoritative JSON schema documents are in JSON format.
-Git repository also contains YAML formatted document and conversion utility,
-which simplifies maintaining of the JSON document
-(no need to track brackets and commas), but are not authoritative.
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 bd20d823aa..0000000000
--- a/docs/report/detailed_test_results/dpdk_performance_results/index.rst
+++ /dev/null
@@ -1,17 +0,0 @@
-DPDK Throughput
-===============
-
-.. toctree::
- ../dpdk_performance_results_2n_icx/index
- ../dpdk_performance_results_3n_icx/index
- ../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_alt/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 12a209d38b..0000000000
--- a/docs/report/detailed_test_results/dpdk_performance_results_2n_clx/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-clx
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io dpdk coverage 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 631837ec56..0000000000
--- a/docs/report/detailed_test_results/dpdk_performance_results_2n_dnv/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-dnv
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io dpdk coverage 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_icx/index.rst b/docs/report/detailed_test_results/dpdk_performance_results_2n_icx/index.rst
deleted file mode 100644
index 7c594edc04..0000000000
--- a/docs/report/detailed_test_results/dpdk_performance_results_2n_icx/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-icx
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io dpdk coverage job 2n-icx`_,
- 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 9a00d28f7a..0000000000
--- a/docs/report/detailed_test_results/dpdk_performance_results_2n_skx/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-skx
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io dpdk coverage 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 1b65a6ac24..0000000000
--- a/docs/report/detailed_test_results/dpdk_performance_results_2n_tx2/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-tx2
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io dpdk coverage 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 63fb625295..0000000000
--- a/docs/report/detailed_test_results/dpdk_performance_results_2n_zn2/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-zn2
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io dpdk coverage 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_alt/index.rst b/docs/report/detailed_test_results/dpdk_performance_results_3n_alt/index.rst
deleted file mode 100644
index fe3a7d0282..0000000000
--- a/docs/report/detailed_test_results/dpdk_performance_results_3n_alt/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-alt
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io dpdk coverage job 3n-alt`_,
- 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 3a31a6e877..0000000000
--- a/docs/report/detailed_test_results/dpdk_performance_results_3n_dnv/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-dnv
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io dpdk coverage 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_icx/index.rst b/docs/report/detailed_test_results/dpdk_performance_results_3n_icx/index.rst
deleted file mode 100644
index e2db04b4f2..0000000000
--- a/docs/report/detailed_test_results/dpdk_performance_results_3n_icx/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-icx
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io dpdk coverage job 3n-icx`_,
- 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 87021f3348..0000000000
--- a/docs/report/detailed_test_results/dpdk_performance_results_3n_skx/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-skx
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io dpdk coverage 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 f8899fda8a..0000000000
--- a/docs/report/detailed_test_results/dpdk_performance_results_3n_tsh/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-tsh
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io dpdk coverage job 3n-tsh`_,
- ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/trex_performance_results/index.rst b/docs/report/detailed_test_results/trex_performance_results/index.rst
deleted file mode 100644
index 81ea8711ce..0000000000
--- a/docs/report/detailed_test_results/trex_performance_results/index.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-TRex Throughput
-===============
-
-.. toctree::
-
- ../trex_performance_results_2n_skx/index
diff --git a/docs/report/detailed_test_results/trex_performance_results_2n_skx/index.rst b/docs/report/detailed_test_results/trex_performance_results_2n_skx/index.rst
deleted file mode 100644
index 8607595606..0000000000
--- a/docs/report/detailed_test_results/trex_performance_results_2n_skx/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-skx
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io trex coverage job 2n-skx`_,
- 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 76d002acc6..0000000000
--- a/docs/report/detailed_test_results/vpp_device_results_ubuntu/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-VPP Device
-==========
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io 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 d25bd8cb9f..0000000000
--- a/docs/report/detailed_test_results/vpp_mrr_results/index.rst
+++ /dev/null
@@ -1,23 +0,0 @@
-VPP MRR
-=======
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io vpp iterative job 2n-icx`_,
- `build logs from FD.io vpp iterative job 3n-icx`_,
- `build logs from FD.io vpp iterative job 2n-skx`_,
- `build logs from FD.io vpp iterative job 3n-skx`_,
- `build logs from FD.io vpp iterative job 2n-clx`_,
- `build logs from FD.io vpp iterative job 2n-zn2`_,
- `build logs from FD.io vpp iterative job 3n-alt`_,
- `build logs from FD.io vpp iterative job 3n-tsh`_,
- `build logs from FD.io vpp iterative job 2n-tx2`_,
- `build logs from FD.io vpp iterative job 2n-dnv`_,
- `build logs from FD.io vpp iterative job 3n-dnv`_,
- `build logs from FD.io vpp iterative job 2n-aws`_,
- ii) archived FD.io jobs test results
- `output files <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/vpp_mrr_results_2n_aws/index.rst b/docs/report/detailed_test_results/vpp_mrr_results_2n_aws/index.rst
deleted file mode 100644
index e4987e6ea0..0000000000
--- a/docs/report/detailed_test_results/vpp_mrr_results_2n_aws/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-aws
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io vpp coverage job 2n-aws`_,
- ii) archived FD.io jobs test result `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 38f6b4d8d6..0000000000
--- a/docs/report/detailed_test_results/vpp_mrr_results_2n_clx/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-clx
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io vpp coverage 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 1b7d417810..0000000000
--- a/docs/report/detailed_test_results/vpp_mrr_results_2n_dnv/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-dnv
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io vpp coverage 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_icx/index.rst b/docs/report/detailed_test_results/vpp_mrr_results_2n_icx/index.rst
deleted file mode 100644
index c520b6f9e4..0000000000
--- a/docs/report/detailed_test_results/vpp_mrr_results_2n_icx/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-icx
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io vpp coverage job 2n-icx`_,
- 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 1118cdc61c..0000000000
--- a/docs/report/detailed_test_results/vpp_mrr_results_2n_skx/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-skx
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io vpp coverage 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 12722b8108..0000000000
--- a/docs/report/detailed_test_results/vpp_mrr_results_2n_tx2/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-tx2
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io vpp coverage 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 e40b484177..0000000000
--- a/docs/report/detailed_test_results/vpp_mrr_results_2n_zn2/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-zn2
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io vpp coverage 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_alt/index.rst b/docs/report/detailed_test_results/vpp_mrr_results_3n_alt/index.rst
deleted file mode 100644
index e6cfe37cdd..0000000000
--- a/docs/report/detailed_test_results/vpp_mrr_results_3n_alt/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-alt
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io vpp coverage job 3n-alt`_,
- ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/vpp_mrr_results_3n_aws/index.rst b/docs/report/detailed_test_results/vpp_mrr_results_3n_aws/index.rst
deleted file mode 100644
index e31a215d21..0000000000
--- a/docs/report/detailed_test_results/vpp_mrr_results_3n_aws/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-aws
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io vpp coverage job 3n-aws`_,
- 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 3a49c15e96..0000000000
--- a/docs/report/detailed_test_results/vpp_mrr_results_3n_dnv/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-dnv
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io vpp coverage 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_icx/index.rst b/docs/report/detailed_test_results/vpp_mrr_results_3n_icx/index.rst
deleted file mode 100644
index bb0c128bc0..0000000000
--- a/docs/report/detailed_test_results/vpp_mrr_results_3n_icx/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-icx
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io vpp coverage job 3n-icx`_,
- 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 90bdb3cb53..0000000000
--- a/docs/report/detailed_test_results/vpp_mrr_results_3n_skx/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-skx
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io vpp coverage 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 513b27969b..0000000000
--- a/docs/report/detailed_test_results/vpp_mrr_results_3n_tsh/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-tsh
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io vpp coverage 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 63d51497c2..0000000000
--- a/docs/report/detailed_test_results/vpp_performance_results/index.rst
+++ /dev/null
@@ -1,23 +0,0 @@
-VPP Throughput
-==============
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io vpp coverage job 2n-icx`_,
- `build logs from FD.io vpp coverage job 3n-icx`_,
- `build logs from FD.io vpp coverage job 2n-skx`_,
- `build logs from FD.io vpp coverage job 3n-skx`_,
- `build logs from FD.io vpp coverage job 2n-clx`_,
- `build logs from FD.io vpp coverage job 2n-zn2`_,
- `build logs from FD.io vpp coverage job 3n-alt`_,
- `build logs from FD.io vpp coverage job 3n-tsh`_,
- `build logs from FD.io vpp coverage job 2n-tx2`_,
- `build logs from FD.io vpp coverage job 2n-dnv`_,
- `build logs from FD.io vpp coverage job 3n-dnv`_,
- `build logs from FD.io vpp coverage job 2n-aws`_,
- ii) archived FD.io jobs test results
- `output files <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/vpp_performance_results_2n_aws/index.rst b/docs/report/detailed_test_results/vpp_performance_results_2n_aws/index.rst
deleted file mode 100644
index d259eab798..0000000000
--- a/docs/report/detailed_test_results/vpp_performance_results_2n_aws/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-aws
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io vpp performance job 3n-aws`_,
- ii) archived FD.io jobs test result `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 38f6b4d8d6..0000000000
--- a/docs/report/detailed_test_results/vpp_performance_results_2n_clx/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-clx
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io vpp coverage 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 1b7d417810..0000000000
--- a/docs/report/detailed_test_results/vpp_performance_results_2n_dnv/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-dnv
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io vpp coverage 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_icx/index.rst b/docs/report/detailed_test_results/vpp_performance_results_2n_icx/index.rst
deleted file mode 100644
index c520b6f9e4..0000000000
--- a/docs/report/detailed_test_results/vpp_performance_results_2n_icx/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-icx
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io vpp coverage job 2n-icx`_,
- 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 1118cdc61c..0000000000
--- a/docs/report/detailed_test_results/vpp_performance_results_2n_skx/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-skx
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io vpp coverage 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 12722b8108..0000000000
--- a/docs/report/detailed_test_results/vpp_performance_results_2n_tx2/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-tx2
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io vpp coverage 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 e40b484177..0000000000
--- a/docs/report/detailed_test_results/vpp_performance_results_2n_zn2/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-zn2
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io vpp coverage 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_alt/index.rst b/docs/report/detailed_test_results/vpp_performance_results_3n_alt/index.rst
deleted file mode 100644
index e6cfe37cdd..0000000000
--- a/docs/report/detailed_test_results/vpp_performance_results_3n_alt/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-alt
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io vpp coverage job 3n-alt`_,
- ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/detailed_test_results/vpp_performance_results_3n_aws/index.rst b/docs/report/detailed_test_results/vpp_performance_results_3n_aws/index.rst
deleted file mode 100644
index 2f9bfad19d..0000000000
--- a/docs/report/detailed_test_results/vpp_performance_results_3n_aws/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-3n-aws
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io vpp performance job 2n-aws`_,
- 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 3a49c15e96..0000000000
--- a/docs/report/detailed_test_results/vpp_performance_results_3n_dnv/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-dnv
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io vpp coverage 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_icx/index.rst b/docs/report/detailed_test_results/vpp_performance_results_3n_icx/index.rst
deleted file mode 100644
index bb0c128bc0..0000000000
--- a/docs/report/detailed_test_results/vpp_performance_results_3n_icx/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-icx
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io vpp coverage job 3n-icx`_,
- 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 90bdb3cb53..0000000000
--- a/docs/report/detailed_test_results/vpp_performance_results_3n_skx/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-skx
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io vpp coverage 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 513b27969b..0000000000
--- a/docs/report/detailed_test_results/vpp_performance_results_3n_tsh/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-tsh
-------
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io vpp coverage 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-clx_vs_2n-icx_testbeds.rst b/docs/report/dpdk_performance_tests/comparisons/2n-clx_vs_2n-icx_testbeds.rst
deleted file mode 100644
index 87f916440b..0000000000
--- a/docs/report/dpdk_performance_tests/comparisons/2n-clx_vs_2n-icx_testbeds.rst
+++ /dev/null
@@ -1,31 +0,0 @@
-2n-Icx vs 2n-Clx Testbeds
--------------------------
-
-Relative comparison of |dpdk-release| Testpmd and L3fwd packet
-throughput (NDR, PDR) is calculated for the same tests executed
-on 2-Node Cascadelake (2n-clx) and 2-Node Ice Lake (2n-icx) physical testbed
-types, in 1-core, 2-core and 4-core configurations.
-
-.. note::
-
- Test results are stored in
- `build logs from FD.io dpdk performance job 2n-clx`_ and
- `build logs from FD.io dpdk performance job 2n-icx`_
- 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-clx-2n-icx-ndr.txt>`_
- - `CSV NDR comparison <../../_static/dpdk/performance-compare-testbeds-2n-clx-2n-icx-ndr.csv>`_
-
-PDR Comparison
-~~~~~~~~~~~~~~
-
-Comparison tables in ASCII and CSV formats:
-
- - `ASCII PDR comparison <../../_static/dpdk/performance-compare-testbeds-2n-clx-2n-icx-pdr.txt>`_
- - `CSV PDR comparison <../../_static/dpdk/performance-compare-testbeds-2n-clx-2n-icx-pdr.csv>`_
diff --git a/docs/report/dpdk_performance_tests/comparisons/2n-icx_vs_2n-skx_testbeds.rst b/docs/report/dpdk_performance_tests/comparisons/2n-icx_vs_2n-skx_testbeds.rst
deleted file mode 100644
index ec123450a4..0000000000
--- a/docs/report/dpdk_performance_tests/comparisons/2n-icx_vs_2n-skx_testbeds.rst
+++ /dev/null
@@ -1,31 +0,0 @@
-2n-Icx vs 2n-Skx Testbeds
--------------------------
-
-Relative comparison of |dpdk-release| Testpmd and L3fwd packet
-throughput (NDR, PDR) is calculated for the same tests executed
-on 2-Node Cascadelake (2n-skx) and 2-Node Ice Lake (2n-icx) physical testbed
-types, in 1-core, 2-core and 4-core configurations.
-
-.. note::
-
- Test results are stored in
- `build logs from FD.io dpdk performance job 2n-skx`_ and
- `build logs from FD.io dpdk performance job 2n-icx`_
- 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-icx-ndr.txt>`_
- - `CSV NDR comparison <../../_static/dpdk/performance-compare-testbeds-2n-skx-2n-icx-ndr.csv>`_
-
-PDR Comparison
-~~~~~~~~~~~~~~
-
-Comparison tables in ASCII and CSV formats:
-
- - `ASCII PDR comparison <../../_static/dpdk/performance-compare-testbeds-2n-skx-2n-icx-pdr.txt>`_
- - `CSV PDR comparison <../../_static/dpdk/performance-compare-testbeds-2n-skx-2n-icx-pdr.csv>`_
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 6a3d22b8a0..0000000000
--- a/docs/report/dpdk_performance_tests/comparisons/2n-skx_vs_2n-clx_testbeds.rst
+++ /dev/null
@@ -1,31 +0,0 @@
-2n-Clx vs 2n-Skx Testbeds
--------------------------
-
-Relative comparison of |dpdk-release| Testpmd and L3fwd packet
-throughput (NDR, PDR) 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 are stored in
- `build logs from FD.io dpdk performance job 2n-skx`_ and
- `build logs from FD.io 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>`_
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 19550be79f..0000000000
--- a/docs/report/dpdk_performance_tests/comparisons/3n-skx_vs_2n-skx_testbeds.rst
+++ /dev/null
@@ -1,35 +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) 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 are stored in
- `build logs from FD.io dpdk performance job 3n-skx`_ and
- `build logs from FD.io 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>`_
diff --git a/docs/report/dpdk_performance_tests/comparisons/3n-skx_vs_3n-icx_testbeds.rst b/docs/report/dpdk_performance_tests/comparisons/3n-skx_vs_3n-icx_testbeds.rst
deleted file mode 100644
index 6560afb860..0000000000
--- a/docs/report/dpdk_performance_tests/comparisons/3n-skx_vs_3n-icx_testbeds.rst
+++ /dev/null
@@ -1,31 +0,0 @@
-3n-Icx vs 3n-Skx Testbeds
--------------------------
-
-Relative comparison of |dpdk-release| Testpmd and L3fwd packet
-throughput (NDR, PDR) is calculated for the same tests executed
-on 3-Node Skylake (3n-skx) and 3-Node Ice Lake (3n-icx) physical testbed
-types, in 1-core, 2-core and 4-core configurations.
-
-.. note::
-
- Test results are stored in
- `build logs from FD.io dpdk performance job 3n-skx`_ and
- `build logs from FD.io dpdk performance job 3n-icx`_
- 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-skx-3n-icx-ndr.txt>`_
- - `CSV NDR comparison <../../_static/dpdk/performance-compare-testbeds-3n-skx-3n-icx-ndr.csv>`_
-
-PDR Comparison
-~~~~~~~~~~~~~~
-
-Comparison tables in ASCII and CSV formats:
-
- - `ASCII PDR comparison <../../_static/dpdk/performance-compare-testbeds-3n-skx-3n-icx-pdr.txt>`_
- - `CSV PDR comparison <../../_static/dpdk/performance-compare-testbeds-3n-skx-3n-icx-pdr.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 42bb2351d3..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 3n-skx, 2n-skx, 2n-clx, 2n-zn2 testbeds
-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 are stored in
- `build logs from FD.io dpdk performance job 3n-icx`_,
- `build logs from FD.io dpdk performance job 2n-icx`_,
- `build logs from FD.io dpdk performance job 3n-skx`_,
- `build logs from FD.io dpdk performance job 2n-skx`_,
- `build logs from FD.io dpdk performance job 2n-clx`_,
- `build logs from FD.io dpdk performance job 2n-zn2`_,
- `build logs from FD.io dpdk performance job 3n-tsh`_,
- `build logs from FD.io dpdk performance job 2n-tx2`_,
- with RF result
- files csit-dpdk-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
-
-3n-icx-xxv710
-~~~~~~~~~~~~~
-
-NDR Comparison
-``````````````
-
-Comparison tables in ASCII and CSV formats:
-
- - `ASCII 2t1c NDR comparison <../../_static/dpdk/performance-changes-3n-icx-2t1c-ndr.txt>`_
- - `ASCII 4t2c NDR comparison <../../_static/dpdk/performance-changes-3n-icx-4t2c-ndr.txt>`_
- - `CSV 2t1c NDR comparison <../../_static/dpdk/performance-changes-3n-icx-2t1c-ndr.csv>`_
- - `CSV 4t2c NDR comparison <../../_static/dpdk/performance-changes-3n-icx-4t2c-ndr.csv>`_
-
-PDR Comparison
-``````````````
-
-Comparison tables in ASCII and CSV formats:
-
- - `ASCII 2t1c PDR comparison <../../_static/dpdk/performance-changes-3n-icx-2t1c-pdr.txt>`_
- - `ASCII 4t2c PDR comparison <../../_static/dpdk/performance-changes-3n-icx-4t2c-pdr.txt>`_
- - `CSV 2t1c PDR comparison <../../_static/dpdk/performance-changes-3n-icx-2t1c-pdr.csv>`_
- - `CSV 4t2c PDR comparison <../../_static/dpdk/performance-changes-3n-icx-4t2c-pdr.csv>`_
-
-2n-icx-xxv710
-~~~~~~~~~~~~~
-
-NDR Comparison
-``````````````
-
-Comparison tables in ASCII and CSV formats:
-
- - `ASCII 2t1c NDR comparison <../../_static/dpdk/performance-changes-2n-icx-2t1c-ndr.txt>`_
- - `ASCII 4t2c NDR comparison <../../_static/dpdk/performance-changes-2n-icx-4t2c-ndr.txt>`_
- - `CSV 2t1c NDR comparison <../../_static/dpdk/performance-changes-2n-icx-2t1c-ndr.csv>`_
- - `CSV 4t2c NDR comparison <../../_static/dpdk/performance-changes-2n-icx-4t2c-ndr.csv>`_
-
-PDR Comparison
-``````````````
-
-Comparison tables in ASCII and CSV formats:
-
- - `ASCII 2t1c PDR comparison <../../_static/dpdk/performance-changes-2n-icx-2t1c-pdr.txt>`_
- - `ASCII 4t2c PDR comparison <../../_static/dpdk/performance-changes-2n-icx-4t2c-pdr.txt>`_
- - `CSV 2t1c PDR comparison <../../_static/dpdk/performance-changes-2n-icx-2t1c-pdr.csv>`_
- - `CSV 4t2c PDR comparison <../../_static/dpdk/performance-changes-2n-icx-4t2c-pdr.csv>`_
-
-3n-skx-xxv710
-~~~~~~~~~~~~~
-
-NDR Comparison
-``````````````
-
-Comparison tables in ASCII and CSV formats:
-
- - `ASCII 2t1c NDR comparison <../../_static/dpdk/performance-changes-3n-skx-2t1c-ndr.txt>`_
- - `ASCII 4t2c 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 4t2c 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 4t2c 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 4t2c PDR comparison <../../_static/dpdk/performance-changes-3n-skx-4t2c-pdr.csv>`_
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-NDR Comparison
-``````````````
-
-Comparison tables in ASCII and CSV formats:
-
- - `ASCII 2t1c NDR comparison <../../_static/dpdk/performance-changes-2n-skx-2t1c-ndr.txt>`_
- - `ASCII 4t2c 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 4t2c 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 4t2c 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 4t2c PDR comparison <../../_static/dpdk/performance-changes-2n-skx-4t2c-pdr.csv>`_
-
-2n-clx-xxv710
-~~~~~~~~~~~~~
-
-NDR Comparison
-``````````````
-
-Comparison tables in ASCII and CSV formats:
-
- - `ASCII 2t1c NDR comparison <../../_static/dpdk/performance-changes-2n-clx-2t1c-ndr.txt>`_
- - `ASCII 4t2c 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 4t2c 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 4t2c 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 4t2c PDR comparison <../../_static/dpdk/performance-changes-2n-clx-4t2c-pdr.csv>`_
-
-2n-zn2-xxv710
-~~~~~~~~~~~~~
-
-NDR Comparison
-``````````````
-
-Comparison tables in ASCII and CSV formats:
-
- - `ASCII 2t1c NDR comparison <../../_static/dpdk/performance-changes-2n-zn2-2t1c-ndr.txt>`_
- - `ASCII 4t2c 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 4t2c 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 4t2c 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 4t2c PDR comparison <../../_static/dpdk/performance-changes-2n-zn2-4t2c-pdr.csv>`_
-
-3n-tsh-x520
-~~~~~~~~~~~
-
-NDR Comparison
-``````````````
-
-Comparison tables in ASCII and CSV formats:
-
- - `ASCII 1t1c NDR comparison <../../_static/dpdk/performance-changes-3n-tsh-1t1c-ndr.txt>`_
- - `ASCII 2t2c 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 2t2c 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 2t2c 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 2t2c PDR comparison <../../_static/dpdk/performance-changes-3n-tsh-2t2c-pdr.csv>`_
-
-2n-tx2-xl710
-~~~~~~~~~~~~
-
-NDR Comparison
-``````````````
-
-Comparison tables in ASCII and CSV formats:
-
- - `ASCII 1t1c NDR comparison <../../_static/dpdk/performance-changes-2n-tx2-1t1c-ndr.txt>`_
- - `ASCII 2t2c NDR comparison <../../_static/dpdk/performance-changes-2n-tx2-2t2c-ndr.txt>`_
- - `CSV 1t1c NDR comparison <../../_static/dpdk/performance-changes-2n-tx2-1t1c-ndr.csv>`_
- - `CSV 2t2c NDR comparison <../../_static/dpdk/performance-changes-2n-tx2-2t2c-ndr.csv>`_
-
-PDR Comparison
-``````````````
-
-Comparison tables in ASCII and CSV formats:
-
- - `ASCII 1t1c PDR comparison <../../_static/dpdk/performance-changes-2n-tx2-1t1c-pdr.txt>`_
- - `ASCII 2t2c PDR comparison <../../_static/dpdk/performance-changes-2n-tx2-2t2c-pdr.txt>`_
- - `CSV 1t1c PDR comparison <../../_static/dpdk/performance-changes-2n-tx2-1t1c-pdr.csv>`_
- - `CSV 2t2c PDR comparison <../../_static/dpdk/performance-changes-2n-tx2-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 d80364c627..0000000000
--- a/docs/report/dpdk_performance_tests/comparisons/index.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-Comparisons
-===========
-
-.. toctree::
-
- current_vs_previous_release
- 2n-clx_vs_2n-icx_testbeds
- 2n-icx_vs_2n-skx_testbeds
- 3n-skx_vs_3n-icx_testbeds
- 2n-skx_vs_2n-clx_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 45e5464032..0000000000
--- a/docs/report/dpdk_performance_tests/csit_release_notes.rst
+++ /dev/null
@@ -1,42 +0,0 @@
-Release Notes
-=============
-
-Changes in |csit-release|
--------------------------
-
-#. TEST FRAMEWORK
-
- - **CSIT test environment** version has been updated to ver. 10, see
- :ref:`test_environment_versioning`.
-
-#. DPDK PERFORMANCE TESTS
-
-#. 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-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>`_ | |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-
-New
-___
-
-List of new issues in |csit-release| for DPDK performance tests:
-
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| # | JiraID | Issue Description |
-+====+=========================================+===========================================================================================================+
-| 1 | `CSIT-1848 | 2n-clx, 2n-skx, 3n-alt, 3n-skx: sporadic testpmd/l3fwd tests fail with no or low traffic. |
-| | <https://jira.fd.io/browse/CSIT-1848>`_ | |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+ \ No newline at end of file
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_alt.rst b/docs/report/dpdk_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_alt.rst
deleted file mode 100644
index 7fe42625f7..0000000000
--- a/docs/report/dpdk_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_alt.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-3n-tsh
-======
-
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 01b27235be..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
- throughput_speedup_multi_core/index
- packet_latency/index
- comparisons/index
- throughput_trending
- test_environment
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 745e02940f..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=rls2206>`_.
-
-.. 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-icx-xxv710.rst b/docs/report/dpdk_performance_tests/packet_latency/2n-icx-xxv710.rst
deleted file mode 100644
index 796b20feff..0000000000
--- a/docs/report/dpdk_performance_tests/packet_latency/2n-icx-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-icx-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=rls2206>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-testpmd}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-testpmd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-l3fwd}
- \label{fig:hdrh-lat-percentile-2n-icx-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 d5b2083af1..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=rls2206>`_.
-
-.. 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 5801a717f3..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=rls2206>`_.
-
-.. 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 9aaf2ff90f..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=rls2206>`_.
-
-.. 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-alt-xl710.rst b/docs/report/dpdk_performance_tests/packet_latency/3n-alt-xl710.rst
deleted file mode 100644
index e6e0e8efbd..0000000000
--- a/docs/report/dpdk_performance_tests/packet_latency/3n-alt-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-alt-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=rls2206>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-1t1c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-eth-l2xcbase-testpmd.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/hdrh-lat-percentile-3n-alt-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-alt-40ge2p1xl710-64b-1t1c-eth-l2xcbase-testpmd}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-eth-l2xcbase-testpmd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4-ip4base-l3fwd.html" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/hdrh-lat-percentile-3n-alt-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-alt-40ge2p1xl710-64b-1t1c-ethip4-ip4base-l3fwd}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4-ip4base-l3fwd}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/packet_latency/3n-icx-xxv710.rst b/docs/report/dpdk_performance_tests/packet_latency/3n-icx-xxv710.rst
deleted file mode 100644
index d36f9e1674..0000000000
--- a/docs/report/dpdk_performance_tests/packet_latency/3n-icx-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-icx-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=rls2206>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-base
--------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/hdrh-lat-percentile-3n-icx-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-icx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-testpmd}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-testpmd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/hdrh-lat-percentile-3n-icx-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-icx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-l3fwd}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-64b-2t1c-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 dfb71af036..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=rls2206>`_.
-
-.. 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 0f74c99ee3..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=rls2206>`_.
-
-.. 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 623111ada5..0000000000
--- a/docs/report/dpdk_performance_tests/packet_latency/index.rst
+++ /dev/null
@@ -1,61 +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: 2n-icx, 3n-icx, 2n-skx,
-3n-skx, 2n-clx, 2n-zn2, 3n-alt, 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.
-
-For more details, see :ref:`latency_methodology`.
-
-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 are stored in
- `build logs from FD.io dpdk performance job 2n-icx`_,
- `build logs from FD.io dpdk performance job 3n-icx`_,
- `build logs from FD.io dpdk performance job 2n-skx`_,
- `build logs from FD.io dpdk performance job 3n-skx`_,
- `build logs from FD.io dpdk performance job 2n-clx`_,
- `build logs from FD.io dpdk performance job 2n-zn2`_,
- `build logs from FD.io dpdk performance job 3n-alt`_,
- `build logs from FD.io dpdk performance job 3n-tsh`_ and
- `build logs from FD.io dpdk performance job 2n-tx2`_ with RF
- result files csit-dpdk-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
-
-.. toctree::
- :maxdepth: 3
-
- 2n-icx-xxv710
- 3n-icx-xxv710
- 2n-skx-xxv710
- 3n-skx-xxv710
- 2n-clx-xxv710
- 2n-zn2-xxv710
- 3n-alt-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 9f3a0963aa..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=rls2206>`_.
-
-.. 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 ddb191633c..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=rls2206>`_.
-
-.. 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 ad5bc30ed0..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=rls2206>`_.
-
-.. 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-icx-xxv710.rst b/docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-icx-xxv710.rst
deleted file mode 100644
index 21a941e2b3..0000000000
--- a/docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-icx-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-icx-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=rls2206>`_.
-
-.. 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-icx-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-icx-xxv710-64b-2t1c-base-ndr}
- \label{fig:2n-icx-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-icx-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-icx-xxv710-64b-2t1c-base-pdr}
- \label{fig:2n-icx-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-icx-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-icx-xxv710-64b-4t2c-base-ndr}
- \label{fig:2n-icx-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-icx-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-icx-xxv710-64b-4t2c-base-pdr}
- \label{fig:2n-icx-xxv710-64b-4t2c-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 95ce045dbe..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=rls2206>`_.
-
-.. 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 cb5c260b5f..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=rls2206>`_.
-
-.. 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 435124d10b..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=rls2206>`_.
-
-.. 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 0f9be8cd09..0000000000
--- a/docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-zn2-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-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=rls2206>`_.
-
-.. 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 e42027b115..0000000000
--- a/docs/report/dpdk_performance_tests/packet_throughput_graphs/2n-zn2-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-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=rls2206>`_.
-
-.. 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-alt-xl710.rst b/docs/report/dpdk_performance_tests/packet_throughput_graphs/3n-alt-xl710.rst
deleted file mode 100644
index 275a88fbec..0000000000
--- a/docs/report/dpdk_performance_tests/packet_throughput_graphs/3n-alt-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-alt-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=rls2206>`_.
-
-.. 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-alt-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-alt-xl710-64b-1t1c-base-ndr}
- \label{fig:3n-alt-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-alt-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-alt-xl710-64b-1t1c-base-pdr}
- \label{fig:3n-alt-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-alt-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-alt-xl710-64b-2t2c-base-ndr}
- \label{fig:3n-alt-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-alt-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-alt-xl710-64b-2t2c-base-pdr}
- \label{fig:3n-alt-xl710-64b-2t2c-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 512f4fce4e..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=rls2206>`_.
-
-.. 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-icx-xxv710.rst b/docs/report/dpdk_performance_tests/packet_throughput_graphs/3n-icx-xxv710.rst
deleted file mode 100644
index bc750e68b1..0000000000
--- a/docs/report/dpdk_performance_tests/packet_throughput_graphs/3n-icx-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-icx-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=rls2206>`_.
-
-.. 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-icx-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-icx-xxv710-64b-2t1c-base-ndr}
- \label{fig:3n-icx-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-icx-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-icx-xxv710-64b-2t1c-base-pdr}
- \label{fig:3n-icx-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-icx-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-icx-xxv710-64b-4t2c-base-ndr}
- \label{fig:3n-icx-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-icx-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-icx-xxv710-64b-4t2c-base-pdr}
- \label{fig:3n-icx-xxv710-64b-4t2c-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 71e2b68588..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=rls2206>`_.
-
-.. 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 4b815ab6d3..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=rls2206>`_.
-
-.. 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 5bd48bdec7..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=rls2206>`_.
-
-.. 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 653586a65d..0000000000
--- a/docs/report/dpdk_performance_tests/packet_throughput_graphs/index.rst
+++ /dev/null
@@ -1,82 +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:
-2n-icx, 3n-icx, 2n-skx, 3n-skx, 2n-clx, 2n-zn2, 3n-alt, 3n-tsh, 2n-tx2.
-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 are stored in
- `build logs from FD.io dpdk performance job 2n-icx`_,
- `build logs from FD.io dpdk performance job 3n-icx`_,
- `build logs from FD.io dpdk performance job 2n-skx`_,
- `build logs from FD.io dpdk performance job 3n-skx`_,
- `build logs from FD.io dpdk performance job 2n-clx`_,
- `build logs from FD.io dpdk performance job 2n-zn2`_,
- `build logs from FD.io dpdk performance job 3n-alt`_,
- `build logs from FD.io dpdk performance job 3n-tsh`_,
- `build logs from FD.io dpdk performance job 2n-tx2`_ 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-icx-xxv710
- 3n-icx-xxv710
- 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-alt-xl710
- 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 694bbc9904..0000000000
--- a/docs/report/dpdk_performance_tests/test_environment.rst
+++ /dev/null
@@ -1,68 +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_icx.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_alt.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_speedup_multi_core/2n-clx-x710.rst b/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/2n-clx-x710.rst
deleted file mode 100644
index 8b81535da5..0000000000
--- a/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/2n-clx-x710.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-x710
-~~~~~~~~~~~
-
-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=rls2206>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-base
---------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-clx-x710-64b-base-ndr-tsa.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-base-ndr-tsa}
- \label{fig:2n-clx-x710-64b-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/dpdk/2n-clx-x710-64b-base-pdr-tsa.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-base-pdr-tsa}
- \label{fig:2n-clx-x710-64b-base-pdr-tsa}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/2n-clx-xxv710.rst b/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/2n-clx-xxv710.rst
deleted file mode 100644
index 3c069a9a23..0000000000
--- a/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/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=rls2206>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-base
---------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-clx-xxv710-64b-base-ndr-tsa.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-base-ndr-tsa}
- \label{fig:2n-clx-xxv710-64b-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/dpdk/2n-clx-xxv710-64b-base-pdr-tsa.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-base-pdr-tsa}
- \label{fig:2n-clx-xxv710-64b-base-pdr-tsa}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/2n-icx-xxv710.rst b/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/2n-icx-xxv710.rst
deleted file mode 100644
index 0cedd4fb1d..0000000000
--- a/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/2n-icx-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-icx-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=rls2206>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-base
---------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-icx-xxv710-64b-base-ndr-tsa.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-icx-xxv710-64b-base-ndr-tsa}
- \label{fig:2n-icx-xxv710-64b-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/dpdk/2n-icx-xxv710-64b-base-pdr-tsa.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-icx-xxv710-64b-base-pdr-tsa}
- \label{fig:2n-icx-xxv710-64b-base-pdr-tsa}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/2n-skx-x710.rst b/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/2n-skx-x710.rst
deleted file mode 100644
index 89229c6a05..0000000000
--- a/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/2n-skx-x710.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-x710
-~~~~~~~~~~~
-
-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=rls2206>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-base
---------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-skx-x710-64b-base-ndr-tsa.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-base-ndr-tsa}
- \label{fig:2n-skx-x710-64b-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/dpdk/2n-skx-x710-64b-base-pdr-tsa.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-base-pdr-tsa}
- \label{fig:2n-skx-x710-64b-base-pdr-tsa}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/2n-skx-xxv710.rst b/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/2n-skx-xxv710.rst
deleted file mode 100644
index e09f40091c..0000000000
--- a/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/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=rls2206>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-base
---------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-skx-xxv710-64b-base-ndr-tsa.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-base-ndr-tsa}
- \label{fig:2n-skx-xxv710-64b-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/dpdk/2n-skx-xxv710-64b-base-pdr-tsa.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-base-pdr-tsa}
- \label{fig:2n-skx-xxv710-64b-base-pdr-tsa}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/2n-tx2-xl710.rst b/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/2n-tx2-xl710.rst
deleted file mode 100644
index 20e647bfce..0000000000
--- a/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/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=rls2206>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-base
---------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-tx2-xl710-64b-base-ndr-tsa.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-base-ndr-tsa}
- \label{fig:2n-tx2-xl710-64b-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/dpdk/2n-tx2-xl710-64b-base-pdr-tsa.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-base-pdr-tsa}
- \label{fig:2n-tx2-xl710-64b-base-pdr-tsa}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/2n-zn2-x710.rst b/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/2n-zn2-x710.rst
deleted file mode 100644
index cbd1c55245..0000000000
--- a/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/2n-zn2-x710.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-x710
-~~~~~~~~~~~
-
-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=rls2206>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-base
---------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-zn2-x710-64b-base-ndr-tsa.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-base-ndr-tsa}
- \label{fig:2n-zn2-x710-64b-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/dpdk/2n-zn2-x710-64b-base-pdr-tsa.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-base-pdr-tsa}
- \label{fig:2n-zn2-x710-64b-base-pdr-tsa}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/2n-zn2-xxv710.rst b/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/2n-zn2-xxv710.rst
deleted file mode 100644
index 3b0c192ea9..0000000000
--- a/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/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=rls2206>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-base
---------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/2n-zn2-xxv710-64b-base-ndr-tsa.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-base-ndr-tsa}
- \label{fig:2n-zn2-xxv710-64b-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/dpdk/2n-zn2-xxv710-64b-base-pdr-tsa.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-base-pdr-tsa}
- \label{fig:2n-zn2-xxv710-64b-base-pdr-tsa}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/3n-alt-xl710.rst b/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/3n-alt-xl710.rst
deleted file mode 100644
index c69cdab9dc..0000000000
--- a/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/3n-alt-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-alt-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=rls2206>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-base
---------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/3n-alt-xl710-64b-base-ndr-tsa.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-alt-xl710-64b-base-ndr-tsa}
- \label{fig:3n-alt-xl710-64b-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/dpdk/3n-alt-xl710-64b-base-pdr-tsa.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-alt-xl710-64b-base-pdr-tsa}
- \label{fig:3n-alt-xl710-64b-base-pdr-tsa}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/3n-icx-xxv710.rst b/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/3n-icx-xxv710.rst
deleted file mode 100644
index 4c9c5dd07f..0000000000
--- a/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/3n-icx-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-icx-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=rls2206>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-base
---------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/3n-icx-xxv710-64b-base-ndr-tsa.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-icx-xxv710-64b-base-ndr-tsa}
- \label{fig:3n-icx-xxv710-64b-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/dpdk/3n-icx-xxv710-64b-base-pdr-tsa.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-icx-xxv710-64b-base-pdr-tsa}
- \label{fig:3n-icx-xxv710-64b-base-pdr-tsa}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/3n-skx-x710.rst b/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/3n-skx-x710.rst
deleted file mode 100644
index 3a5a2a34ae..0000000000
--- a/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/3n-skx-x710.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-x710
-~~~~~~~~~~~
-
-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=rls2206>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-base
---------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/3n-skx-x710-64b-base-ndr-tsa.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-base-ndr-tsa}
- \label{fig:3n-skx-x710-64b-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/dpdk/3n-skx-x710-64b-base-pdr-tsa.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-base-pdr-tsa}
- \label{fig:3n-skx-x710-64b-base-pdr-tsa}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/3n-skx-xxv710.rst b/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/3n-skx-xxv710.rst
deleted file mode 100644
index ef3e00124b..0000000000
--- a/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/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=rls2206>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-base
---------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/3n-skx-xxv710-64b-base-ndr-tsa.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-base-ndr-tsa}
- \label{fig:3n-skx-xxv710-64b-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/dpdk/3n-skx-xxv710-64b-base-pdr-tsa.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-base-pdr-tsa}
- \label{fig:3n-skx-xxv710-64b-base-pdr-tsa}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/3n-tsh-x520.rst b/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/3n-tsh-x520.rst
deleted file mode 100644
index d5291e5cdf..0000000000
--- a/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/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=rls2206>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-base
---------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/dpdk/3n-tsh-x520-64b-base-ndr-tsa.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-base-ndr-tsa}
- \label{fig:3n-tsh-x520-64b-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/dpdk/3n-tsh-x520-64b-base-pdr-tsa.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-base-pdr-tsa}
- \label{fig:3n-tsh-x520-64b-base-pdr-tsa}
- \end{figure}
diff --git a/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/index.rst b/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/index.rst
deleted file mode 100644
index 8c5f95221e..0000000000
--- a/docs/report/dpdk_performance_tests/throughput_speedup_multi_core/index.rst
+++ /dev/null
@@ -1,69 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. _dpdk_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: 2n-skx, 3n-skx, 2n-clx, 3n-tsh, 2n-tx2, 2n-zn2.
-Grouped bars illustrate the 64B packet throughput speedup ratio for
-2- and 4-core multi-threaded DPDK 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 are stored in
- `build logs from FD.io dpdk performance job 2n-icx`_,
- `build logs from FD.io dpdk performance job 3n-icx`_,
- `build logs from FD.io dpdk performance job 2n-skx`_,
- `build logs from FD.io dpdk performance job 3n-skx`_,
- `build logs from FD.io dpdk performance job 2n-clx`_,
- `build logs from FD.io dpdk performance job 2n-zn2`_,
- `build logs from FD.io dpdk performance job 3n-alt`_,
- `build logs from FD.io dpdk performance job 3n-tsh`_,
- `build logs from FD.io dpdk performance job 2n-tx2`_ 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
-
- 2n-icx-xxv710
- 3n-icx-xxv710
- 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-alt-xl710
- 3n-tsh-x520
- 2n-tx2-xl710
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 cd20048104..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://s3-docs.fd.io/csit/master/trending/introduction/dashboard.html>`_:
- per DPDK test case throughput trend, trend compliance and summary of
- detected anomalies.
-
-#. `Trending Methodology <https://s3-docs.fd.io/csit/master/trending/methodology/index.html>`_:
- throughput test metrics, trend calculations and anomaly
- classification (progression, regression).
-
-#. `DPDK Trendline Graphs <https://s3-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.
diff --git a/docs/report/index.html.template b/docs/report/index.html.template
deleted file mode 100644
index 8091ab7dcc..0000000000
--- a/docs/report/index.html.template
+++ /dev/null
@@ -1,102 +0,0 @@
-CSIT-2206
-=========
-
-.. toctree::
- :maxdepth: 2
- :caption: Introduction
-
- introduction/report_history
- introduction/introduction
- introduction/test_scenarios_overview
- introduction/physical_testbeds
- introduction/methodology
- introduction/documentation/index
-
-.. 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/reconf_tests/index
- vpp_performance_tests/nf_service_density/index
- vpp_performance_tests/hoststack_testing/index
- vpp_performance_tests/gso_testing/index
- vpp_performance_tests/comparisons/index
- vpp_performance_tests/throughput_trending
- vpp_performance_tests/test_environment
-
-.. 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/throughput_speedup_multi_core/index
- dpdk_performance_tests/packet_latency/index
- dpdk_performance_tests/comparisons/index
- dpdk_performance_tests/throughput_trending
- dpdk_performance_tests/test_environment
-
-.. toctree::
- :maxdepth: 2
- :caption: TRex Performance
-
- trex_performance_tests/overview
- trex_performance_tests/csit_release_notes
- trex_performance_tests/packet_throughput_graphs/index
- trex_performance_tests/packet_latency/index
- trex_performance_tests/throughput_trending
- trex_performance_tests/test_environment
-
-.. toctree::
- :maxdepth: 2
- :caption: VPP Device
-
- vpp_device_tests/overview
- vpp_device_tests/csit_release_notes
- vpp_device_tests/test_environment
-
-.. 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/trex_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
-
-.. toctree::
- :maxdepth: 2
- :caption: Statistics
-
- stats/durations
diff --git a/docs/report/index.pdf.template b/docs/report/index.pdf.template
deleted file mode 100644
index 0daf3f137b..0000000000
--- a/docs/report/index.pdf.template
+++ /dev/null
@@ -1,12 +0,0 @@
-CSIT-2206
-=========
-
-.. toctree::
- :numbered:
-
- introduction/index
- vpp_performance_tests/index
- dpdk_performance_tests/index
- trex_performance_tests/index
- vpp_device_tests/index
- csit_framework_documentation/index
diff --git a/docs/report/introduction/documentation/documentation.rst b/docs/report/introduction/documentation/documentation.rst
deleted file mode 100644
index 3635516924..0000000000
--- a/docs/report/introduction/documentation/documentation.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-Test Code Documentation
-=======================
-
-`CSIT Performance Tests Documentation`_ contains detailed
-functional description and input parameters for each test case.
diff --git a/docs/report/introduction/documentation/index.rst b/docs/report/introduction/documentation/index.rst
deleted file mode 100644
index 42afab7506..0000000000
--- a/docs/report/introduction/documentation/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-Documentation
-=============
-
-.. toctree::
-
- documentation
-
diff --git a/docs/report/introduction/index.rst b/docs/report/introduction/index.rst
deleted file mode 100644
index a15a18fd9d..0000000000
--- a/docs/report/introduction/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-Introduction
-============
-
-.. toctree::
-
- report_history
- introduction
- test_scenarios_overview
- physical_testbeds
- methodology
- documentation/index
diff --git a/docs/report/introduction/introduction.rst b/docs/report/introduction/introduction.rst
deleted file mode 100644
index 35b819d9e5..0000000000
--- a/docs/report/introduction/introduction.rst
+++ /dev/null
@@ -1,119 +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.
-
-#. TREX PERFORMANCE: TREX 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.
- - **Throughput Trending**: References to regular TREX performance
- trending.
- - **Test Environment**: Performance test environment configuration.
-
-#. 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 255fd15aa3..0000000000
--- a/docs/report/introduction/methodology.rst
+++ /dev/null
@@ -1,32 +0,0 @@
-
-.. _test_methodology:
-
-Test Methodology
-================
-
-.. toctree::
-
- methodology_terminology
- methodology_per_thread_resources
- methodology_vpp_forwarding_modes
- methodology_data_plane_throughput/index
- methodology_trex_traffic_generator
- methodology_dut_state
- methodology_nat44
- methodology_packet_latency
- methodology_packet_flow_ordering
- methodology_tunnel_encapsulations
- methodology_ipsec
- methodology_acls
- methodology_multi_core_speedup
- methodology_hoststack_testing/index
- methodology_gso
- methodology_reconf
- methodology_vpp_startup_settings
- methodology_kvm_vms_vhost_user
- methodology_containers
- methodology_lxc_drc_container_memif
- methodology_nfv_service_density
- methodology_vpp_device_functional
- methodology_autogen
- methodology_aws/index
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_autogen.rst b/docs/report/introduction/methodology_autogen.rst
deleted file mode 100644
index 1bf5e9e5ea..0000000000
--- a/docs/report/introduction/methodology_autogen.rst
+++ /dev/null
@@ -1,139 +0,0 @@
-.. _autogen_methodology:
-
-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/report/introduction/methodology_aws/aws_ami.rst b/docs/report/introduction/methodology_aws/aws_ami.rst
deleted file mode 100644
index ac56bb8bec..0000000000
--- a/docs/report/introduction/methodology_aws/aws_ami.rst
+++ /dev/null
@@ -1,45 +0,0 @@
-.. _csit_ami:
-
-CSIT Amazon Machine Images
---------------------------
-
-An Amazon Machine Image (AMI) provides the information required to
-launch an instance. CSIT is using Amazon Elastic Block Store (EBS) where
-the root device for an instance launched from the AMI is a volume
-created from an Amazon EBS snapshot.
-
-As the TG and SUT instances have slightly different software
-requirements, we are defining two AMIs for TG and SUT separately. AMI
-details examples:
-
-- TG:
-
- - AMI Name: csit_c5n_ubuntu_focal_tg
- - Platform details: Linux/UNIX
- - Architecture: x86_64
- - Usage operation: RunInstances
- - Image Type: machine
- - Virtualization type: hvm
- - Description: CSIT TG image based on Ubuntu Focal
- - Root Device Name: /dev/sda1
- - Root Device Type: ebs
-
-- SUT:
-
- - AMI Name: csit_c5n_ubuntu_focal_sut
- - Platform details: Linux/UNIX
- - Architecture: x86_64
- - Usage operation: RunInstances
- - Image Type: machine
- - Virtualization type: hvm
- - Description: CSIT SUT image based on Ubuntu Focal
- - Root Device Name: /dev/sda1
- - Root Device Type: ebs
-
-Both TG and SUT AMIs are created manually before launching topology and are not
-part of automated scripts.
-
-Building AMIs requires Hashicorp Packer with Amazon plugin installed.
-
-For more information, see
-`Amazon Machine Images <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html>`_.
diff --git a/docs/report/introduction/methodology_aws/aws_instances.rst b/docs/report/introduction/methodology_aws/aws_instances.rst
deleted file mode 100644
index 18ae659de3..0000000000
--- a/docs/report/introduction/methodology_aws/aws_instances.rst
+++ /dev/null
@@ -1,77 +0,0 @@
-AWS Performance Testbeds
-------------------------
-
-CSIT implements two virtual machine topology types running in AWS EC2:
-
-- **2-Node Topology**: Consists of one EC2 instance as a System Under
- Test (SUT) and one EC2 instance acting as a Traffic Generator
- (TG), with both instances connected into a ring topology. Used for
- executing tests that require frame encapsulations supported by TG.
-
-- **3-Node Topology**: Consists of two EC2 instances acting as a Systems
- Under Test (SUTs) and one EC2 instance acting as a Traffic Generator
- (TG), with all instances 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.
-
-AWS EC2 Instances
------------------
-
-CSIT is using AWS EC2 C5n instances as System Under Test and TG virtual
-machines. C5n instances got selected to take advantage of high network
-throughput and packet rate performance. C5n instances offer up to 100
-Gbps network bandwidth and increased memory over comparable C5
-instances. For more information, see
-`Instance types <https://aws.amazon.com/ec2/instance-types/>`_.
-
-C5n features:
-
-- 3.0 GHz Intel Xeon Platinum (Skylake) processors with Intel AVX-512
- instructions.
-- Sustained all core Turbo frequency of up to 3.4GHz, and single core
- turbo frequency of up to 3.5 GHz.
-- Requires HVM AMIs (Amazon Machine Images) that include drivers for ENA
- and NVMe. See :ref:`csit_ami` for more information.
-- Network bandwidth to up to 100 Gbps.
-- Powered by the AWS Nitro System, a combination of dedicated hardware
- and lightweight hypervisor.
-
-+-------------+------+--------------+------------------------+-----------------------------+----------------------+
-| Model | vCPU | Memory (GiB) | Instance Storage (GiB) | Network Bandwidth (Gbps)*** | EBS Bandwidth (Mbps) |
-+=============+======+==============+========================+=============================+======================+
-|c5n.large | 2 | 5.25 | EBS-Only | Up to 25 | Up to 4,750 |
-+-------------+------+--------------+------------------------+-----------------------------+----------------------+
-|c5n.xlarge | 4 | 10.5 | EBS-Only | Up to 25 | Up to 4,750 |
-+-------------+------+--------------+------------------------+-----------------------------+----------------------+
-|c5n.2xlarge | 8 | 21 | EBS-Only | Up to 25 | Up to 4,750 |
-+-------------+------+--------------+------------------------+-----------------------------+----------------------+
-|c5n.4xlarge | 16 | 42 | EBS-Only | Up to 25 | 4,750 |
-+-------------+------+--------------+------------------------+-----------------------------+----------------------+
-|c5n.9xlarge | 36 | 96 | EBS-Only | 50 | 9,500 |
-+-------------+------+--------------+------------------------+-----------------------------+----------------------+
-|c5n.18xlarge | 72 | 192 | EBS-Only | 100 | 19,000 |
-+-------------+------+--------------+------------------------+-----------------------------+----------------------+
-|c5n.metal | 72 | 192 | EBS-Only | 100 | 19,000 |
-+-------------+------+--------------+------------------------+-----------------------------+----------------------+
-
-CSIT is configured by default to use `c5n.4xlarge` in `eu-central-1` AWS
-region due to allocation stability issues with `c5n.9xlarge` in
-`eu-central-1` region.
-
-
-AWS EC2 Networking
-------------------
-
-CSIT EC2 instances are equipped with AWS Elastic Network Adapter
-(ENA) supporting AWS enhanced networking. Enhanced networking uses
-single root I/O virtualization (SR-IOV) to provide high-performance
-networking capabilities. For more information, see
-`Elastic Network Adapter <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking-ena.html>`_.
-
-For more information about the current advertised AWS ENA performance
-limits, see
-`Computed optimized instances <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/compute-optimized-instances.html>`_.
-
-CSIT DUTs make use of AWS ENA DPDK driver supplied by AWS and specified
-in
-`amzn drivers dpdk <https://github.com/amzn/amzn-drivers/tree/master/userspace/dpdk>`_.
diff --git a/docs/report/introduction/methodology_aws/aws_terraform.rst b/docs/report/introduction/methodology_aws/aws_terraform.rst
deleted file mode 100644
index 4b063d5ee4..0000000000
--- a/docs/report/introduction/methodology_aws/aws_terraform.rst
+++ /dev/null
@@ -1,119 +0,0 @@
-AWS Deployments
----------------
-
-CSIT performance testbed deployments in AWS rely on
-Infrastructure-as-a-C (IaaC) Terraform AWS providers. Terraform
-providers specified in CSIT interact with resources provided by AWS to
-orchestrate virtual environment for running CSIT performance tests. For
-more information, see
-`Terraform Registry aws <https://registry.terraform.io/providers/hashicorp/aws/latest/>`_.
-
-Compatibility
-~~~~~~~~~~~~~
-
-+-----------+----------------+
-| Software | OSS Version |
-+===========+================+
-| Terraform | 1.0.3 or newer |
-+-----------+----------------+
-| Vault | 1.8.4 or newer |
-+-----------+----------------+
-
-Requirements
-~~~~~~~~~~~~
-
-- Required Modules and Providers
-
- - `Terraform Registry aws <https://registry.terraform.io/providers/hashicorp/aws/latest>`_.
- - `Terraform Registry null <https://registry.terraform.io/providers/hashicorp/null/latest>`_.
- - `Terraform Registry tls <https://registry.terraform.io/providers/hashicorp/tls>`_.
- - `Terraform Registry vault <https://registry.terraform.io/providers/hashicorp/vault>`_.
-
-- Required software
-
- - `Vault <https://releases.hashicorp.com/vault/>`_ service available
- on specified ip/port.
-
-Deployment Example
-~~~~~~~~~~~~~~~~~~
-
-Following is an example of a
-`Terraform deploy module <https://git.fd.io/csit/tree/fdio.infra.terraform/2n_aws_c5n/main.tf>`_
-for a CSIT 2-Node testbed topology with AWS variables set to default
-values. A number of variables is also defined in a
-`separate Terraform variable file <https://git.fd.io/csit/tree/fdio.infra.terraform/2n_aws_c5n/variables.tf>`_.
-
-::
-
- module "deploy" {
- source = "./deploy"
-
- # Parameters starting with var. can be set using "TF_VAR_*" environment
- # variables or -var parameter when running "terraform apply", for default
- # values see ./variables.tf
- testbed_name = var.testbed_name
- topology_name = var.topology_name
- environment_name = var.environment_name
- resources_name_prefix = var.resources_name_prefix
-
- # AWS general
- region = var.region
- avail_zone = var.avail_zone
- instance_type = var.instance_type
- ami_image_tg = var.ami_image_tg
- ami_image_sut = var.ami_image_sut
-
- # AWS Network
- vpc_cidr_mgmt = "192.168.0.0/24"
- vpc_cidr_b = "192.168.10.0/24"
- vpc_cidr_c = "200.0.0.0/24"
- vpc_cidr_d = "192.168.20.0/24"
-
- tg_mgmt_ip = "192.168.0.10"
- dut1_mgmt_ip = "192.168.0.11"
-
- tg_if1_ip = "192.168.10.254"
- tg_if2_ip = "192.168.20.254"
- dut1_if1_ip = "192.168.10.11"
- dut1_if2_ip = "192.168.20.11"
-
- trex_dummy_cidr_port_0 = "10.0.0.0/24"
- trex_dummy_cidr_port_1 = "20.0.0.0/24"
-
- # Ansible
- ansible_python_executable = "/usr/bin/python3"
- ansible_file_path = "../../fdio.infra.ansible/site.yaml"
- ansible_topology_path = "../../fdio.infra.ansible/cloud_topology.yaml"
- ansible_provision_pwd = "Csit1234"
-
- # First run
- first_run_commands = [
- "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"
- ]
- }
-
-Secrets & Credentials
-~~~~~~~~~~~~~~~~~~~~~
-
-Set credentials manually
-^^^^^^^^^^^^^^^^^^^^^^^^
-
-To set the credentials manually you first need to tell the module to not
-fetch credentials from Vault. To do that, set `provider "aws"`
-`access_key` and `secret_key` to custom value or use credentials file
-as a source.
-
-::
-
- 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
- }
diff --git a/docs/report/introduction/methodology_aws/index.rst b/docs/report/introduction/methodology_aws/index.rst
deleted file mode 100644
index 3e247dc6ce..0000000000
--- a/docs/report/introduction/methodology_aws/index.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Testing in AWS EC2
-==================
-
-.. toctree::
-
- aws_instances
- aws_ami
- aws_terraform
diff --git a/docs/report/introduction/methodology_containers.rst b/docs/report/introduction/methodology_containers.rst
deleted file mode 100644
index 14817df64f..0000000000
--- a/docs/report/introduction/methodology_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/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 a26b40088b..0000000000
--- a/docs/report/introduction/methodology_data_plane_throughput/methodology_data_plane_throughput.rst
+++ /dev/null
@@ -1,151 +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.
- TODO: Link to method-specific pages instead of duplicate info below.
-
-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-ietf-bmwg-mlrsearch
-<https://datatracker.ietf.org/doc/html/draft-ietf-bmwg-mlrsearch-01>`_.
-
-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://s3-docs.fd.io/csit/master/trending/methodology/performance_tests.html>`_
-and `VPP per patch tests
-<https://s3-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.
-
-..
- TODO: Incorporate ASTF specifics: No IMIX, transactions instead of packets,
- slightly non-symmetric traffic with TCP profiles, unsure max_rate.
- TODO: Mention latency.
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 5457daa555..0000000000
--- a/docs/report/introduction/methodology_data_plane_throughput/methodology_mlrsearch_tests.rst
+++ /dev/null
@@ -1,50 +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 any number of packet
-throughput rates in a single search, with each rate associated with a
-different Packet Loss Ratio (PLR) criteria.
-
-Two throughput rates of interest 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, currently 0.5%).
-
-MLRsearch discovers all the rates in a single pass, reducing required time
-duration compared to separate `binary search`_es for each rate. 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.
-
-.. 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-ietf-bmwg-mlrsearch-01
-<https://datatracker.ietf.org/doc/html/draft-ietf-bmwg-mlrsearch-01>`_
-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 is currently fully based on the -01`
-version of the `draft-ietf-bmwg-mlrsearch
-<https://datatracker.ietf.org/doc/html/draft-ietf-bmwg-mlrsearch-01>`_,
-the PyPI version is slightly older.
-
-.. _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 d08e42513d..0000000000
--- a/docs/report/introduction/methodology_dut_state.rst
+++ /dev/null
@@ -1,153 +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 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.
-
-..
- 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 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/report/introduction/methodology_geneve.rst b/docs/report/introduction/methodology_geneve.rst
deleted file mode 100644
index 1ae8bfaa7a..0000000000
--- a/docs/report/introduction/methodology_geneve.rst
+++ /dev/null
@@ -1,73 +0,0 @@
-.. _geneve_methodology:
-
-Generic Network Virtualization Encapsulation
---------------------------------------------
-
-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/report/introduction/methodology_gso.rst b/docs/report/introduction/methodology_gso.rst
deleted file mode 100644
index b33b3aefbd..0000000000
--- a/docs/report/introduction/methodology_gso.rst
+++ /dev/null
@@ -1,136 +0,0 @@
-.. _gso_methodology:
-
-Generic Segmentation Offload Tests
-----------------------------------
-
-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.
-
-|csit-release| introduced 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 in |csit-release|:
-
-1. iPerfC_GSOvirtio_LinuxVM --- GSOvhost_VPP_GSOvhost --- iPerfS_GSOvirtio_LinuxVM
-
- - Tests VPP GSO on vhostuser interfaces and interaction with Linux
- virtio with GSO enabled.
-
-1. 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 in |csit-release| 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 in |csit-release| 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>`_. \ No newline at end of file
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 7750097417..0000000000
--- a/docs/report/introduction/methodology_hoststack_testing/index.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-Hoststack Testing
------------------
-
-.. toctree::
-
- methodology_tcp_with_iperf3
- methodology_udp_with_iperf3
- methodology_quic_with_vppecho
- methodology_vsap_ab_with_nginx
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 e3fb85d551..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 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/report/introduction/methodology_hoststack_testing/methodology_udp_with_iperf3.rst b/docs/report/introduction/methodology_hoststack_testing/methodology_udp_with_iperf3.rst
deleted file mode 100644
index b0525f989f..0000000000
--- a/docs/report/introduction/methodology_hoststack_testing/methodology_udp_with_iperf3.rst
+++ /dev/null
@@ -1,42 +0,0 @@
-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/report/introduction/methodology_hoststack_testing/methodology_vsap_ab_with_nginx.rst b/docs/report/introduction/methodology_hoststack_testing/methodology_vsap_ab_with_nginx.rst
deleted file mode 100644
index 6acfff1778..0000000000
--- a/docs/report/introduction/methodology_hoststack_testing/methodology_vsap_ab_with_nginx.rst
+++ /dev/null
@@ -1,37 +0,0 @@
-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/report/introduction/methodology_ipsec.rst b/docs/report/introduction/methodology_ipsec.rst
deleted file mode 100644
index a168e238ee..0000000000
--- a/docs/report/introduction/methodology_ipsec.rst
+++ /dev/null
@@ -1,88 +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-skx, 3n-tsh.
-
-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 |
-+-------------------+---------------------+------------------+----------------+------------------+
-
-IPsec with Async Crypto Feature Workers
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-*TODO Description to be added*
-
-IPsec Uni-Directional Tests with VPP Native SW Crypto
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Currently |csit-release| 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/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_multi_core_speedup.rst b/docs/report/introduction/methodology_multi_core_speedup.rst
deleted file mode 100644
index 05307549f4..0000000000
--- a/docs/report/introduction/methodology_multi_core_speedup.rst
+++ /dev/null
@@ -1,58 +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 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 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 1b00ef281c..0000000000
--- a/docs/report/introduction/methodology_nat44.rst
+++ /dev/null
@@ -1,487 +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 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).
-
-..
- TODO: Will we ever test other than 63 ports-per-inside-address?
- TODO: Will we ever NAT44ei? What about NAT66, NAT64, NAT46?
-
-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.
-
-..
- TODO: Clarify outside-to-inside source and destination address+port.
-
-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: Rename nat44det suites so it is clear they are throughput (not cps).
- TODO: Make traffic profile names resemble suite names more closely.
-
-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/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_flow_ordering.rst b/docs/report/introduction/methodology_packet_flow_ordering.rst
deleted file mode 100644
index 3796b21796..0000000000
--- a/docs/report/introduction/methodology_packet_flow_ordering.rst
+++ /dev/null
@@ -1,42 +0,0 @@
-.. _packet_flow_ordering:
-
-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/report/introduction/methodology_packet_latency.rst b/docs/report/introduction/methodology_packet_latency.rst
deleted file mode 100644
index 35e2aad029..0000000000
--- a/docs/report/introduction/methodology_packet_latency.rst
+++ /dev/null
@@ -1,43 +0,0 @@
-.. _latency_methodology:
-
-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%). \ No newline at end of file
diff --git a/docs/report/introduction/methodology_per_thread_resources.rst b/docs/report/introduction/methodology_per_thread_resources.rst
deleted file mode 100644
index cde4b7d616..0000000000
--- a/docs/report/introduction/methodology_per_thread_resources.rst
+++ /dev/null
@@ -1,102 +0,0 @@
-.. _per_thread_resources_methodology:
-
-Per Thread Resources
---------------------
-
-CSIT test framework is managing mapping of the following resources per
-thread:
-
-#. 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.
-#. Receive Queues (RxQ), packet receive queues allocated on each
- physical and logical interface tested.
-#. 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:
-
-#. 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.
-
-#. 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.
-
-#. 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:
-
-#. `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.
-
-#. `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:
-
-#. `-l <list_of_cores>` - List of logical cores to run DPDK
- application.
-#. `nb-cores=<N>` - Number of forwarding cores.
-#. `rxq=<N>` - Number of Rx queues used per interface.
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_telemetry.rst b/docs/report/introduction/methodology_telemetry.rst
deleted file mode 100644
index dcd2d06541..0000000000
--- a/docs/report/introduction/methodology_telemetry.rst
+++ /dev/null
@@ -1,503 +0,0 @@
-.. _telemetry:
-
-OpenMetrics
------------
-
-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.
-
-Example metric file
-~~~~~~~~~~~~~~~~~~~
-
-```
- # HELP calls_total Number of calls total
- # TYPE calls_total counter
- calls_total{name="api-rx-from-ring",state="active",thread_id="0",thread_lcore="1",thread_name="vpp_main"} 0.0
- calls_total{name="fib-walk",state="any wait",thread_id="0",thread_lcore="1",thread_name="vpp_main"} 0.0
- calls_total{name="ip6-mld-process",state="any wait",thread_id="0",thread_lcore="1",thread_name="vpp_main"} 0.0
- calls_total{name="ip6-ra-process",state="any wait",thread_id="0",thread_lcore="1",thread_name="vpp_main"} 0.0
- calls_total{name="unix-epoll-input",state="polling",thread_id="0",thread_lcore="1",thread_name="vpp_main"} 39584.0
- calls_total{name="avf-0/18/6/0-output",state="active",thread_id="1",thread_lcore="2",thread_name="vpp_wk_0"} 91.0
- calls_total{name="avf-0/18/6/0-tx",state="active",thread_id="1",thread_lcore="2",thread_name="vpp_wk_0"} 91.0
- calls_total{name="avf-input",state="polling",thread_id="1",thread_lcore="2",thread_name="vpp_wk_0"} 91.0
- calls_total{name="ethernet-input",state="active",thread_id="1",thread_lcore="2",thread_name="vpp_wk_0"} 91.0
- calls_total{name="ip4-input-no-checksum",state="active",thread_id="1",thread_lcore="2",thread_name="vpp_wk_0"} 91.0
- calls_total{name="ip4-lookup",state="active",thread_id="1",thread_lcore="2",thread_name="vpp_wk_0"} 91.0
- calls_total{name="ip4-rewrite",state="active",thread_id="1",thread_lcore="2",thread_name="vpp_wk_0"} 91.0
- calls_total{name="avf-0/18/2/0-output",state="active",thread_id="2",thread_lcore="0",thread_name="vpp_wk_1"} 91.0
- calls_total{name="avf-0/18/2/0-tx",state="active",thread_id="2",thread_lcore="0",thread_name="vpp_wk_1"} 91.0
- calls_total{name="avf-input",state="polling",thread_id="2",thread_lcore="0",thread_name="vpp_wk_1"} 91.0
- calls_total{name="ethernet-input",state="active",thread_id="2",thread_lcore="0",thread_name="vpp_wk_1"} 91.0
- calls_total{name="ip4-input-no-checksum",state="active",thread_id="2",thread_lcore="0",thread_name="vpp_wk_1"} 91.0
- calls_total{name="ip4-lookup",state="active",thread_id="2",thread_lcore="0",thread_name="vpp_wk_1"} 91.0
- calls_total{name="ip4-rewrite",state="active",thread_id="2",thread_lcore="0",thread_name="vpp_wk_1"} 91.0
- calls_total{name="unix-epoll-input",state="polling",thread_id="2",thread_lcore="0",thread_name="vpp_wk_1"} 1.0
-```
-
-Anatomy of existing 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
-```
-
-
-Improving existing solution
----------------------------
-
-Improving existing CSIT telemetry implementaion including these areas.
-
-- telemetry optimization
- - reducing ssh overhead
- - removing stats without added value
-- telemetry scheduling
- - improve accuracy
- - improve configuration
-- telemetry output
- - standardize output
-
-Exesting stats implementation was abstracted to having pre-/post-run-stats
-phases. Improvement will be done by merging pre-/post- logic implementation into
-separated stat-runtime block configurable and locally executed on SUT.
-
-This will increase precision, remove complexity and move implementation into
-spearated module.
-
-OpenMetric format for cloud native metric capturing will be used to ensure
-integration with post processing module.
-
-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
-```
-
-
-Tooling
--------
-
-Prereqisities:
-- bpfcc-tools
-- python-bpfcc
-- libbpfcc
-- libbpfcc-dev
-- libclang1-9 libllvm9
-
-```bash
- $ sudo apt install bpfcc-tools python3-bpfcc libbpfcc libbpfcc-dev libclang1-9 libllvm9
-```
-
-
-Configuration
--------------
-
-```yaml
- logging:
- version: 1
- formatters:
- console:
- format: '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
- prom:
- format: '%(message)s'
- handlers:
- console:
- class: logging.StreamHandler
- level: INFO
- formatter: console
- stream: ext://sys.stdout
- 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]
- scheduler:
- duration: 1
- programs:
- - name: bundle_bpf
- metrics:
- counter:
- - name: cpu_cycle
- documentation: Cycles processed by CPUs
- namespace: bpf
- labelnames:
- - name
- - cpu
- - pid
- - name: cpu_instruction
- documentation: Instructions retired by CPUs
- namespace: bpf
- labelnames:
- - name
- - cpu
- - pid
- - name: llc_reference
- documentation: Last level cache operations by type
- namespace: bpf
- labelnames:
- - name
- - cpu
- - pid
- - name: llc_miss
- documentation: Last level cache operations by type
- namespace: bpf
- labelnames:
- - name
- - cpu
- - pid
- events:
- - type: 0x0 # HARDWARE
- name: 0x0 # PERF_COUNT_HW_CPU_CYCLES
- target: on_cpu_cycle
- table: cpu_cycle
- - type: 0x0 # HARDWARE
- name: 0x1 # PERF_COUNT_HW_INSTRUCTIONS
- target: on_cpu_instruction
- table: cpu_instruction
- - type: 0x0 # HARDWARE
- name: 0x2 # PERF_COUNT_HW_CACHE_REFERENCES
- target: on_cache_reference
- table: llc_reference
- - type: 0x0 # HARDWARE
- name: 0x3 # PERF_COUNT_HW_CACHE_MISSES
- target: on_cache_miss
- table: llc_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(llc_miss, struct key_t);
- BPF_HASH(llc_reference, struct key_t);
- BPF_HASH(cpu_instruction, struct key_t);
- 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;
- }
- 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;
- }
- int on_cache_reference(struct bpf_perf_event_data *ctx) {
- struct key_t key = {};
- get_key(&key);
-
- llc_reference.increment(key, ctx->sample_period);
- return 0;
- }
- int on_cache_miss(struct bpf_perf_event_data *ctx) {
- struct key_t key = {};
- get_key(&key);
-
- llc_miss.increment(key, ctx->sample_period);
- return 0;
- }
-```
-
-CSIT captured metrics
----------------------
-
-SUT
-~~~
-
-Compute resource
-________________
-
-- BPF /process
- - BPF_HASH(llc_miss, struct key_t);
- - BPF_HASH(llc_reference, struct key_t);
- - BPF_HASH(cpu_instruction, struct key_t);
- - BPF_HASH(cpu_cycle, struct key_t);
-
-Memory resource
-_______________
-
-- BPF /process
- - tbd
-
-Network resource
-________________
-
-- BPF /process
- - tbd
-
-DUT VPP metrics
-~~~~~~~~~~~~~~~
-
-Compute resource
-________________
-
-- runtime /node `show runtime`
- - calls
- - vectors
- - suspends
- - clocks
- - vectors_calls
-- perfmon /bundle
- - inst-and-clock node intel-core instructions/packet, cycles/packet and IPC
- - cache-hierarchy node intel-core cache hits and misses
- - context-switches thread linux per-thread context switches
- - branch-mispred node intel-core Branches, branches taken and mis-predictions
- - page-faults thread linux per-thread page faults
- - load-blocks node intel-core load operations blocked due to various uarch reasons
- - power-licensing node intel-core Thread power licensing
- - memory-bandwidth system intel-uncore memory reads and writes per memory controller channel
-
-Memory resource - tbd
-_____________________
-
-- memory /segment `show memory verbose api-segment stats-segment main-heap`
- - total
- - used
- - free
- - trimmable
- - free-chunks
- - free-fastbin-blks
- - max-total-allocated
-- physmem `show physmem`
- - pages
- - subpage-size
-
-Network resource
-________________
-
-- counters /node `show node counters`
- - count
- - severity
-- hardware /interface `show interface`
- - rx_stats
- - tx_stats
-- packets /interface `show hardware`
- - rx_packets
- - rx_bytes
- - rx_errors
- - tx_packets
- - tx_bytes
- - tx_errors
- - drops
- - punt
- - ip4
- - ip6
- - rx_no_buf
- - rx_miss
-
-
-DUT DPDK metrics - tbd
-~~~~~~~~~~~~~~~~~~~~~~
-
-Compute resource
-________________
-
-- BPF /process
- - BPF_HASH(llc_miss, struct key_t);
- - BPF_HASH(llc_reference, struct key_t);
- - BPF_HASH(cpu_instruction, struct key_t);
- - BPF_HASH(cpu_cycle, struct key_t);
-
-Memory resource
-_______________
-
-- BPF /process
- - tbd
-
-Network resource
-________________
-
-- packets /interface
- - inPackets
- - outPackets
- - inBytes
- - outBytes
- - outErrorPackets
- - dropPackets
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 180e3dda8c..0000000000
--- a/docs/report/introduction/methodology_trex_traffic_generator.rst
+++ /dev/null
@@ -1,213 +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 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.
-
-..
- TODO: Mention we have added TRex self-test suites.
diff --git a/docs/report/introduction/methodology_tunnel_encapsulations.rst b/docs/report/introduction/methodology_tunnel_encapsulations.rst
deleted file mode 100644
index 93092347f1..0000000000
--- a/docs/report/introduction/methodology_tunnel_encapsulations.rst
+++ /dev/null
@@ -1,39 +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.
-- *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.
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 1fd902a22d..0000000000
--- a/docs/report/introduction/methodology_vpp_forwarding_modes.rst
+++ /dev/null
@@ -1,101 +0,0 @@
-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 :ref:`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 :ref:`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 :ref:`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/report/introduction/methodology_vpp_startup_settings.rst b/docs/report/introduction/methodology_vpp_startup_settings.rst
deleted file mode 100644
index c583ae7bed..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).
-
-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 d265efda03..0000000000
--- a/docs/report/introduction/physical_testbeds.rst
+++ /dev/null
@@ -1,514 +0,0 @@
-.. _tested_physical_topologies:
-
-Performance 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, Cascadelake 6252N, Icelake 8358.
-- 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.
-
-Physical NICs and Drivers
--------------------------
-
-SUT and TG servers are equipped with a number of different NIC models.
-
-VPP is performance tested on SUTs with the following NICs and drivers:
-
-#. 2p10GE: x550, x553 Intel (codename Niantic)
- - DPDK Poll Mode Driver (PMD).
-#. 4p10GE: x710-DA4 Intel (codename Fortville, FVL)
- - DPDK PMD.
- - AVF in PMD mode.
- - AF_XDP in PMD mode.
-#. 2p25GE: xxv710-DA2 Intel (codename Fortville, FVL)
- - DPDK PMD.
- - AVF in PMD mode.
- - AF_XDP in PMD mode.
-#. 2p100GE: cx556a-edat Mellanox ConnectX5
- - RDMA_core in PMD mode.
-#. 2p100GE: E810-2CQDA2 Intel (codename Columbiaville, CVL)
- - DPDK PMD.
- - AVF in PMD mode.
-
-DPDK applications, testpmd and l3fwd, are performance tested on the same
-SUTs exclusively with DPDK drivers for all NICs.
-
-TRex running on TGs is using DPDK drivers for all NICs.
-
-VPP hoststack tests utilize ab (Apache HTTP server benchmarking tool)
-running on TGs and using Linux drivers for all NICs.
-
-For more information see :ref:`vpp_test_environment`
-and :ref:`dpdk_test_environment`.
-
-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 NICs:
-
-#. NIC-1: x710-DA4 4p10GE Intel.
-#. NIC-2: xxv710-DA2 2p25GE Intel.
-#. NIC-3: cx556a-edat ConnectX5 2p100GE Mellanox.
-
-TG NICs:
-
-#. 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 Cascadelake (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 NICs:
-
-#. 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 NICs:
-
-#. 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 Cascadelake servers run with Intel Hyper-Threading enabled,
-doubling the number of logical cores exposed to Linux.
-
-.. _physical_testbeds_2n_icx:
-
-2-Node Xeon Icelake (2n-icx)
-----------------------------
-
-One 2n-icx testbed is in operation in FD.io labs. It is built with two
-SuperMicro SYS-740GP-TNRT servers, each in turn equipped with two Intel Xeon
-Platinum 8358 processors (48 MB Cache, 2.60 GHz, 32 cores).
-
-.. only:: latex
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_tmp/src/introduction/}}
- \includegraphics[width=0.90\textwidth]{testbed-2n-icx}
- \label{fig:testbed-2n-icx}
- \end{figure}
-
-.. only:: html
-
- .. figure:: testbed-2n-icx.svg
- :alt: testbed-2n-icx
- :align: center
-
-SUT and TG NICs:
-
-#. NIC-1: xxv710-DA2 2p25GE Intel.
-#. NIC-2: E810-2CQDA2 2p100GbE Intel (* to be added).
-#. NIC-3: E810-CQDA4 4p100GbE Intel (* to be added).
-
-All Intel Xeon Icelake servers run with Intel Hyper-Threading enabled,
-doubling the number of logical cores exposed to Linux.
-
-.. _physical_testbeds_3n_icx:
-
-3-Node Xeon Icelake (3n-icx)
-----------------------------
-
-One 3n-icx testbed is in operation in FD.io labs. It is built with three
-SuperMicro SYS-740GP-TNRT servers, each in turn equipped with two Intel Xeon
-Platinum 8358 processors (48 MB Cache, 2.60 GHz, 32 cores).
-
-.. only:: latex
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_tmp/src/introduction/}}
- \includegraphics[width=0.90\textwidth]{testbed-3n-icx}
- \label{fig:testbed-3n-icx}
- \end{figure}
-
-.. only:: html
-
- .. figure:: testbed-3n-icx.svg
- :alt: testbed-3n-icx
- :align: center
-
-SUT and TG NICs:
-
-#. NIC-1: xxv710-DA2 2p25GE Intel.
-#. NIC-2: E810-2CQDA2 2p100GbE Intel (* to be added).
-#. NIC-3: E810-CQDA4 4p100GbE Intel (* to be added).
-
-All Intel Xeon Icelake 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 NICs:
-
-#. 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 NICs:
-
-#. 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 NICs:
-
-#. 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 NICs:
-
-#. 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.
-
-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 10GE NIC ports:
-
-#. P-1: x553 copper port.
-#. P-2: x553 copper port.
-#. P-3: x553 fiber port.
-#. P-4: x553 fiber port.
-
-TG NICs:
-
-#. 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 NICs:
-
-#. NIC-1: x553 2p10GE fiber Intel.
-#. NIC-2: x553 2p10GE copper Intel.
-
-TG NICs:
-
-#. NIC-1: x710-DA4 4p10GE Intel.
-
-.. _physical_testbeds_3n_alt:
-
-3-Node ARM Altra (3n-alt)
----------------------------
-
-One 3n-tsh testbed is built with: i) one SuperMicro SYS-740GP-TNRT
-server acting as TG and equipped with two Intel Xeon Icelake Platinum
-8358 processors (80 MB Cache, 2.60 GHz, 32 cores), and ii) one Ampere
-Altra server acting as SUT and equipped with two Q80-30 processors
-(80* ARM Neoverse N1). 3n-alt physical topology is shown below.
-
-.. only:: latex
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_tmp/src/introduction/}}
- \includegraphics[width=0.90\textwidth]{testbed-3n-alt}
- \label{fig:testbed-3n-alt}
- \end{figure}
-
-.. only:: html
-
- .. figure:: testbed-3n-alt.svg
- :alt: testbed-3n-alt
- :align: center
-
-SUT1 and SUT2 NICs:
-
-#. NIC-1: xl710-QDA2-2p40GE Intel.
-
-TG NICs:
-
-#. NIC-1: xxv710-DA2-2p25GE Intel.
-#. NIC-2: xl710-QDA2-2p40GE Intel.
-#. NIC-3: e810-XXVDA4-4p25GE Intel.
-#. NIC-4: e810-2CQDA2-2p100GE 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 NICs:
-
-#. NIC-1: connectx4 2p25GE Mellanox.
-#. NIC-2: x520 2p10GE Intel.
-
-TG NICs:
-
-#. 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 NICs:
-
-#. NIC-1: xl710-QDA2 2p40GE Intel (not connected).
-#. NIC-2: xl710-QDA2 2p40GE Intel.
-
-TG NICs:
-
-#. NIC-1: 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 360a9ca252..0000000000
--- a/docs/report/introduction/report_history.rst
+++ /dev/null
@@ -1,38 +0,0 @@
-Report History
-==============
-
-FD.io |csit-release| Report history and per .[ww] revision changes are listed
-below.
-
-+----------------+-------------------------------------------------------------+
-| .[ww] Revision | Changes |
-+================+=============================================================+
-| .31 | 1. Added packet throughput, speedup multi-core and packet |
-| | latency graphs for 2n-tx2 LXC/DRC Container Memif. |
-| | |
-+----------------+-------------------------------------------------------------+
-| .30 | 1. Added VPP iterative data from 2n-clx, 2n-icx, 2n-skx |
-| | - 100B-ethip4tcp-ip4base-tput |
-| | - 100B-ethip4tcp-nat44ed-tput |
-| | - 100B-ethip4udp-ip4base-tput |
-| | |
-+----------------+-------------------------------------------------------------+
-| .29 | 1. Added VPP iterative data: |
-| | |
-| | - 2n-zn2 |
-| | - 3n-alt |
-| | |
-| | 2. Added VPP coverage data: |
-| | |
-| | - 2n-zn2 |
-| | - 3n-alt |
-| | |
-| | 3. Added RCAs, see :ref:`vpp_rca`. |
-| | |
-+----------------+-------------------------------------------------------------+
-| .28 | 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_changes_tg.rst b/docs/report/introduction/test_environment_changes_tg.rst
deleted file mode 100644
index d21e43e04a..0000000000
--- a/docs/report/introduction/test_environment_changes_tg.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-To identify performance changes due to TRex code development between previous
-and current TRex version, both have been tested in CSIT environment of latest
-version and compared against each other. All substantial progressions and
-regressions have been marked up with RCA analysis. See :ref:`trex_known_issues`.
-
-Physical Testbeds
------------------
-
-FD.io CSIT performance tests are executed in physical testbeds hosted by
-:abbr:`LF (Linux Foundation)` for FD.io project. Physical testbed
-topology used:
-
-- **1-Node Topology**: Consisting of TG with 1 NIC with 2 ports connected
- together - loopback connection.
diff --git a/docs/report/introduction/test_environment_changes_vpp.rst b/docs/report/introduction/test_environment_changes_vpp.rst
deleted file mode 100644
index 5f3d3bf3e9..0000000000
--- a/docs/report/introduction/test_environment_changes_vpp.rst
+++ /dev/null
@@ -1,32 +0,0 @@
-To identify performance changes due to VPP code development between previous
-and current VPP release version, both have been tested in CSIT environment of
-latest version 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`.
-
-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 Icelake-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`_.
diff --git a/docs/report/introduction/test_environment_intro.rst b/docs/report/introduction/test_environment_intro.rst
deleted file mode 100644
index 10ba083a12..0000000000
--- a/docs/report/introduction/test_environment_intro.rst
+++ /dev/null
@@ -1,126 +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.
-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 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://s3-docs.fd.io/csit/master/report/vpp_performance_tests/test_environment.html#sut-settings-linux>`_
- and `Pre-Test Server Calibration
- <https://s3-docs.fd.io/csit/master/report/vpp_performance_tests/test_environment.html#id21>`_.
-- **TRex** TRex Traffic Generator version, drivers and configuration
- tracked in `TG Settings
- <https://s3-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.
-- 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 <https://gerrit.fd.io/r/c/csit/+/29980>`_.
-- 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 <https://gerrit.fd.io/r/c/csit/+/31652>`_.
- - Ubuntu upgrade:
- `upgrade from 18.04 LTS to 20.04.2 LTS <https://gerrit.fd.io/r/c/csit/+/31290>`_.
-- 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. 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. 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. \ No newline at end of file
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_alt.rst b/docs/report/introduction/test_environment_sut_calib_alt.rst
deleted file mode 100644
index dae1d1bf14..0000000000
--- a/docs/report/introduction/test_environment_sut_calib_alt.rst
+++ /dev/null
@@ -1,25 +0,0 @@
-Altra
-~~~~~
-
-Following sections include sample calibration data measured on
-s62-t34-sut1 server running in one of the Altra testbeds.
-
-
-Linux cmdline
-^^^^^^^^^^^^^
-
-::
-
- $ cat /proc/cmdline
- BOOT_IMAGE=/vmlinuz-5.4.0-65-generic root=/dev/mapper/ubuntu--vg-ubuntu--lv ro 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 processor.max_cstate=1 rcu_nocbs=1-40,81-120
-
-Linux uname
-^^^^^^^^^^^
-
-::
-
- $ uname -a
- Linux s62-t34-sut1 5.4.0-65-generic #73-Ubuntu SMP Mon Jan 18 17:27:25 UTC 2021 aarch64 aarch64 aarch64 GNU/Linux
-
-
-.. include:: ../introduction/test_environment_sut_meltspec_alt.rst
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 ef4812d2e1..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-5.4.0-65-generic root=UUID=b1f0dc29-1d4f-4777-b37d-a5e26e233d55 ro 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 numa_balancing=disable processor.max_cstate=1 rcu_nocbs=1-27,29-55,57-83,85-111 tsc=reliable console=ttyS0,115200n8 quiet
-
-Linux uname
-^^^^^^^^^^^
-
-::
-
- $ uname -a
- Linux 5.4.0-65-generic #73-Ubuntu SMP Mon Jan 18 17:25:17 UTC 2021 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 d38ba2fb8b..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-5.4.0-65-generic root=UUID=26ca7b0f-904a-462d-a1c6-98c420c29515 ro 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 numa_balancing=disable processor.max_cstate=1 rcu_nocbs=1-5 tsc=reliable console=tty0 console=ttyS0,115200n8
-
-
-Linux uname
-^^^^^^^^^^^
-
-::
-
- $ uname -a
- Linux 5.4.0-65-generic #73-Ubuntu SMP Mon Jan 18 17:25:17 UTC 2021 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_icx.rst b/docs/report/introduction/test_environment_sut_calib_icx.rst
deleted file mode 100644
index 39245ff8ae..0000000000
--- a/docs/report/introduction/test_environment_sut_calib_icx.rst
+++ /dev/null
@@ -1,73 +0,0 @@
-Ice Lake
-~~~~~~~~
-
-Following sections include sample calibration data measured on
-s71-t212-sut1 server running in one of the Intel Xeon Ice Lake testbeds as
-specified in `FD.io CSIT testbeds - Xeon Ice Lake`_.
-
-Calibration data obtained from all other servers in Ice Lake testbeds
-shows the same or similar values.
-
-
-Linux cmdline
-^^^^^^^^^^^^^
-
-::
-
- $ cat /proc/cmdline
- BOOT_IMAGE=/boot/vmlinuz-5.4.0-65-generic root=UUID=3250758a-9bb6-48c8-9c36-ecb6a269223f 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
-
-Linux uname
-^^^^^^^^^^^
-
-::
-
- $ uname -a
- Linux 5.4.0-65-generic #73-Ubuntu SMP Mon Jan 18 17:25:17 UTC 2021 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
- 126082,133950,7868,126094,126082,133950,3829268480,2524167454,1
- 126082,134696,8614,126094,126082,134696,1778253824,2524273022,2
- 126082,136092,10010,126094,126082,136092,4022206464,2524203296,3
- 126082,135094,9012,126094,126082,136092,1971191808,2524274302,4
- 126082,136482,10400,126094,126082,136482,4215144448,2524318496,5
- 126082,134990,8908,126094,126082,136482,2164129792,2524155038,6
- 126082,134710,8628,126092,126082,136482,113115136,2524215228,7
- 126082,135080,8998,126092,126082,136482,2357067776,2524168906,8
- 126082,134470,8388,126094,126082,136482,306053120,2524163312,9
- 126082,135246,9164,126092,126082,136482,2550005760,2524394986,10
- 126082,132662,6580,126094,126082,136482,498991104,2524163156,11
- 126082,132954,6872,126094,126082,136482,2742943744,2524154386,12
- 126082,135340,9258,126092,126082,136482,691929088,2524222386,13
- 126082,133036,6954,126094,126082,136482,2935881728,2524150132,14
- 126082,137776,11694,126094,126082,137776,884867072,2524239346,15
- 126082,137850,11768,126094,126082,137850,3128819712,2524342944,16
- 126082,133000,6918,126094,126082,137850,1077805056,2524160062,17
- 126082,133332,7250,126094,126082,137850,3321757696,2524158804,18
- 126082,133234,7152,126092,126082,137850,1270743040,2524174400,19
- 126082,152552,26470,126094,126082,152552,3514695680,2524857280,20
-
-.. include:: ../introduction/test_environment_sut_meltspec_icx.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 cbb8011fe0..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-5.4.0-65-generic root=UUID=55d44abd-94d6-4b26-9d93-5877a8658016 ro 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 numa_balancing=disable processor.max_cstate=1 rcu_nocbs=1-27,29-55,57-83,85-111 tsc=reliable console=ttyS0,115200n8 quiet
-
-
-Linux uname
-^^^^^^^^^^^
-
-::
-
- $ uname -a
- Linux 5.4.0-65-generic #73-Ubuntu SMP Mon Jan 18 17:25:17 UTC 2021 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 36284f3e60..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-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
-
-Linux uname
-^^^^^^^^^^^
-
-::
-
- $ uname -a
- Linux 5.4.0-65-generic #73-Ubuntu SMP Mon Jan 18 17:25:17 UTC 2021 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.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 05b7d8c16a..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-t211-sut1 server running in one of the ThunderX2 testbeds.
-
-
-Linux cmdline
-^^^^^^^^^^^^^
-
-::
-
- $ cat /proc/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
-
-Linux uname
-^^^^^^^^^^^
-
-::
-
- $ uname -a
- Linux 5.4.0-65-generic #73-Ubuntu SMP Mon Jan 18 17:25:17 UTC 2021 x86_64 x86_64 x86_64 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 9454edd2a6..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-5.4.0-65-generic root=UUID=3c4b56e3-1f01-4211-a652-ea77468f58b7 ro 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 numa_balancing=disable processor.max_cstate=0 rcu_nocbs=1-15,17-31,33-47,49-63 tsc=reliable console=ttyS0,115200n8 quiet
-
-
-Linux uname
-^^^^^^^^^^^
-
-::
-
- $ uname -a
- Linux 5.4.0-65-generic #73-Ubuntu SMP Mon Jan 18 17:25:17 UTC 2021 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 7f724dd6ea..0000000000
--- a/docs/report/introduction/test_environment_sut_conf_1.rst
+++ /dev/null
@@ -1,53 +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`_.
-
-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_alt.rst b/docs/report/introduction/test_environment_sut_meltspec_alt.rst
deleted file mode 100644
index b087a93900..0000000000
--- a/docs/report/introduction/test_environment_sut_meltspec_alt.rst
+++ /dev/null
@@ -1,96 +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.45
-
- Checking for vulnerabilities on current system
- Kernel is Linux 5.4.0-65-generic #73-Ubuntu SMP Mon Jan 18 17:27:25 UTC 2021 aarch64
- CPU is ARM v8 model 0xd0c
-
- 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): NO
- * 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)
- > STATUS: UNKNOWN (/sys vulnerability interface use forced, but it's not available!)
-
- CVE-2017-5715 aka Spectre Variant 2, branch target injection
- * Mitigated according to the /sys interface: YES (Not affected)
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not affected)
-
- CVE-2017-5754 aka Variant 3, Meltdown, rogue data cache load
- * Mitigated according to the /sys interface: YES (Not affected)
- * Running as a Xen PV DomU: NO
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not affected)
-
- 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 affected)
-
- CVE-2018-3639 aka Variant 4, speculative store bypass
- * Mitigated according to the /sys interface: YES (Mitigation: Speculative Store Bypass disabled via prctl)
- > STATUS: NOT VULNERABLE (Mitigation: Speculative Store Bypass disabled via prctl)
-
- 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 affected)
-
- CVE-2018-3620 aka Foreshadow-NG (OS), L1 terminal fault
- * Mitigated according to the /sys interface: YES (Not affected)
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not affected)
-
- CVE-2018-3646 aka Foreshadow-NG (VMM), L1 terminal fault
- * Information from the /sys interface: Not affected
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not affected)
-
- CVE-2018-12126 aka Fallout, microarchitectural store buffer data sampling (MSBDS)
- * Mitigated according to the /sys interface: YES (Not affected)
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not affected)
-
- CVE-2018-12130 aka ZombieLoad, microarchitectural fill buffer data sampling (MFBDS)
- * Mitigated according to the /sys interface: YES (Not affected)
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not affected)
-
- CVE-2018-12127 aka RIDL, microarchitectural load port data sampling (MLPDS)
- * Mitigated according to the /sys interface: YES (Not affected)
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not affected)
-
- CVE-2019-11091 aka RIDL, microarchitectural data sampling uncacheable memory (MDSUM)
- * Mitigated according to the /sys interface: YES (Not affected)
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not affected)
-
- CVE-2019-11135 aka ZombieLoad V2, TSX Asynchronous Abort (TAA)
- * Mitigated according to the /sys interface: YES (Not affected)
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not affected)
-
- 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)
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not affected)
-
- CVE-2020-0543 aka Special Register Buffer Data Sampling (SRBDS)
- * Mitigated according to the /sys interface: YES (Not affected)
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not affected)
-
- > SUMMARY: CVE-2017-5753:?? 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
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 6261c5653c..0000000000
--- a/docs/report/introduction/test_environment_sut_meltspec_clx.rst
+++ /dev/null
@@ -1,251 +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+
-
- 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 supports Special Register Buffer Data Sampling (SRBDS): 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: NO (latest version is 0x5003102 dated 2021/03/08 according to builtin firmwares DB v191+i20210217)
- * 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): YES
- * 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): YES
- * Affected by CVE-2018-3646 (Foreshadow-NG (VMM), L1 terminal fault): YES
- * 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)): YES
- * 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: usercopy/swapgs barriers and __user pointer sanitization)
- > STATUS: UNKNOWN (/sys vulnerability interface use forced, but it s not available!)
-
- CVE-2017-5715 aka Spectre Variant 2, branch target injection
- * Mitigated according to the /sys interface: YES (Mitigation: Enhanced IBRS, IBPB: conditional, RSB filling)
- > STATUS: VULNERABLE (IBRS+IBPB or retpoline+IBPB+RSB filling, is needed to mitigate the vulnerability)
-
- CVE-2017-5754 aka Variant 3, Meltdown, rogue data cache load
- * Mitigated according to the /sys interface: YES (Not affected)
- * 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)
- > 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)
- > STATUS: NOT VULNERABLE (Not affected)
-
- CVE-2018-3646 aka Foreshadow-NG (VMM), L1 terminal fault
- * Information from the /sys interface: Not affected
- > 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)
- > 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)
- > 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)
- > 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)
- > 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)
- > 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)
- > STATUS: NOT VULNERABLE (KVM: Mitigation: Split huge pages)
-
- CVE-2020-0543 aka Special Register Buffer Data Sampling (SRBDS)
- * Mitigated according to the /sys interface: YES (Not affected)
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- > SUMMARY: CVE-2017-5753:?? CVE-2017-5715:KO 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
-
-::
-
- Spectre and Meltdown mitigation detection tool v0.44+
-
- Checking for vulnerabilities on current system
- Kernel is Linux 5.4.0-65-generic #73-Ubuntu SMP Mon Jan 18 17:25:17 UTC 2021 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 supports Special Register Buffer Data Sampling (SRBDS): 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: NO (latest version is 0x5003102 dated 2021/03/08 according to builtin firmwares DB v191+i20210217)
- * 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): YES
- * 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): YES
- * Affected by CVE-2018-3646 (Foreshadow-NG (VMM), L1 terminal fault): YES
- * 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)): YES
- * 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: usercopy/swapgs barriers and __user pointer sanitization)
- > STATUS: UNKNOWN (/sys vulnerability interface use forced, but its not available!)
-
- CVE-2017-5715 aka Spectre Variant 2, branch target injection
- * Mitigated according to the /sys interface: YES (Mitigation: Enhanced IBRS, IBPB: conditional, RSB filling)
- > STATUS: VULNERABLE (IBRS+IBPB or retpoline+IBPB+RSB filling, is needed to mitigate the vulnerability)
-
- CVE-2017-5754 aka Variant 3, Meltdown, rogue data cache load
- * Mitigated according to the /sys interface: YES (Not affected)
- * 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)
- > 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)
- > STATUS: NOT VULNERABLE (Not affected)
-
- CVE-2018-3646 aka Foreshadow-NG (VMM), L1 terminal fault
- * Information from the /sys interface: Not affected
- > 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)
- > 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)
- > 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)
- > 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)
- > 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)
- > 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)
- > STATUS: NOT VULNERABLE (KVM: Mitigation: Split huge pages)
-
- CVE-2020-0543 aka Special Register Buffer Data Sampling (SRBDS)
- * Mitigated according to the /sys interface: YES (Not affected)
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- > SUMMARY: CVE-2017-5753:?? CVE-2017-5715:KO 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
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 4b3a8a134d..0000000000
--- a/docs/report/introduction/test_environment_sut_meltspec_dnv.rst
+++ /dev/null
@@ -1,347 +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 5.4.0-65-generic #73-Ubuntu SMP Mon Jan 18 17:25:17 UTC 2021 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 supports Special Register Buffer Data Sampling (SRBDS): NO
- * CPU microcode is known to cause stability problems: NO (family 0x6 model 0x55 stepping 0x4 ucode 0x2000065 cpuid 0x50654)
- * CPU microcode is the latest known available version: NO (latest version is 0x2006b06 dated 2021/03/08 according to builtin firmwares DB v191+i20210217)
- * 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): YES
- * Affected by CVE-2018-3640 (Variant 3a, rogue system register read): YES
- * 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): YES
- * Affected by CVE-2018-3646 (Foreshadow-NG (VMM), L1 terminal fault): YES
- * Affected by CVE-2018-12126 (Fallout, microarchitectural store buffer data sampling (MSBDS)): YES
- * Affected by CVE-2018-12130 (ZombieLoad, microarchitectural fill buffer data sampling (MFBDS)): YES
- * Affected by CVE-2018-12127 (RIDL, microarchitectural load port data sampling (MLPDS)): YES
- * Affected by CVE-2019-11091 (RIDL, microarchitectural data sampling uncacheable memory (MDSUM)): YES
- * Affected by CVE-2019-11135 (ZombieLoad V2, TSX Asynchronous Abort (TAA)): YES
- * Affected by CVE-2018-12207 (No eXcuses, iTLB Multihit, machine check exception on page size changes (MCEPSC)): YES
- * 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: 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 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 (boltd fwupd irqbalance 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)
-
- CVE-2020-0543 aka Special Register Buffer Data Sampling (SRBDS)
- * Mitigated according to the /sys interface: YES (Not affected)
- * SRBDS mitigation control is supported by the kernel: YES (found SRBDS implementation evidence in kernel image. Your kernel is up to date for SRBDS mitigation)
- * SRBDS mitigation control is enabled and active: 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 CVE-2019-11135:OK CVE-2018-12207:OK CVE-2020-0543:OK
-
-::
-
- Spectre and Meltdown mitigation detection tool v0.44+
-
- Checking for vulnerabilities on current system
- Kernel is Linux 5.4.0-65-generic #73-Ubuntu SMP Mon Jan 18 17:25:17 UTC 2021 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: 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: 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: 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 supports Special Register Buffer Data Sampling (SRBDS): NO
- * CPU microcode is known to cause stability problems: NO (family 0x6 model 0x5f stepping 0x1 ucode 0x20 cpuid 0x506f1)
- * CPU microcode is the latest known available version: NO (latest version is 0x34 dated 2020/10/23 according to builtin firmwares DB v191+i20210217)
- * 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): YES
- * 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: 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 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: 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: 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
- * 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 (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)
- * Mitigated according to the /sys interface: YES (Not affected)
- * SRBDS mitigation control is supported by the kernel: YES (found SRBDS implementation evidence in kernel image. Your kernel is up to date for SRBDS mitigation)
- * SRBDS mitigation control is enabled and active: 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:KO 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
diff --git a/docs/report/introduction/test_environment_sut_meltspec_icx.rst b/docs/report/introduction/test_environment_sut_meltspec_icx.rst
deleted file mode 100644
index 256391e13d..0000000000
--- a/docs/report/introduction/test_environment_sut_meltspec_icx.rst
+++ /dev/null
@@ -1,131 +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 5.4.0-65-generic #73-Ubuntu SMP Mon Jan 18 17:25:17 UTC 2021 x86_64
- CPU is Intel(R) Xeon(R) Platinum 8358 CPU @ 2.60GHz
-
- 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): YES
- * CPU explicitly indicates not being vulnerable to iTLB Multihit (PSCHANGE_MSC_NO): YES
- * 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): YES
- * CPU supports Special Register Buffer Data Sampling (SRBDS): NO
- * CPU microcode is known to cause stability problems: NO (family 0x6 model 0x6a stepping 0x6 ucode 0xd000280 cpuid 0x606a6)
- * CPU microcode is the latest known available version: NO (latest version is 0xd0002a0 dated 2021/04/25 according to builtin firmwares DB v191+i20210217)
- * 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): YES
- * Affected by CVE-2018-3639 (Variant 4, speculative store bypass): YES
- * Affected by CVE-2018-3615 (Foreshadow (SGX), L1 terminal fault): YES
- * Affected by CVE-2018-3620 (Foreshadow-NG (OS), L1 terminal fault): YES
- * Affected by CVE-2018-3646 (Foreshadow-NG (VMM), L1 terminal fault): YES
- * 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)): YES
- * 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: usercopy/swapgs barriers and __user pointer sanitization)
- > STATUS: UNKNOWN (/sys vulnerability interface use forced, but its not available!)
-
- CVE-2017-5715 aka Spectre Variant 2, branch target injection
- * Mitigated according to the /sys interface: YES (Mitigation: Enhanced IBRS, IBPB: conditional, RSB filling)
- > STATUS: VULNERABLE (IBRS+IBPB or retpoline+IBPB is needed to mitigate the vulnerability)
-
- CVE-2017-5754 aka Variant 3, Meltdown, rogue data cache load
- * Mitigated according to the /sys interface: YES (Not affected)
- * 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)
- > 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: YES
- > STATUS: NOT VULNERABLE (your CPU microcode mitigates the vulnerability)
-
- CVE-2018-3620 aka Foreshadow-NG (OS), L1 terminal fault
- * Mitigated according to the /sys interface: YES (Not affected)
- > STATUS: NOT VULNERABLE (Not affected)
-
- CVE-2018-3646 aka Foreshadow-NG (VMM), L1 terminal fault
- * Information from the /sys interface: Not affected
- > 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)
- > 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)
- > 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)
- > 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)
- > 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)
- > 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)
- > STATUS: NOT VULNERABLE (Not affected)
-
- CVE-2020-0543 aka Special Register Buffer Data Sampling (SRBDS)
- * Mitigated according to the /sys interface: YES (Not affected)
- > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)
-
- > SUMMARY: CVE-2017-5753:?? CVE-2017-5715:KO 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
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 0e2f5b9783..0000000000
--- a/docs/report/introduction/test_environment_sut_meltspec_skx.rst
+++ /dev/null
@@ -1,178 +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 5.4.0-65-generic #73-Ubuntu SMP Mon Jan 18 17:25:17 UTC 2021 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 supports Special Register Buffer Data Sampling (SRBDS): NO
- * CPU microcode is known to cause stability problems: NO (family 0x6 model 0x55 stepping 0x4 ucode 0x2000065 cpuid 0x50654)
- * CPU microcode is the latest known available version: NO (latest version is 0x2006b06 dated 2021/03/08 according to builtin firmwares DB v191+i20210217)
- * 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): YES
- * Affected by CVE-2018-3640 (Variant 3a, rogue system register read): YES
- * 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): YES
- * Affected by CVE-2018-3646 (Foreshadow-NG (VMM), L1 terminal fault): YES
- * Affected by CVE-2018-12126 (Fallout, microarchitectural store buffer data sampling (MSBDS)): YES
- * Affected by CVE-2018-12130 (ZombieLoad, microarchitectural fill buffer data sampling (MFBDS)): YES
- * Affected by CVE-2018-12127 (RIDL, microarchitectural load port data sampling (MLPDS)): YES
- * Affected by CVE-2019-11091 (RIDL, microarchitectural data sampling uncacheable memory (MDSUM)): YES
- * Affected by CVE-2019-11135 (ZombieLoad V2, TSX Asynchronous Abort (TAA)): YES
- * Affected by CVE-2018-12207 (No eXcuses, iTLB Multihit, machine check exception on page size changes (MCEPSC)): YES
- * 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: 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 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 (boltd fwupd irqbalance 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)
-
- CVE-2020-0543 aka Special Register Buffer Data Sampling (SRBDS)
- * Mitigated according to the /sys interface: YES (Not affected)
- * SRBDS mitigation control is supported by the kernel: YES (found SRBDS implementation evidence in kernel image. Your kernel is up to date for SRBDS mitigation)
- * SRBDS mitigation control is enabled and active: 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 CVE-2019-11135:OK CVE-2018-12207:OK CVE-2020-0543: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 c583d5f273..0000000000
--- a/docs/report/introduction/test_environment_sut_meltspec_tsh.rst
+++ /dev/null
@@ -1,452 +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 5.4.0-65-generic #73-Ubuntu SMP Mon Jan 18 17:25:17 UTC 2021 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 supports Special Register Buffer Data Sampling (SRBDS): NO
- * CPU microcode is known to cause stability problems: NO (family 0x6 model 0x55 stepping 0x4 ucode 0x2000065 cpuid 0x50654)
- * CPU microcode is the latest known available version: NO (latest version is 0x2006b06 dated 2021/03/08 according to builtin firmwares DB v191+i20210217)
- * 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): YES
- * Affected by CVE-2018-3640 (Variant 3a, rogue system register read): YES
- * 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): YES
- * Affected by CVE-2018-3646 (Foreshadow-NG (VMM), L1 terminal fault): YES
- * Affected by CVE-2018-12126 (Fallout, microarchitectural store buffer data sampling (MSBDS)): YES
- * Affected by CVE-2018-12130 (ZombieLoad, microarchitectural fill buffer data sampling (MFBDS)): YES
- * Affected by CVE-2018-12127 (RIDL, microarchitectural load port data sampling (MLPDS)): YES
- * Affected by CVE-2019-11091 (RIDL, microarchitectural data sampling uncacheable memory (MDSUM)): YES
- * Affected by CVE-2019-11135 (ZombieLoad V2, TSX Asynchronous Abort (TAA)): YES
- * Affected by CVE-2018-12207 (No eXcuses, iTLB Multihit, machine check exception on page size changes (MCEPSC)): YES
- * 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: 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 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 (boltd fwupd irqbalance 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)
-
- CVE-2020-0543 aka Special Register Buffer Data Sampling (SRBDS)
- * Mitigated according to the /sys interface: YES (Not affected)
- * SRBDS mitigation control is supported by the kernel: YES (found SRBDS implementation evidence in kernel image. Your kernel is up to date for SRBDS mitigation)
- * SRBDS mitigation control is enabled and active: 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 CVE-2019-11135:OK CVE-2018-12207:OK CVE-2020-0543:OK
-
-::
-
- Spectre and Meltdown mitigation detection tool v0.44+
-
- Checking for vulnerabilities on current system
- Kernel is Linux 5.4.0-65-generic #73-Ubuntu SMP Mon Jan 18 17:27:25 UTC 2021 aarch64
- CPU is ARM v8 model 0xd08
-
- 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): YES
- * 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: 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
- * 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)
- * Mitigated according to the /sys interface: YES (Not affected)
- * SRBDS mitigation control is supported by the kernel: NO
- * SRBDS mitigation control is enabled and active: 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:KO 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
-
- Need more detailed information about mitigation options? Use --explain
- A false sense of security is worse than no security at all, see --disclaimer
- ok: [10.30.51.37] =>
- spectre_meltdown_poll_results.stdout_lines:
- Spectre and Meltdown mitigation detection tool v0.44+
-
- Checking for vulnerabilities on current system
- Kernel is Linux 5.4.0-65-generic #73-Ubuntu SMP Mon Jan 18 17:27:25 UTC 2021 aarch64
- CPU is ARM v8 model 0xd08
-
- 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): YES
- * 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: 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
- * 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)
- * Mitigated according to the /sys interface: YES (Not affected)
- * SRBDS mitigation control is supported by the kernel: NO
- * SRBDS mitigation control is enabled and active: 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:KO 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
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 f12113a8bf..0000000000
--- a/docs/report/introduction/test_environment_sut_meltspec_tx2.rst
+++ /dev/null
@@ -1,143 +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 5.4.0-65-generic #73-Ubuntu SMP Mon Jan 18 17:27:25 UTC 2021 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: 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
- * 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)
- * Mitigated according to the /sys interface: YES (Not affected)
- * SRBDS mitigation control is supported by the kernel: NO
- * SRBDS mitigation control is enabled and active: 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: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 8269ce7f92..0000000000
--- a/docs/report/introduction/test_environment_sut_meltspec_zn2.rst
+++ /dev/null
@@ -1,327 +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 5.4.0-65-generic #73-Ubuntu SMP Mon Jan 18 17:25:17 UTC 2021 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 0x8301038 cpuid 0x830f10)
- * CPU microcode is the latest known available version: NO (latest version is 0x830104d dated 2020/07/28 according to builtin firmwares DB v191+i20210217)
- * 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: 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 (irqbalance 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)
- * Mitigated according to the /sys interface: YES (Not affected)
- * SRBDS mitigation control is supported by the kernel: YES (found SRBDS implementation evidence in kernel image. Your kernel is up to date for SRBDS mitigation)
- * SRBDS mitigation control is enabled and active: 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 CVE-2019-11135:OK CVE-2018-12207:OK CVE-2020-0543:OK
-
-::
-
-Spectre and Meltdown mitigation detection tool v0.44+
-
-Checking for vulnerabilities on current system
-Kernel is Linux 5.4.0-65-generic #73-Ubuntu SMP Mon Jan 18 17:25:17 UTC 2021 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 0x8301038 cpuid 0x830f10)
- * CPU microcode is the latest known available version: NO (latest version is 0x830104d dated 2020/07/28 according to builtin firmwares DB v191+i20210217)
-* 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: 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: 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 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 (irqbalance 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)
-* Mitigated according to the /sys interface: YES (Not affected)
-* SRBDS mitigation control is supported by the kernel: YES (found SRBDS implementation evidence in kernel image. Your kernel is up to date for SRBDS mitigation)
-* SRBDS mitigation control is enabled and active: 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 CVE-2019-11135:OK CVE-2018-12207:OK CVE-2020-0543:OK
diff --git a/docs/report/introduction/test_environment_tg.rst b/docs/report/introduction/test_environment_tg.rst
deleted file mode 100644
index 411af83eb5..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 v21.02
-
-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 c102f76cde..0000000000
--- a/docs/report/introduction/test_scenarios_overview.rst
+++ /dev/null
@@ -1,67 +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 Cascadelake
- and Skylake servers, ARM, Denverton, range of NICs (10GE, 25GE, 40GE, 100GE)
- 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.
-
-#. **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. Tested across Intel Skylake servers, range of NICs
- (10GE) and selected traffic profiles. 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 Python. |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-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/stats/durations.rst b/docs/report/stats/durations.rst
deleted file mode 100644
index 952ff72fb3..0000000000
--- a/docs/report/stats/durations.rst
+++ /dev/null
@@ -1,68 +0,0 @@
-Job Durations
-=============
-
-2n-icx
-------
-
- - `ASCII Iterative jobs <../_static/vpp/job-spec-duration-2n-icx-iter.txt>`_
- - `ASCII Coverage jobs <../_static/vpp/job-spec-duration-2n-icx-cov.txt>`_
-
-3n-icx
-------
-
- - `ASCII Iterative jobs <../_static/vpp/job-spec-duration-3n-icx-iter.txt>`_
- - `ASCII Coverage jobs <../_static/vpp/job-spec-duration-3n-icx-cov.txt>`_
-
-2n-clx
-------
-
- - `ASCII Iterative jobs <../_static/vpp/job-spec-duration-2n-clx-iter.txt>`_
- - `ASCII Coverage jobs <../_static/vpp/job-spec-duration-2n-clx-cov.txt>`_
-
-2n-dnv
-------
-
- - `ASCII Iterative jobs <../_static/vpp/job-spec-duration-2n-dnv-iter.txt>`_
- - `ASCII Coverage jobs <../_static/vpp/job-spec-duration-2n-dnv-cov.txt>`_
-
-2n-skx
-------
-
- - `ASCII Iterative jobs <../_static/vpp/job-spec-duration-2n-skx-iter.txt>`_
- - `ASCII Coverage jobs <../_static/vpp/job-spec-duration-2n-skx-cov.txt>`_
-
-2n-tx2
-------
-
- - `ASCII Iterative jobs <../_static/vpp/job-spec-duration-2n-tx2-iter.txt>`_
- - `ASCII Coverage jobs <../_static/vpp/job-spec-duration-2n-tx2-cov.txt>`_
-
-2n-zn2
-------
-
- - `ASCII Iterative jobs <../_static/vpp/job-spec-duration-2n-zn2-iter.txt>`_
- - `ASCII Coverage jobs <../_static/vpp/job-spec-duration-2n-zn2-cov.txt>`_
-
-3n-alt
-------
-
- - `ASCII Iterative jobs <../_static/vpp/job-spec-duration-3n-alt-iter.txt>`_
- - `ASCII Coverage jobs <../_static/vpp/job-spec-duration-3n-alt-cov.txt>`_
-
-3n-dnv
-------
-
- - `ASCII Iterative jobs <../_static/vpp/job-spec-duration-3n-dnv-iter.txt>`_
- - `ASCII Coverage jobs <../_static/vpp/job-spec-duration-3n-dnv-cov.txt>`_
-
-3n-skx
-------
-
- - `ASCII Iterative jobs <../_static/vpp/job-spec-duration-3n-skx-iter.txt>`_
- - `ASCII Coverage jobs <../_static/vpp/job-spec-duration-3n-skx-cov.txt>`_
-
-3n-tsh
-------
-
- - `ASCII Iterative jobs <../_static/vpp/job-spec-duration-3n-tsh-iter.txt>`_
- - `ASCII Coverage jobs <../_static/vpp/job-spec-duration-3n-tsh-cov.txt>`_
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 81467048c5..0000000000
--- a/docs/report/test_configuration/vpp_device_configuration_ubuntu/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-VPP Device
-==========
-
-.. note::
-
- Data sources for reported test configurations:
- i) `build logs from FD.io 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 d25bd8cb9f..0000000000
--- a/docs/report/test_configuration/vpp_mrr_configuration/index.rst
+++ /dev/null
@@ -1,23 +0,0 @@
-VPP MRR
-=======
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io vpp iterative job 2n-icx`_,
- `build logs from FD.io vpp iterative job 3n-icx`_,
- `build logs from FD.io vpp iterative job 2n-skx`_,
- `build logs from FD.io vpp iterative job 3n-skx`_,
- `build logs from FD.io vpp iterative job 2n-clx`_,
- `build logs from FD.io vpp iterative job 2n-zn2`_,
- `build logs from FD.io vpp iterative job 3n-alt`_,
- `build logs from FD.io vpp iterative job 3n-tsh`_,
- `build logs from FD.io vpp iterative job 2n-tx2`_,
- `build logs from FD.io vpp iterative job 2n-dnv`_,
- `build logs from FD.io vpp iterative job 3n-dnv`_,
- `build logs from FD.io vpp iterative job 2n-aws`_,
- ii) archived FD.io jobs test results
- `output files <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_configuration/vpp_mrr_configuration_2n_aws/index.rst b/docs/report/test_configuration/vpp_mrr_configuration_2n_aws/index.rst
deleted file mode 100644
index aa8134bb04..0000000000
--- a/docs/report/test_configuration/vpp_mrr_configuration_2n_aws/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-aws
-------
-
-.. note::
-
- Data sources for reported test configurations:
- i) `build logs from FD.io vpp coverage job 2n-aws`_,
- ii) archived FD.io jobs test result `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 3a6e9ff58a..0000000000
--- a/docs/report/test_configuration/vpp_mrr_configuration_2n_clx/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-clx
-------
-
-.. note::
-
- Data sources for reported test configurations:
- i) `build logs from FD.io vpp coverage 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 5d33ad1f15..0000000000
--- a/docs/report/test_configuration/vpp_mrr_configuration_2n_dnv/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-dnv
-------
-
-.. note::
-
- Data sources for reported test configurations:
- i) `build logs from FD.io vpp coverage 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_icx/index.rst b/docs/report/test_configuration/vpp_mrr_configuration_2n_icx/index.rst
deleted file mode 100644
index 28e31ebec6..0000000000
--- a/docs/report/test_configuration/vpp_mrr_configuration_2n_icx/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-icx
-------
-
-.. note::
-
- Data sources for reported test configurations:
- i) `build logs from FD.io vpp coverage job 2n-icx`_,
- 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 55865b7f4e..0000000000
--- a/docs/report/test_configuration/vpp_mrr_configuration_2n_skx/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-skx
-------
-
-.. note::
-
- Data sources for reported test configurations:
- i) `build logs from FD.io vpp coverage 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 bc7bb3cc93..0000000000
--- a/docs/report/test_configuration/vpp_mrr_configuration_2n_tx2/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-tx2
-------
-
-.. note::
-
- Data sources for reported test configurations:
- i) `build logs from FD.io vpp coverage 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 b82b2b8986..0000000000
--- a/docs/report/test_configuration/vpp_mrr_configuration_2n_zn2/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-zn2
-------
-
-.. note::
-
- Data sources for reported test configurations:
- i) `build logs from FD.io vpp coverage 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_alt/index.rst b/docs/report/test_configuration/vpp_mrr_configuration_3n_alt/index.rst
deleted file mode 100644
index 7da7693806..0000000000
--- a/docs/report/test_configuration/vpp_mrr_configuration_3n_alt/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-alt
-------
-
-.. note::
-
- Data sources for reported test configurations:
- i) `build logs from FD.io vpp coverage job 3n-alt`_,
- ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_configuration/vpp_mrr_configuration_3n_aws/index.rst b/docs/report/test_configuration/vpp_mrr_configuration_3n_aws/index.rst
deleted file mode 100644
index b2e289cd49..0000000000
--- a/docs/report/test_configuration/vpp_mrr_configuration_3n_aws/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-aws
-------
-
-.. note::
-
- Data sources for reported test configurations:
- i) `build logs from FD.io vpp coverage job 3n-aws`_,
- 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 285df68a48..0000000000
--- a/docs/report/test_configuration/vpp_mrr_configuration_3n_dnv/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-dnv
-------
-
-.. note::
-
- Data sources for reported test configurations:
- i) `build logs from FD.io vpp coverage 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_icx/index.rst b/docs/report/test_configuration/vpp_mrr_configuration_3n_icx/index.rst
deleted file mode 100644
index 63ddf173ae..0000000000
--- a/docs/report/test_configuration/vpp_mrr_configuration_3n_icx/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-icx
-------
-
-.. note::
-
- Data sources for reported test configurations:
- i) `build logs from FD.io vpp coverage job 3n-icx`_,
- 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 ba114fea25..0000000000
--- a/docs/report/test_configuration/vpp_mrr_configuration_3n_skx/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-skx
-------
-
-.. note::
-
- Data sources for reported test configurations:
- i) `build logs from FD.io vpp coverage 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 79d8a92bb9..0000000000
--- a/docs/report/test_configuration/vpp_mrr_configuration_3n_tsh/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-tsh
-------
-
-.. note::
-
- Data sources for reported test configurations:
- i) `build logs from FD.io vpp coverage 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 63d51497c2..0000000000
--- a/docs/report/test_configuration/vpp_performance_configuration/index.rst
+++ /dev/null
@@ -1,23 +0,0 @@
-VPP Throughput
-==============
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io vpp coverage job 2n-icx`_,
- `build logs from FD.io vpp coverage job 3n-icx`_,
- `build logs from FD.io vpp coverage job 2n-skx`_,
- `build logs from FD.io vpp coverage job 3n-skx`_,
- `build logs from FD.io vpp coverage job 2n-clx`_,
- `build logs from FD.io vpp coverage job 2n-zn2`_,
- `build logs from FD.io vpp coverage job 3n-alt`_,
- `build logs from FD.io vpp coverage job 3n-tsh`_,
- `build logs from FD.io vpp coverage job 2n-tx2`_,
- `build logs from FD.io vpp coverage job 2n-dnv`_,
- `build logs from FD.io vpp coverage job 3n-dnv`_,
- `build logs from FD.io vpp coverage job 2n-aws`_,
- ii) archived FD.io jobs test results
- `output files <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_configuration/vpp_performance_configuration_2n_aws/index.rst b/docs/report/test_configuration/vpp_performance_configuration_2n_aws/index.rst
deleted file mode 100644
index ede2a1cb18..0000000000
--- a/docs/report/test_configuration/vpp_performance_configuration_2n_aws/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-aws
-------
-
-.. note::
-
- Data sources for reported test configurations:
- i) `build logs from FD.io vpp performance job 2n-aws`_,
- ii) archived FD.io jobs test result `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 3a6e9ff58a..0000000000
--- a/docs/report/test_configuration/vpp_performance_configuration_2n_clx/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-clx
-------
-
-.. note::
-
- Data sources for reported test configurations:
- i) `build logs from FD.io vpp coverage 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 5d33ad1f15..0000000000
--- a/docs/report/test_configuration/vpp_performance_configuration_2n_dnv/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-dnv
-------
-
-.. note::
-
- Data sources for reported test configurations:
- i) `build logs from FD.io vpp coverage 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_icx/index.rst b/docs/report/test_configuration/vpp_performance_configuration_2n_icx/index.rst
deleted file mode 100644
index 28e31ebec6..0000000000
--- a/docs/report/test_configuration/vpp_performance_configuration_2n_icx/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-icx
-------
-
-.. note::
-
- Data sources for reported test configurations:
- i) `build logs from FD.io vpp coverage job 2n-icx`_,
- 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 55865b7f4e..0000000000
--- a/docs/report/test_configuration/vpp_performance_configuration_2n_skx/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-skx
-------
-
-.. note::
-
- Data sources for reported test configurations:
- i) `build logs from FD.io vpp coverage 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 bc7bb3cc93..0000000000
--- a/docs/report/test_configuration/vpp_performance_configuration_2n_tx2/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-tx2
-------
-
-.. note::
-
- Data sources for reported test configurations:
- i) `build logs from FD.io vpp coverage 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 b82b2b8986..0000000000
--- a/docs/report/test_configuration/vpp_performance_configuration_2n_zn2/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-zn2
-------
-
-.. note::
-
- Data sources for reported test configurations:
- i) `build logs from FD.io vpp coverage 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_alt/index.rst b/docs/report/test_configuration/vpp_performance_configuration_3n_alt/index.rst
deleted file mode 100644
index 7da7693806..0000000000
--- a/docs/report/test_configuration/vpp_performance_configuration_3n_alt/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-alt
-------
-
-.. note::
-
- Data sources for reported test configurations:
- i) `build logs from FD.io vpp coverage job 3n-alt`_,
- ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/test_configuration/vpp_performance_configuration_3n_aws/index.rst b/docs/report/test_configuration/vpp_performance_configuration_3n_aws/index.rst
deleted file mode 100644
index 8cfd18e75c..0000000000
--- a/docs/report/test_configuration/vpp_performance_configuration_3n_aws/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-3n-aws
-------
-
-.. note::
-
- Data sources for reported test configurations:
- i) `build logs from FD.io vpp performance job 3n-aws`_,
- 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 285df68a48..0000000000
--- a/docs/report/test_configuration/vpp_performance_configuration_3n_dnv/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-dnv
-------
-
-.. note::
-
- Data sources for reported test configurations:
- i) `build logs from FD.io vpp coverage 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_icx/index.rst b/docs/report/test_configuration/vpp_performance_configuration_3n_icx/index.rst
deleted file mode 100644
index 63ddf173ae..0000000000
--- a/docs/report/test_configuration/vpp_performance_configuration_3n_icx/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-icx
-------
-
-.. note::
-
- Data sources for reported test configurations:
- i) `build logs from FD.io vpp coverage job 3n-icx`_,
- 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 ba114fea25..0000000000
--- a/docs/report/test_configuration/vpp_performance_configuration_3n_skx/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-skx
-------
-
-.. note::
-
- Data sources for reported test configurations:
- i) `build logs from FD.io vpp coverage 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 79d8a92bb9..0000000000
--- a/docs/report/test_configuration/vpp_performance_configuration_3n_tsh/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-tsh
-------
-
-.. note::
-
- Data sources for reported test configurations:
- i) `build logs from FD.io vpp coverage 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 923a590a12..0000000000
--- a/docs/report/test_operational_data/vpp_performance_operational_data/index.rst
+++ /dev/null
@@ -1,28 +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-skx,
-2n-skx, 2n-clx, 3n-dnv, 2n-dnv, 3n-alt, 3n-tsh, 2n-tx2. The data is collected
-at 100% PDR.
-
-.. note::
-
- Data sources for reported test results:
- i) `build logs from FD.io vpp coverage job 2n-icx`_,
- `build logs from FD.io vpp coverage job 3n-icx`_,
- `build logs from FD.io vpp coverage job 2n-skx`_,
- `build logs from FD.io vpp coverage job 3n-skx`_,
- `build logs from FD.io vpp coverage job 2n-clx`_,
- `build logs from FD.io vpp coverage job 2n-zn2`_,
- `build logs from FD.io vpp coverage job 3n-alt`_,
- `build logs from FD.io vpp coverage job 3n-tsh`_,
- `build logs from FD.io vpp coverage job 2n-tx2`_,
- `build logs from FD.io vpp coverage job 2n-dnv`_,
- `build logs from FD.io vpp coverage job 3n-dnv`_,
- `build logs from FD.io vpp coverage job 2n-aws`_,
- 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_aws/index.rst b/docs/report/test_operational_data/vpp_performance_operational_data_2n_aws/index.rst
deleted file mode 100644
index 5394c8de1d..0000000000
--- a/docs/report/test_operational_data/vpp_performance_operational_data_2n_aws/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2n-aws
-------
-
-.. note::
-
- Data sources for reported test operational data:
- i) `build logs from FD.io vpp performance job 2n-aws`_,
- 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_clx/index.rst b/docs/report/test_operational_data/vpp_performance_operational_data_2n_clx/index.rst
deleted file mode 100644
index 183acd50f5..0000000000
--- a/docs/report/test_operational_data/vpp_performance_operational_data_2n_clx/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-clx
-------
-
-.. note::
-
- Data sources for reported test operational data:
- i) `build logs from FD.io vpp coverage 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 bdbeae928e..0000000000
--- a/docs/report/test_operational_data/vpp_performance_operational_data_2n_dnv/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-dnv
-------
-
-.. note::
-
- Data sources for reported test operational data:
- i) `build logs from FD.io vpp coverage 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_icx/index.rst b/docs/report/test_operational_data/vpp_performance_operational_data_2n_icx/index.rst
deleted file mode 100644
index cdb92acb82..0000000000
--- a/docs/report/test_operational_data/vpp_performance_operational_data_2n_icx/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-icx
-------
-
-.. note::
-
- Data sources for reported test operational data:
- i) `build logs from FD.io vpp coverage job 2n-icx`_,
- 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 3fc8fb7775..0000000000
--- a/docs/report/test_operational_data/vpp_performance_operational_data_2n_skx/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-skx
-------
-
-.. note::
-
- Data sources for reported test operational data:
- i) `build logs from FD.io vpp coverage 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 1c6df7a612..0000000000
--- a/docs/report/test_operational_data/vpp_performance_operational_data_2n_tx2/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-tx2
-------
-
-.. note::
-
- Data sources for reported test operational data:
- i) `build logs from FD.io vpp coverage 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 a02b2d68f6..0000000000
--- a/docs/report/test_operational_data/vpp_performance_operational_data_2n_zn2/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-2n-zn2
-------
-
-.. note::
-
- Data sources for reported test operational data:
- i) `build logs from FD.io vpp coverage 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_alt/index.rst b/docs/report/test_operational_data/vpp_performance_operational_data_3n_alt/index.rst
deleted file mode 100644
index a279406d62..0000000000
--- a/docs/report/test_operational_data/vpp_performance_operational_data_3n_alt/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-alt
-------
-
-.. note::
-
- Data sources for reported test operational data:
- i) `build logs from FD.io vpp coverage job 3n-alt`_,
- 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_aws/index.rst b/docs/report/test_operational_data/vpp_performance_operational_data_3n_aws/index.rst
deleted file mode 100644
index cf6fd47f19..0000000000
--- a/docs/report/test_operational_data/vpp_performance_operational_data_3n_aws/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-3n-aws
-------
-
-.. note::
-
- Data sources for reported test operational data:
- i) `build logs from FD.io vpp performance job 3n-aws`_,
- 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 e803877f6a..0000000000
--- a/docs/report/test_operational_data/vpp_performance_operational_data_3n_dnv/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-dnv
-------
-
-.. note::
-
- Data sources for reported test operational data:
- i) `build logs from FD.io vpp coverage 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_icx/index.rst b/docs/report/test_operational_data/vpp_performance_operational_data_3n_icx/index.rst
deleted file mode 100644
index 62ab12fbcb..0000000000
--- a/docs/report/test_operational_data/vpp_performance_operational_data_3n_icx/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-icx
-------
-
-.. note::
-
- Data sources for reported test operational data:
- i) `build logs from FD.io vpp coverage job 3n-icx`_,
- 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 16ab9c397d..0000000000
--- a/docs/report/test_operational_data/vpp_performance_operational_data_3n_skx/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-skx
-------
-
-.. note::
-
- Data sources for reported test operational data:
- i) `build logs from FD.io vpp coverage 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 bf5324a7ff..0000000000
--- a/docs/report/test_operational_data/vpp_performance_operational_data_3n_tsh/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-3n-tsh
-------
-
-.. note::
-
- Data sources for reported test operational data:
- i) `build logs from FD.io vpp coverage job 3n-tsh`_,
- ii) archived FD.io jobs test result `output files
- <../../_static/archive/>`_.
-
-.. toctree::
-
diff --git a/docs/report/trex_performance_tests/csit_release_notes.rst b/docs/report/trex_performance_tests/csit_release_notes.rst
deleted file mode 100644
index d9e56a6a43..0000000000
--- a/docs/report/trex_performance_tests/csit_release_notes.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-Release Notes
-=============
-
-Changes in |csit-release|
--------------------------
-
-#. TREX PERFORMANCE TESTS
-
- - No updates
-
-#. TEST FRAMEWORK
-
-#. TRex RELEASE VERSION
- - **TRex version used: 2.97**
-
-
-.. _trex_known_issues:
-
-Known Issues
-------------
-
-List of known issues in |csit-release| for TRex performance tests:
-
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| # | JiraID | Issue Description |
-+====+=========================================+===========================================================================================================+
-| 1 | | |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
diff --git a/docs/report/trex_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_skx.rst b/docs/report/trex_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_skx.rst
deleted file mode 100644
index 61baf8fcbf..0000000000
--- a/docs/report/trex_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_skx.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-2n-skx
-======
-
diff --git a/docs/report/trex_performance_tests/index.rst b/docs/report/trex_performance_tests/index.rst
deleted file mode 100644
index 8596f71479..0000000000
--- a/docs/report/trex_performance_tests/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-TRex Performance
-================
-
-.. toctree::
-
- overview
- csit_release_notes
- packet_throughput_graphs/index
- packet_latency/index
- throughput_trending
- test_environment
diff --git a/docs/report/trex_performance_tests/logical-TRex-nic2nic.svg b/docs/report/trex_performance_tests/logical-TRex-nic2nic.svg
deleted file mode 100755
index f5ed028eff..0000000000
--- a/docs/report/trex_performance_tests/logical-TRex-nic2nic.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg id="svg" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="400" height="265.0980392156863" viewBox="0, 0, 400,265.0980392156863"><g id="svgg"><path id="path0" d="M69.142 9.726 C 69.045 9.823,68.966 10.831,68.966 11.965 C 68.966 14.179,68.798 14.522,68.010 13.926 C 66.627 12.879,64.296 13.619,63.392 15.392 C 61.514 19.072,64.443 23.235,67.687 21.497 C 68.527 21.047,68.697 21.029,68.975 21.364 C 70.137 22.765,70.292 22.095,70.292 15.650 C 70.292 9.367,70.163 8.705,69.142 9.726 M124.315 9.726 C 123.810 10.230,124.131 21.687,124.653 21.824 C 125.460 22.035,125.464 22.002,125.464 15.606 C 125.464 9.370,125.335 8.706,124.315 9.726 M41.706 16.114 C 41.775 21.683,41.796 21.883,42.308 21.883 C 42.811 21.883,42.842 21.685,42.903 18.037 C 42.971 13.946,43.086 12.997,43.513 12.997 C 43.660 12.997,43.895 13.266,44.035 13.594 C 44.175 13.922,44.709 14.907,45.221 15.782 C 45.733 16.658,46.242 17.559,46.352 17.785 C 49.372 24.000,50.653 23.552,50.660 16.280 C 50.664 11.091,50.542 10.287,49.765 10.397 C 49.226 10.474,49.201 10.634,49.131 14.496 C 49.062 18.304,49.032 18.507,48.551 18.382 C 48.272 18.309,47.922 17.933,47.774 17.546 C 47.625 17.160,47.083 16.127,46.569 15.252 C 46.055 14.377,45.550 13.481,45.447 13.263 C 44.427 11.095,43.715 10.345,42.678 10.345 L 41.634 10.345 41.706 16.114 M85.676 10.727 C 85.676 11.295,86.178 11.518,87.798 11.668 L 89.257 11.804 89.390 16.844 C 89.490 20.648,89.604 21.877,89.854 21.857 C 90.036 21.842,90.302 21.812,90.445 21.790 C 90.600 21.767,90.733 19.757,90.777 16.777 L 90.849 11.804 92.352 11.725 C 93.839 11.647,94.653 11.186,94.304 10.622 C 94.013 10.151,85.676 10.253,85.676 10.727 M262.865 16.446 C 262.865 22.370,262.880 22.546,263.395 22.546 C 263.910 22.546,263.926 22.370,263.926 16.446 C 263.926 10.522,263.910 10.345,263.395 10.345 C 262.880 10.345,262.865 10.522,262.865 16.446 M298.143 16.446 C 298.143 22.685,298.175 22.862,299.177 22.236 C 299.570 21.991,299.869 22.019,300.606 22.369 C 303.106 23.555,305.305 21.715,305.305 18.437 C 305.305 15.226,303.252 13.371,300.920 14.478 C 299.434 15.183,299.204 14.916,299.204 12.475 C 299.204 10.522,299.160 10.345,298.674 10.345 C 298.159 10.345,298.143 10.522,298.143 16.446 M325.650 10.512 C 325.548 10.615,325.464 13.364,325.464 16.622 L 325.464 22.546 326.127 22.546 C 326.771 22.546,326.790 22.491,326.790 20.718 C 326.790 18.233,327.149 18.192,328.928 20.475 C 330.405 22.371,331.112 22.959,331.570 22.676 C 332.006 22.406,331.887 22.177,330.246 20.138 C 328.321 17.746,328.327 18.055,330.156 16.083 C 332.348 13.718,331.235 13.484,328.880 15.815 C 326.929 17.745,326.828 17.643,326.733 13.659 C 326.659 10.535,326.395 9.768,325.650 10.512 M29.178 11.538 C 28.996 11.757,28.713 11.940,28.548 11.945 C 27.863 11.965,26.373 13.793,27.042 13.793 C 27.171 13.793,27.317 13.671,27.367 13.522 C 27.417 13.372,27.904 13.178,28.450 13.089 L 29.443 12.928 29.443 16.428 C 29.443 20.188,29.245 20.955,28.272 20.955 C 27.931 20.955,27.503 21.134,27.321 21.353 C 27.031 21.702,27.334 21.751,29.808 21.751 C 32.614 21.751,33.533 21.414,31.678 21.066 C 30.401 20.827,30.147 20.093,30.328 17.163 C 30.609 12.590,30.154 10.363,29.178 11.538 M167.507 11.933 C 165.908 13.105,165.474 13.591,165.766 13.882 C 165.929 14.045,166.241 13.995,166.631 13.744 C 166.967 13.527,167.513 13.281,167.845 13.197 L 168.448 13.044 168.375 17.198 L 168.302 21.353 167.328 21.434 C 166.357 21.515,165.534 22.121,165.899 22.487 C 166.189 22.778,171.130 22.885,171.847 22.615 C 172.645 22.315,171.983 21.485,170.945 21.485 C 169.912 21.485,169.761 20.764,169.761 15.800 C 169.761 10.468,169.685 10.337,167.507 11.933 M188.948 11.556 C 188.861 11.785,188.912 12.095,189.061 12.244 C 189.502 12.685,190.311 12.378,190.403 11.735 C 190.506 11.016,189.216 10.858,188.948 11.556 M206.284 11.566 C 205.518 11.981,205.378 12.974,206.117 12.748 C 211.092 11.225,211.612 14.599,207.126 19.291 C 204.087 22.469,204.245 22.802,208.798 22.808 C 211.713 22.812,212.202 22.694,212.202 21.988 C 212.202 21.545,211.990 21.485,210.411 21.482 C 206.913 21.475,206.762 21.199,209.027 18.957 C 211.810 16.203,212.474 13.654,210.844 11.987 C 209.889 11.010,207.684 10.807,206.284 11.566 M245.800 12.113 C 245.703 12.210,245.623 12.675,245.623 13.146 C 245.623 14.164,245.314 14.324,243.343 14.324 C 242.551 14.324,241.666 14.472,241.376 14.653 C 240.956 14.915,240.741 14.915,240.322 14.653 C 239.310 14.021,239.257 14.208,239.257 18.453 L 239.257 22.583 239.854 22.499 C 240.424 22.418,240.454 22.288,240.527 19.635 C 240.617 16.360,241.008 15.650,242.719 15.650 C 243.260 15.650,243.847 15.475,244.024 15.262 C 244.897 14.210,245.556 15.458,245.669 18.380 C 245.811 22.026,246.616 23.172,248.674 22.655 C 249.553 22.435,249.594 21.485,248.724 21.485 C 247.405 21.485,247.089 20.920,246.991 18.377 C 246.892 15.785,247.026 15.498,248.408 15.342 C 249.707 15.195,249.507 14.229,248.143 14.058 C 247.136 13.933,247.078 13.875,247.000 12.931 C 246.921 11.977,246.336 11.578,245.800 12.113 M54.935 13.929 C 53.149 14.911,52.448 19.069,53.823 20.532 C 57.403 24.344,63.047 19.832,60.606 15.111 C 59.848 13.646,56.659 12.981,54.935 13.929 M74.592 14.007 C 72.212 15.838,72.300 20.059,74.746 21.376 C 76.429 22.283,79.841 21.859,79.841 20.743 C 79.841 20.351,79.498 20.362,77.321 20.824 C 76.159 21.071,74.697 20.038,74.585 18.891 L 74.502 18.037 77.017 18.037 C 80.584 18.037,80.739 17.914,80.097 15.600 C 79.580 13.740,76.208 12.763,74.592 14.007 M95.720 13.954 C 93.928 14.901,93.262 19.031,94.661 20.521 C 97.508 23.552,101.857 21.736,101.857 17.516 C 101.857 14.166,98.740 12.357,95.720 13.954 M104.411 14.125 C 104.202 14.906,104.196 23.970,104.405 24.514 C 104.900 25.803,105.836 24.960,105.836 23.225 C 105.836 21.257,105.989 21.073,107.144 21.649 C 110.167 23.157,113.033 19.134,111.518 15.509 C 110.733 13.630,108.427 12.860,106.792 13.932 C 106.240 14.293,106.141 14.293,105.841 13.932 C 105.347 13.337,104.595 13.439,104.411 14.125 M115.497 13.969 C 112.759 15.335,113.156 20.528,116.083 21.646 C 119.220 22.844,121.619 20.992,121.593 17.393 C 121.570 14.020,118.664 12.389,115.497 13.969 M129.759 14.065 C 127.123 15.672,127.326 20.140,130.096 21.481 C 133.674 23.213,136.933 20.089,135.828 15.986 C 135.212 13.697,132.020 12.686,129.759 14.065 M139.191 13.994 C 138.259 14.572,137.837 15.857,138.056 17.450 C 138.151 18.138,138.118 18.998,137.984 19.361 C 137.824 19.792,137.840 20.181,138.030 20.484 C 138.253 20.841,138.205 21.162,137.827 21.864 C 136.384 24.545,141.400 26.347,144.104 24.119 C 146.232 22.364,144.694 20.430,141.163 20.420 C 138.457 20.413,138.303 19.639,140.988 19.537 C 143.085 19.457,144.163 18.377,144.167 16.352 C 144.170 15.370,144.310 14.803,144.632 14.482 C 145.449 13.665,145.141 13.528,142.507 13.535 C 140.541 13.540,139.745 13.651,139.191 13.994 M146.154 13.731 C 146.154 13.842,146.402 14.588,146.704 15.388 C 147.007 16.189,147.356 17.142,147.480 17.507 C 147.604 17.871,147.968 18.826,148.289 19.629 C 149.104 21.668,149.214 22.687,148.703 23.467 C 148.084 24.413,148.160 24.934,148.920 24.934 C 149.518 24.934,150.398 23.789,150.398 23.010 C 150.398 22.872,150.587 22.323,150.818 21.791 C 151.049 21.258,151.407 20.430,151.614 19.951 C 151.820 19.472,151.989 18.973,151.989 18.841 C 151.989 18.710,152.127 18.266,152.296 17.855 C 153.666 14.517,153.839 13.528,153.054 13.528 C 152.525 13.528,151.934 14.549,151.445 16.313 C 150.482 19.781,149.796 20.251,149.089 17.931 C 148.038 14.482,147.536 13.528,146.772 13.528 C 146.432 13.528,146.154 13.619,146.154 13.731 M156.283 14.503 C 156.355 15.386,156.452 15.517,157.029 15.517 C 158.095 15.517,158.016 13.698,156.946 13.575 C 156.230 13.493,156.203 13.532,156.283 14.503 M181.815 14.448 C 181.229 14.891,179.841 14.990,179.841 14.589 C 179.841 14.443,179.602 14.324,179.310 14.324 C 178.803 14.324,178.780 14.500,178.780 18.435 L 178.780 22.546 179.443 22.546 L 180.106 22.546 180.106 19.675 C 180.106 16.417,180.439 15.778,182.293 15.477 C 184.000 15.200,184.350 15.883,184.350 19.496 L 184.350 22.546 185.013 22.546 L 185.676 22.546 185.676 19.270 C 185.676 16.155,185.644 15.958,185.023 15.288 C 183.938 14.116,182.686 13.789,181.815 14.448 M195.889 14.245 C 192.718 15.087,192.080 20.559,194.960 22.216 C 196.162 22.909,197.005 22.962,198.284 22.427 C 199.858 21.770,199.499 21.160,197.661 21.368 C 195.342 21.631,194.562 20.893,194.562 18.435 C 194.562 15.974,195.328 15.252,197.652 15.522 C 198.960 15.674,199.204 15.637,199.204 15.287 C 199.204 14.564,197.137 13.913,195.889 14.245 M221.950 14.233 C 221.694 14.304,221.485 14.473,221.485 14.608 C 221.485 14.940,219.968 14.923,219.761 14.589 C 219.006 13.366,218.833 14.382,218.833 20.045 L 218.833 25.766 219.430 25.682 C 219.966 25.605,220.035 25.428,220.106 23.926 C 220.195 22.048,220.456 21.788,221.635 22.403 C 222.617 22.914,222.917 22.912,224.027 22.386 C 227.866 20.564,225.967 13.114,221.950 14.233 M231.432 14.236 C 227.405 15.312,227.439 21.788,231.476 22.662 C 234.611 23.341,237.088 20.450,236.227 17.116 C 235.677 14.986,233.506 13.682,231.432 14.236 M252.905 14.425 C 252.042 14.808,251.194 15.883,251.194 16.595 C 251.194 17.202,252.888 18.833,253.519 18.833 C 254.148 18.833,255.438 19.799,255.438 20.270 C 255.438 21.357,253.732 21.777,252.096 21.094 C 250.745 20.529,250.894 21.652,252.267 22.387 C 255.001 23.851,258.143 20.414,255.714 18.618 C 255.282 18.298,254.789 18.037,254.618 18.037 C 253.982 18.037,252.520 16.919,252.520 16.433 C 252.520 15.737,253.315 15.385,254.890 15.385 C 255.883 15.385,256.233 15.285,256.233 15.002 C 256.233 14.249,254.126 13.884,252.905 14.425 M269.364 14.461 C 264.830 16.911,266.773 23.595,271.748 22.662 C 274.856 22.079,275.949 17.092,273.419 15.044 C 272.225 14.078,270.525 13.834,269.364 14.461 M279.906 14.246 C 278.249 14.565,276.671 17.314,277.070 19.187 C 278.009 23.593,283.588 24.084,284.814 19.868 C 285.828 16.380,283.381 13.577,279.906 14.246 M290.849 14.433 C 290.253 14.887,288.859 14.996,288.859 14.589 C 288.859 14.443,288.621 14.324,288.329 14.324 C 287.815 14.324,287.798 14.500,287.798 20.027 L 287.798 25.729 288.462 25.729 C 289.100 25.729,289.125 25.667,289.125 24.021 C 289.125 22.040,289.340 21.806,290.609 22.408 C 293.146 23.612,295.563 20.925,295.083 17.434 C 294.759 15.082,292.292 13.333,290.849 14.433 M310.477 14.240 C 309.662 14.424,308.222 15.122,308.227 15.331 C 308.236 15.773,308.693 16.227,308.859 15.959 C 309.084 15.594,311.198 15.283,311.910 15.509 C 313.316 15.955,313.184 17.389,311.719 17.586 C 309.871 17.835,308.749 18.249,308.230 18.872 C 306.485 20.966,309.233 23.734,311.753 22.420 C 312.324 22.122,312.610 22.101,312.978 22.331 C 314.086 23.023,314.324 22.498,314.324 19.359 C 314.324 15.981,314.038 15.157,312.637 14.492 C 311.715 14.054,311.441 14.022,310.477 14.240 M319.871 14.309 C 315.242 15.730,316.561 23.455,321.303 22.697 C 323.682 22.316,323.872 21.104,321.511 21.371 C 319.227 21.629,318.435 20.882,318.435 18.465 C 318.435 16.036,318.974 15.501,321.362 15.559 C 322.658 15.590,323.077 15.511,323.077 15.236 C 323.077 14.522,321.070 13.941,319.871 14.309 M189.125 18.435 C 189.125 22.370,189.147 22.546,189.655 22.546 C 190.163 22.546,190.186 22.370,190.186 18.435 C 190.186 14.500,190.163 14.324,189.655 14.324 C 189.147 14.324,189.125 14.500,189.125 18.435 M78.249 15.119 C 79.437 16.307,78.672 17.033,76.349 16.923 C 74.865 16.853,74.659 16.777,74.588 16.277 C 74.392 14.904,77.159 14.029,78.249 15.119 M142.193 14.863 C 142.595 15.079,142.706 15.425,142.706 16.468 C 142.706 18.638,140.249 19.284,139.499 17.312 C 138.779 15.419,140.429 13.919,142.193 14.863 M59.133 15.625 C 60.570 17.643,59.443 20.456,57.183 20.490 C 54.724 20.527,53.599 17.313,55.373 15.318 C 56.113 14.485,58.458 14.676,59.133 15.625 M68.352 15.431 C 69.259 16.283,69.248 19.005,68.334 19.864 C 66.584 21.509,64.472 20.351,64.462 17.741 C 64.452 15.097,66.623 13.807,68.352 15.431 M99.875 15.566 C 101.057 17.370,100.349 20.371,98.718 20.466 C 96.074 20.620,94.800 19.120,95.500 16.678 C 96.066 14.706,98.848 13.999,99.875 15.566 M109.976 15.705 C 111.565 18.779,108.787 22.043,106.449 19.848 C 105.499 18.955,105.553 16.307,106.540 15.459 C 107.679 14.480,109.406 14.604,109.976 15.705 M119.609 15.553 C 121.738 18.259,118.230 22.327,115.834 19.931 C 115.059 19.156,115.009 16.671,115.747 15.584 C 116.466 14.523,118.785 14.505,119.609 15.553 M133.790 15.261 C 134.314 15.784,134.590 17.273,134.391 18.500 C 133.870 21.708,129.448 21.085,129.444 17.803 C 129.441 15.311,132.217 13.687,133.790 15.261 M223.826 15.849 C 225.836 17.570,224.591 21.845,222.216 21.374 C 218.976 20.732,219.412 15.527,222.716 15.406 C 223.028 15.394,223.527 15.594,223.826 15.849 M233.771 15.693 C 236.477 17.135,234.926 21.885,231.908 21.395 C 229.400 20.988,228.854 16.194,231.244 15.565 C 232.124 15.334,233.198 15.388,233.771 15.693 M272.699 16.160 C 274.106 17.567,273.497 20.938,271.757 21.375 C 269.680 21.896,268.170 20.668,268.170 18.458 C 268.170 15.653,270.838 14.299,272.699 16.160 M282.303 15.628 C 284.444 16.442,284.090 20.946,281.852 21.366 C 279.671 21.775,278.467 20.780,278.433 18.540 C 278.395 16.014,280.048 14.770,282.303 15.628 M292.944 15.997 C 294.829 17.881,293.536 21.850,291.190 21.381 C 288.553 20.854,288.197 16.493,290.716 15.572 C 291.569 15.260,292.358 15.411,292.944 15.997 M303.164 15.896 C 304.365 17.097,304.055 20.737,302.708 21.249 C 300.032 22.267,297.866 18.392,299.872 16.176 C 300.649 15.316,302.433 15.165,303.164 15.896 M35.013 17.245 C 34.325 17.698,35.226 18.029,37.157 18.033 C 39.020 18.037,39.304 17.936,39.078 17.348 C 38.909 16.907,35.655 16.824,35.013 17.245 M312.917 19.272 C 313.205 20.022,312.404 21.066,311.337 21.332 C 309.471 21.797,308.325 20.569,309.458 19.318 C 310.058 18.655,312.667 18.621,312.917 19.272 M156.419 19.796 C 156.029 20.187,156.229 21.692,156.695 21.871 C 157.456 22.163,158.209 21.037,157.734 20.320 C 157.343 19.729,156.730 19.486,156.419 19.796 M142.507 21.765 C 143.755 22.111,143.938 23.189,142.821 23.614 C 141.342 24.176,138.727 23.759,138.727 22.961 C 138.727 21.763,140.490 21.205,142.507 21.765 M23.254 44.208 C 23.157 44.306,23.077 90.858,23.077 147.657 L 23.077 250.928 198.674 250.928 L 374.271 250.928 374.205 147.546 L 374.138 44.164 198.784 44.098 C 102.340 44.061,23.351 44.111,23.254 44.208 M372.912 45.717 C 373.132 45.982,373.193 72.812,373.144 147.773 L 373.077 249.469 198.740 249.536 L 24.403 249.603 24.403 147.657 C 24.403 91.587,24.483 45.632,24.580 45.535 C 24.964 45.151,372.593 45.333,372.912 45.717 M254.033 57.095 C 251.822 63.093,252.784 72.125,255.637 72.144 C 256.263 72.149,256.494 71.205,255.996 70.676 C 255.416 70.060,255.071 67.555,255.066 63.926 C 255.061 60.222,255.133 59.714,256.110 56.565 C 256.516 55.255,254.524 55.764,254.033 57.095 M289.112 56.565 C 290.810 60.759,290.815 67.064,289.123 71.264 C 288.952 71.688,288.997 71.879,289.295 71.994 C 290.496 72.455,290.818 72.071,291.943 68.833 C 292.943 65.958,292.517 60.085,291.074 56.830 C 290.582 55.721,288.666 55.462,289.112 56.565 M193.170 56.674 C 192.943 56.766,192.838 57.482,192.838 58.938 L 192.838 61.068 192.042 60.905 C 191.605 60.816,190.869 60.667,190.407 60.574 C 186.855 59.858,185.245 66.436,188.457 68.540 C 189.268 69.072,190.716 69.089,191.395 68.576 C 192.074 68.063,192.755 68.069,193.048 68.592 C 193.190 68.845,193.540 68.977,193.923 68.923 L 194.562 68.833 194.634 63.031 C 194.714 56.574,194.603 56.096,193.170 56.674 M107.294 57.463 C 103.291 58.396,103.254 62.061,107.231 63.845 C 108.811 64.555,109.284 65.058,109.284 66.030 C 109.284 67.445,107.039 68.138,105.325 67.252 C 104.511 66.831,104.244 66.936,104.244 67.677 C 104.244 69.676,110.009 69.191,111.065 67.103 C 112.100 65.058,111.339 63.518,108.643 62.204 C 106.599 61.207,106.200 60.683,106.629 59.554 C 106.974 58.648,109.466 58.373,109.968 59.185 C 110.213 59.581,110.542 59.440,110.689 58.877 C 110.926 57.973,108.840 57.104,107.294 57.463 M165.460 57.476 C 164.483 57.731,164.455 64.678,165.423 66.703 C 166.965 69.928,173.061 69.606,174.024 66.249 C 174.527 64.493,174.335 57.616,173.777 57.439 C 172.543 57.047,172.414 57.392,172.414 61.072 C 172.414 62.972,172.273 64.997,172.101 65.571 C 171.463 67.702,169.302 68.339,167.878 66.815 L 167.109 65.992 167.109 61.776 C 167.109 59.392,167.003 57.560,166.865 57.560 C 166.731 57.560,166.463 57.514,166.268 57.459 C 166.074 57.403,165.710 57.411,165.460 57.476 M216.711 57.944 C 216.711 58.540,216.825 58.600,218.103 58.673 L 219.496 58.753 219.649 63.793 C 219.829 69.695,219.665 69.017,220.889 68.915 L 221.883 68.833 221.955 63.891 L 222.027 58.950 222.851 58.785 C 223.303 58.695,224.017 58.621,224.436 58.621 C 225.008 58.621,225.199 58.495,225.199 58.119 C 225.199 57.377,224.733 57.294,220.535 57.294 L 216.711 57.294 216.711 57.944 M261.141 57.518 C 257.205 58.950,257.328 62.081,261.389 63.831 C 263.602 64.785,264.148 65.849,263.009 66.988 C 262.236 67.762,260.631 67.869,259.395 67.231 C 257.936 66.476,257.534 67.573,258.952 68.438 C 260.843 69.591,264.090 68.856,265.225 67.019 C 266.348 65.202,265.627 63.566,263.208 62.443 C 260.563 61.215,259.915 60.273,261.024 59.269 C 261.622 58.728,263.526 58.645,264.019 59.139 C 264.470 59.589,264.987 59.457,264.987 58.892 C 264.987 57.903,262.511 57.018,261.141 57.518 M268.103 57.478 C 267.466 57.644,267.409 64.902,268.034 66.397 C 269.236 69.275,273.987 69.888,276.191 67.450 C 277.454 66.054,277.627 57.819,276.401 57.430 C 275.180 57.042,275.066 57.383,275.066 61.417 C 275.066 66.419,274.555 67.610,272.398 67.630 C 270.231 67.651,269.761 66.578,269.761 61.612 C 269.761 59.328,269.655 57.560,269.518 57.560 C 269.384 57.560,269.115 57.514,268.921 57.459 C 268.727 57.403,268.359 57.412,268.103 57.478 M279.377 57.470 C 278.600 57.784,279.022 58.621,279.956 58.621 C 280.457 58.621,281.174 58.737,281.548 58.879 L 282.228 59.138 282.228 63.927 C 282.228 69.117,282.257 69.215,283.688 68.856 L 284.350 68.690 284.350 63.936 C 284.350 58.622,284.268 58.840,286.337 58.625 C 287.800 58.474,288.336 57.765,287.214 57.465 C 286.494 57.272,279.857 57.276,279.377 57.470 M130.172 58.273 C 129.844 58.359,129.708 58.661,129.708 59.309 C 129.708 60.027,129.566 60.288,129.045 60.526 C 128.680 60.692,128.382 60.974,128.382 61.153 C 128.382 61.331,128.680 61.673,129.045 61.912 C 129.674 62.324,129.708 62.473,129.708 64.832 C 129.708 67.209,129.742 67.354,130.478 68.142 C 131.610 69.354,133.952 69.248,133.952 67.984 C 133.952 67.783,133.642 67.639,133.210 67.639 C 132.015 67.639,131.830 67.228,131.830 64.564 C 131.830 61.946,131.907 61.804,133.329 61.804 C 134.453 61.804,134.071 60.646,132.891 60.477 C 132.093 60.363,131.950 60.233,131.873 59.549 C 131.727 58.254,131.344 57.967,130.172 58.273 M242.617 58.267 C 242.520 58.364,242.440 58.844,242.440 59.334 C 242.440 60.025,242.293 60.291,241.777 60.526 C 240.941 60.907,240.900 61.736,241.711 61.852 C 242.278 61.932,242.314 62.078,242.440 64.812 C 242.567 67.559,242.606 67.716,243.317 68.326 C 244.499 69.341,246.684 69.119,246.684 67.984 C 246.684 67.781,246.371 67.639,245.921 67.639 C 244.722 67.639,244.533 67.171,244.618 64.417 L 244.695 61.936 245.690 61.854 C 246.941 61.750,247.130 60.850,245.955 60.593 C 244.635 60.304,244.562 60.237,244.562 59.321 C 244.562 58.737,244.412 58.355,244.143 58.251 C 243.589 58.039,242.838 58.046,242.617 58.267 M112.417 60.615 C 112.232 60.800,113.176 63.660,113.549 64.045 C 113.683 64.184,113.793 64.523,113.793 64.800 C 113.793 65.076,113.957 65.620,114.157 66.007 C 115.477 68.558,115.624 69.406,114.947 70.553 C 114.367 71.535,114.630 72.149,115.632 72.149 C 116.495 72.149,116.671 71.929,117.331 70.027 C 117.558 69.370,118.000 68.176,118.312 67.374 C 118.624 66.572,118.980 65.557,119.103 65.119 C 119.227 64.682,119.600 63.571,119.933 62.650 C 120.455 61.209,120.485 60.942,120.150 60.726 C 119.343 60.204,118.749 60.579,118.235 61.936 C 117.959 62.666,117.533 63.790,117.288 64.434 C 117.044 65.079,116.717 65.648,116.563 65.699 C 116.286 65.792,115.138 63.355,115.100 62.594 C 115.036 61.291,113.140 59.893,112.417 60.615 M123.210 60.873 C 121.072 62.009,121.298 64.426,123.607 65.127 C 124.749 65.474,125.464 66.085,125.464 66.713 C 125.464 67.673,123.676 68.015,122.663 67.250 C 121.940 66.703,121.751 66.750,121.751 67.476 C 121.751 69.285,125.139 69.511,126.989 67.825 C 127.971 66.931,127.445 64.456,126.273 64.456 C 125.290 64.456,123.843 63.345,123.923 62.652 C 124.024 61.778,125.149 61.536,126.128 62.178 C 126.717 62.564,126.769 62.555,126.934 62.035 C 127.326 60.800,124.819 60.019,123.210 60.873 M137.165 61.282 C 134.898 62.925,134.835 66.778,137.050 68.283 C 138.645 69.367,142.134 69.010,142.633 67.712 C 142.890 67.040,142.279 66.741,141.608 67.211 C 140.290 68.134,138.174 67.658,137.713 66.335 C 137.322 65.213,137.697 65.022,140.465 64.932 C 142.758 64.857,142.841 64.832,142.930 64.203 C 143.354 61.200,139.779 59.389,137.165 61.282 M145.259 61.306 C 145.048 62.362,145.049 67.580,145.260 68.369 C 145.386 68.839,145.611 68.966,146.317 68.966 L 147.215 68.966 147.215 66.058 C 147.215 63.414,147.267 63.102,147.792 62.613 C 149.666 60.867,150.621 61.934,150.721 65.887 C 150.795 68.785,150.806 68.834,151.444 68.924 C 152.502 69.074,152.785 68.360,152.785 65.541 C 152.785 63.135,152.819 62.985,153.490 62.409 C 155.049 61.069,155.968 62.080,155.968 65.136 C 155.968 68.766,156.241 69.353,157.671 68.805 C 158.189 68.606,158.265 64.591,157.787 62.690 C 157.269 60.634,155.738 60.025,153.675 61.056 L 152.516 61.634 151.487 61.056 C 150.288 60.382,149.380 60.321,148.658 60.867 C 147.989 61.373,147.101 61.377,146.684 60.875 C 146.117 60.191,145.441 60.396,145.259 61.306 M177.305 60.821 C 177.232 61.010,177.206 62.890,177.247 64.999 L 177.321 68.833 178.117 68.833 L 178.912 68.833 178.988 65.998 C 179.062 63.202,179.074 63.153,179.870 62.483 C 181.741 60.909,182.445 61.910,182.560 66.313 C 182.624 68.762,182.644 68.835,183.274 68.924 C 185.025 69.172,185.247 62.793,183.543 61.205 C 182.676 60.398,181.116 60.302,180.007 60.987 L 179.077 61.562 178.786 61.020 C 178.463 60.416,177.510 60.288,177.305 60.821 M198.867 60.966 C 196.381 62.605,195.936 66.473,198.048 68.083 C 199.711 69.352,203.351 69.157,203.883 67.771 C 204.155 67.062,203.722 66.826,202.916 67.242 C 201.156 68.152,198.773 67.223,198.988 65.711 C 199.067 65.155,199.230 65.111,201.724 64.987 C 204.364 64.855,204.377 64.851,204.459 64.145 C 204.757 61.562,201.109 59.487,198.867 60.966 M206.956 60.701 C 206.700 60.863,206.635 61.885,206.690 64.874 L 206.764 68.833 207.626 68.916 L 208.488 68.999 208.497 66.529 C 208.507 63.591,208.883 62.904,210.606 62.672 C 211.609 62.538,211.671 62.478,211.671 61.641 C 211.671 60.546,210.731 60.164,209.698 60.840 C 209.127 61.214,208.973 61.218,208.308 60.871 C 207.442 60.419,207.406 60.415,206.956 60.701 M226.555 61.282 C 224.288 62.925,224.225 66.778,226.440 68.283 C 228.030 69.364,231.513 69.039,232.002 67.766 C 232.277 67.048,231.692 66.725,230.998 67.211 C 229.718 68.107,227.882 67.740,227.215 66.454 C 226.582 65.233,227.005 64.987,229.731 64.987 C 232.559 64.987,232.864 64.719,232.212 62.804 C 231.432 60.516,228.647 59.767,226.555 61.282 M235.802 60.914 C 233.914 62.171,234.161 64.582,236.230 65.102 C 237.922 65.526,238.690 66.634,237.802 67.371 C 237.410 67.696,236.097 67.637,235.214 67.254 C 234.448 66.922,234.277 67.892,234.998 68.476 C 236.302 69.532,239.444 68.845,240.054 67.371 C 240.632 65.975,240.049 64.962,238.196 64.143 C 236.848 63.547,236.605 63.336,236.605 62.760 C 236.605 61.903,237.640 61.570,238.680 62.093 C 239.070 62.289,239.479 62.493,239.589 62.547 C 239.698 62.600,239.788 62.338,239.788 61.965 C 239.788 60.674,237.191 59.989,235.802 60.914 M140.577 62.389 C 141.361 63.230,141.123 63.517,139.569 63.608 C 137.581 63.724,137.114 63.392,138.008 62.498 C 138.856 61.650,139.850 61.608,140.577 62.389 M191.886 62.620 C 192.686 63.570,192.961 64.461,192.734 65.364 C 191.921 68.604,188.859 68.174,188.859 64.820 C 188.859 62.113,190.473 60.940,191.886 62.620 M201.798 62.217 C 203.034 63.082,202.573 63.695,200.750 63.607 C 198.939 63.519,198.607 63.197,199.453 62.351 C 200.104 61.699,200.987 61.649,201.798 62.217 M229.967 62.389 C 230.778 63.259,230.498 63.528,228.780 63.528 C 227.050 63.528,226.717 63.204,227.570 62.351 C 228.281 61.639,229.283 61.655,229.967 62.389 M48.601 147.128 L 48.674 152.122 51.015 152.199 C 53.321 152.275,53.354 152.267,53.269 151.668 C 53.192 151.123,53.007 151.047,51.459 150.928 L 49.735 150.796 49.602 146.555 C 49.484 142.767,49.419 142.304,48.999 142.224 C 48.561 142.140,48.534 142.469,48.601 147.128 M55.093 142.343 C 54.627 142.809,54.923 143.501,55.589 143.501 C 56.143 143.501,56.254 143.390,56.186 142.907 C 56.102 142.319,55.452 141.984,55.093 142.343 M55.075 145.279 C 54.810 145.543,54.880 151.941,55.148 152.107 C 56.007 152.638,56.233 151.946,56.233 148.787 C 56.233 145.703,55.841 144.513,55.075 145.279 M58.820 145.290 C 58.151 145.444,58.111 151.839,58.777 152.094 C 59.531 152.384,59.682 151.994,59.682 149.760 C 59.682 147.272,60.081 146.596,61.551 146.596 C 62.766 146.596,62.978 147.011,63.127 149.676 C 63.241 151.725,63.337 152.131,63.727 152.205 C 64.485 152.350,64.418 146.646,63.652 145.880 C 62.889 145.117,61.742 144.952,60.724 145.460 C 60.020 145.812,59.820 145.825,59.577 145.534 C 59.416 145.341,59.075 145.231,58.820 145.290 M66.755 145.270 C 66.128 145.897,66.592 150.718,67.354 151.479 C 68.224 152.349,69.561 152.522,70.440 151.877 C 70.886 151.550,71.012 151.551,71.381 151.883 C 71.615 152.095,72.003 152.192,72.243 152.100 C 72.942 151.832,72.889 145.754,72.183 145.377 C 71.450 144.984,71.353 145.239,71.353 147.542 C 71.353 150.068,71.115 150.584,69.844 150.823 C 68.338 151.105,67.905 150.388,67.905 147.612 C 67.905 145.853,67.821 145.383,67.485 145.254 C 66.965 145.054,66.970 145.054,66.755 145.270 M74.518 145.369 C 74.261 145.528,74.432 145.951,75.207 147.077 C 76.055 148.308,76.183 148.652,75.928 149.021 C 74.925 150.478,74.265 151.766,74.405 151.993 C 74.734 152.525,75.317 152.225,76.043 151.148 C 76.906 149.870,77.378 149.621,77.634 150.310 C 77.976 151.227,78.880 152.255,79.345 152.255 C 80.169 152.255,80.127 151.802,79.170 150.356 C 78.278 149.008,78.118 147.940,78.741 147.483 C 79.195 147.149,79.868 145.812,79.745 145.490 C 79.509 144.877,78.668 145.343,78.040 146.433 C 77.294 147.730,77.186 147.731,76.380 146.437 C 75.704 145.353,75.102 145.008,74.518 145.369 M82.081 157.369 C 81.678 158.419,82.105 167.767,82.560 167.854 C 82.990 167.937,83.024 167.541,83.024 162.486 C 83.024 157.763,82.969 157.029,82.618 157.029 C 82.394 157.029,82.153 157.182,82.081 157.369 M44.888 162.798 C 44.957 167.571,44.982 167.772,45.491 167.772 C 45.965 167.772,46.035 167.551,46.154 165.671 C 46.277 163.714,46.677 162.833,47.027 163.746 C 47.504 164.988,49.992 167.925,50.506 167.851 C 51.232 167.748,51.106 166.998,50.173 165.873 C 47.745 162.943,47.570 162.374,48.716 161.141 C 49.726 160.053,50.928 158.401,50.928 158.101 C 50.928 157.212,49.563 158.077,48.224 159.814 C 46.443 162.127,46.305 162.123,46.209 159.748 C 46.134 157.899,46.105 157.825,45.473 157.825 L 44.816 157.825 44.888 162.798 M54.592 161.004 C 51.936 161.513,51.139 165.947,53.448 167.374 C 54.645 168.114,56.721 168.098,57.532 167.343 C 58.406 166.529,57.873 166.172,56.651 166.755 C 55.375 167.363,53.714 166.663,53.714 165.517 C 53.714 164.872,53.776 164.850,55.968 164.721 L 58.223 164.589 58.200 163.458 C 58.161 161.564,56.735 160.593,54.592 161.004 M62.599 161.019 C 62.235 161.118,61.608 161.141,61.207 161.070 L 60.477 160.942 60.477 164.443 C 60.477 167.634,60.519 167.936,60.942 167.855 C 61.320 167.783,61.437 167.373,61.575 165.647 C 61.783 163.039,61.941 162.636,62.828 162.442 C 64.068 162.172,64.191 162.094,64.191 161.578 C 64.191 160.989,63.546 160.762,62.599 161.019 M69.120 160.941 C 69.031 161.031,68.274 161.112,67.437 161.122 L 65.915 161.141 65.915 164.456 C 65.915 167.595,65.943 167.772,66.446 167.772 C 66.925 167.772,66.989 167.551,67.109 165.463 C 67.251 162.981,67.381 162.713,68.607 162.361 C 70.088 161.936,70.527 162.597,70.615 165.385 C 70.683 167.570,70.735 167.772,71.220 167.772 C 71.851 167.772,72.150 163.618,71.612 162.319 C 71.263 161.477,69.539 160.523,69.120 160.941 M75.729 161.150 C 72.292 162.894,73.282 167.905,77.064 167.905 C 78.205 167.905,78.607 167.784,79.052 167.308 C 79.729 166.584,79.250 166.362,77.972 166.808 C 76.911 167.178,75.637 166.718,75.305 165.846 C 74.955 164.925,75.067 164.872,77.673 164.721 L 79.973 164.589 79.941 163.567 C 79.878 161.610,77.506 160.249,75.729 161.150 M56.415 162.380 C 57.485 163.386,57.098 163.926,55.305 163.926 C 53.479 163.926,53.073 163.303,54.280 162.353 C 55.169 161.654,55.649 161.660,56.415 162.380 M77.949 162.298 C 79.080 163.168,78.514 163.970,76.837 163.873 C 75.230 163.779,74.835 163.115,75.900 162.296 C 76.689 161.690,77.158 161.690,77.949 162.298 M125.265 178.955 C 125.005 179.061,124.934 182.993,124.934 197.365 L 124.934 215.640 125.531 215.783 C 125.859 215.863,170.948 215.895,225.729 215.855 L 325.332 215.782 325.405 197.878 C 325.445 188.031,325.413 179.704,325.333 179.376 L 325.188 178.778 287.727 178.845 C 254.634 178.905,250.265 178.959,250.265 179.310 C 250.265 179.662,254.539 179.716,286.870 179.774 C 320.911 179.835,323.498 179.871,323.806 180.289 C 324.238 180.874,324.293 213.803,323.863 214.606 C 323.523 215.243,127.214 215.437,126.578 214.801 C 126.084 214.306,126.122 180.551,126.618 180.140 C 126.877 179.924,137.160 179.824,163.952 179.775 C 196.613 179.716,200.928 179.662,200.928 179.310 C 200.928 178.919,126.222 178.568,125.265 178.955 M208.753 179.310 C 208.753 179.841,208.866 179.844,225.531 179.777 C 240.236 179.717,242.308 179.659,242.308 179.310 C 242.308 178.962,240.236 178.904,225.531 178.844 C 208.866 178.776,208.753 178.779,208.753 179.310 M180.459 192.855 C 179.822 193.263,179.535 193.718,179.276 194.728 C 179.086 195.469,178.723 196.175,178.459 196.316 C 177.821 196.658,177.855 197.517,178.515 197.690 C 179.010 197.819,179.045 198.051,179.045 201.164 L 179.045 204.499 179.708 204.665 C 181.056 205.004,181.145 204.797,181.225 201.139 L 181.300 197.745 182.759 197.745 L 184.218 197.745 184.350 200.983 C 184.490 204.397,184.665 204.879,185.712 204.731 C 186.327 204.644,186.342 204.574,186.472 201.194 L 186.605 197.745 188.196 197.745 L 189.788 197.745 189.920 201.194 L 190.053 204.642 190.981 204.642 L 191.910 204.642 191.910 200.531 L 191.910 196.419 189.257 196.286 C 186.613 196.154,186.605 196.152,186.522 195.440 C 186.420 194.555,187.274 193.634,188.196 193.634 C 188.982 193.634,189.040 193.349,188.374 192.747 C 187.754 192.185,186.888 192.189,185.928 192.756 C 185.203 193.184,184.992 193.554,184.446 195.358 C 184.091 196.531,181.351 196.600,181.217 195.440 C 181.115 194.555,182.051 193.526,182.783 193.717 C 183.173 193.819,183.289 193.709,183.289 193.240 C 183.289 192.183,181.819 191.984,180.459 192.855 M190.097 192.485 C 190.000 192.582,189.920 193.066,189.920 193.562 C 189.920 194.846,191.850 194.817,191.997 193.530 C 192.111 192.539,190.777 191.805,190.097 192.485 M154.023 193.280 C 153.415 193.888,153.884 194.430,155.018 194.430 C 157.130 194.430,157.029 194.168,157.029 199.625 L 157.029 204.499 157.692 204.665 C 159.122 205.024,159.151 204.925,159.151 199.752 C 159.151 194.375,159.130 194.430,161.225 194.430 C 162.330 194.430,163.000 193.579,162.151 193.253 C 161.599 193.042,154.237 193.066,154.023 193.280 M210.517 193.292 C 206.213 194.400,204.622 200.768,207.988 203.415 C 209.729 204.785,213.183 205.113,215.151 204.095 L 215.933 203.691 215.858 200.851 L 215.782 198.011 213.528 198.011 C 211.450 198.011,211.273 198.052,211.273 198.541 C 211.273 198.973,211.494 199.096,212.467 199.204 L 213.660 199.337 213.739 200.964 C 213.828 202.828,213.444 203.448,212.200 203.448 C 207.300 203.448,206.940 194.962,211.821 194.503 C 212.603 194.430,213.582 194.537,214.252 194.770 C 215.203 195.100,215.420 195.104,215.677 194.795 C 216.572 193.716,212.956 192.663,210.517 193.292 M263.798 194.231 C 263.737 194.413,263.651 194.860,263.607 195.223 C 263.558 195.636,263.255 196.014,262.798 196.232 C 261.965 196.630,261.786 197.613,262.546 197.613 C 263.476 197.613,263.660 198.165,263.660 200.940 C 263.660 204.044,263.891 204.448,265.802 204.705 C 266.699 204.825,266.996 204.757,267.282 204.366 C 267.815 203.637,267.724 203.448,266.837 203.448 C 265.801 203.448,265.517 202.737,265.517 200.148 C 265.517 198.084,265.699 197.730,266.844 197.572 C 267.855 197.432,267.751 196.447,266.712 196.329 C 265.797 196.225,265.527 195.906,265.521 194.922 C 265.516 194.005,264.068 193.425,263.798 194.231 M163.296 197.115 C 163.205 197.571,163.130 199.108,163.130 200.531 C 163.130 204.332,163.258 204.775,164.357 204.775 L 165.252 204.775 165.252 202.290 C 165.252 199.299,165.715 198.408,167.269 198.408 C 168.332 198.408,168.653 197.904,168.210 196.933 C 167.864 196.173,167.194 196.110,166.102 196.736 C 165.365 197.160,165.292 197.160,164.868 196.736 C 164.144 196.012,163.485 196.171,163.296 197.115 M170.598 196.736 C 169.615 197.220,169.279 197.767,169.704 198.192 C 169.898 198.386,170.167 198.340,170.594 198.041 C 171.575 197.354,173.373 197.476,173.889 198.264 C 174.474 199.156,174.186 199.469,172.785 199.469 C 171.345 199.469,169.742 200.238,169.245 201.167 C 168.305 202.923,170.249 205.072,172.382 204.637 C 173.354 204.438,174.021 204.422,175.464 204.564 L 176.260 204.642 176.260 201.724 C 176.260 200.119,176.171 198.488,176.061 198.099 C 175.613 196.500,172.601 195.749,170.598 196.736 M195.934 196.846 C 194.039 197.845,193.339 200.732,194.500 202.758 C 195.586 204.652,197.883 205.307,199.637 204.222 C 201.056 203.346,200.622 202.424,199.159 203.207 C 197.636 204.022,196.021 202.644,196.021 200.531 C 196.021 198.360,197.322 197.209,199.064 197.839 C 200.215 198.255,200.315 198.230,200.217 197.553 C 200.037 196.294,197.708 195.910,195.934 196.846 M219.977 196.854 C 217.279 198.523,217.472 203.021,220.298 204.362 C 222.289 205.307,225.886 204.245,225.085 202.949 C 224.986 202.787,224.650 202.832,224.200 203.067 C 222.333 204.041,220.219 202.964,220.393 201.127 C 220.416 200.886,221.149 200.796,223.077 200.796 L 225.729 200.796 225.729 199.533 C 225.729 196.848,222.452 195.322,219.977 196.854 M228.294 196.463 C 227.991 196.766,228.088 204.460,228.397 204.651 C 229.548 205.362,229.973 204.583,229.973 201.769 C 229.973 199.123,229.997 199.016,230.717 198.325 C 232.472 196.645,233.422 197.702,233.422 201.335 C 233.422 204.274,233.712 204.959,234.839 204.676 L 235.544 204.499 235.542 201.785 C 235.540 198.421,235.264 197.345,234.247 196.744 C 233.299 196.184,231.844 196.152,231.151 196.676 C 230.483 197.182,229.805 197.186,229.612 196.684 C 229.457 196.281,228.617 196.140,228.294 196.463 M239.733 196.786 C 236.917 198.593,236.989 203.101,239.853 204.342 C 241.555 205.079,244.317 204.662,244.722 203.606 C 245.003 202.873,244.582 202.629,243.765 203.051 C 242.278 203.820,240.203 203.209,239.876 201.906 C 239.639 200.964,239.981 200.824,242.708 200.740 L 245.225 200.663 245.315 199.735 C 245.565 197.130,242.072 195.285,239.733 196.786 M247.922 196.463 C 247.620 196.766,247.717 204.460,248.026 204.651 C 249.138 205.338,249.602 204.566,249.602 202.031 C 249.602 199.194,250.055 198.408,251.691 198.408 C 252.524 198.408,252.549 198.376,252.470 197.414 C 252.373 196.241,251.603 195.957,250.493 196.685 C 249.882 197.085,249.782 197.087,249.360 196.705 C 248.878 196.269,248.226 196.159,247.922 196.463 M254.973 196.682 C 254.439 196.914,254.111 197.246,254.111 197.556 C 254.111 198.301,254.338 198.397,255.125 197.987 C 256.323 197.362,257.740 197.503,258.262 198.298 C 258.829 199.164,258.465 199.460,256.825 199.465 C 255.512 199.470,253.723 200.462,253.444 201.339 C 252.706 203.666,255.361 205.572,257.666 204.370 C 258.359 204.009,258.482 204.011,258.906 204.395 C 260.196 205.562,260.935 202.529,260.346 198.488 C 260.062 196.542,257.374 195.638,254.973 196.682 M270.818 196.930 C 268.170 198.668,268.253 202.923,270.961 204.275 C 274.773 206.179,278.641 202.479,276.996 198.501 C 276.140 196.433,272.850 195.596,270.818 196.930 M279.752 196.463 C 279.655 196.561,279.576 198.408,279.576 200.570 L 279.576 204.499 280.224 204.662 C 281.286 204.929,281.432 204.622,281.432 202.118 C 281.432 199.325,281.997 198.408,283.715 198.408 C 284.630 198.408,284.646 198.390,284.565 197.414 C 284.469 196.247,283.699 195.957,282.604 196.674 C 282.013 197.062,281.893 197.064,281.367 196.695 C 280.754 196.266,280.051 196.165,279.752 196.463 M223.360 198.161 C 224.184 198.985,223.625 199.469,221.851 199.469 C 220.695 199.469,220.424 199.385,220.424 199.026 C 220.424 197.727,222.356 197.157,223.360 198.161 M242.832 198.043 C 243.637 198.848,243.229 199.329,241.667 199.418 C 239.958 199.516,239.529 199.116,240.377 198.214 C 241.040 197.508,242.216 197.426,242.832 198.043 M274.153 197.816 C 276.246 199.269,275.353 203.448,272.950 203.448 C 271.213 203.448,270.351 199.689,271.737 198.158 C 272.230 197.614,273.586 197.422,274.153 197.816 M174.228 201.563 C 174.323 202.236,173.204 203.448,172.488 203.448 C 171.227 203.448,170.637 202.080,171.518 201.199 C 172.221 200.496,174.113 200.750,174.228 201.563 M258.201 200.957 C 258.812 201.191,258.715 201.943,257.970 202.746 C 256.571 204.256,254.754 203.100,255.712 201.309 C 255.990 200.790,257.288 200.606,258.201 200.957 M50.302 229.362 C 49.974 229.690,50.137 230.504,50.531 230.504 C 50.749 230.504,50.928 230.272,50.928 229.989 C 50.928 229.435,50.579 229.085,50.302 229.362 M75.513 229.350 C 75.105 229.758,75.309 236.870,75.729 236.870 C 76.045 236.870,76.127 236.490,76.127 235.044 C 76.127 232.997,76.228 232.902,78.395 232.895 C 79.854 232.890,80.106 233.233,80.106 235.221 C 80.106 236.458,80.195 236.884,80.438 236.804 C 80.854 236.665,80.919 229.480,80.504 229.377 C 80.358 229.340,80.179 229.967,80.106 230.769 L 79.973 232.228 78.117 232.228 L 76.260 232.228 76.178 230.902 C 76.095 229.575,75.853 229.010,75.513 229.350 M45.093 233.156 L 45.093 236.870 46.950 236.870 C 49.031 236.870,49.500 236.413,47.546 236.288 L 46.286 236.207 46.212 232.825 C 46.143 229.662,46.104 229.443,45.615 229.443 C 45.120 229.443,45.093 229.639,45.093 233.156 M94.695 230.760 C 94.695 231.047,94.445 231.415,94.139 231.579 L 93.582 231.877 94.139 232.266 C 94.592 232.584,94.696 232.936,94.699 234.166 C 94.704 236.575,94.852 236.870,96.052 236.870 C 97.225 236.870,97.459 236.418,96.353 236.291 C 95.641 236.209,95.621 236.162,95.546 234.294 L 95.468 232.382 96.341 232.140 C 97.222 231.896,97.191 231.847,95.889 231.441 C 95.670 231.372,95.491 231.074,95.491 230.778 C 95.491 230.475,95.316 230.239,95.093 230.239 C 94.874 230.239,94.695 230.473,94.695 230.760 M50.252 231.902 C 49.969 232.640,50.254 236.691,50.597 236.804 C 50.847 236.887,50.928 236.291,50.928 234.388 C 50.928 232.087,50.618 230.947,50.252 231.902 M53.500 231.734 C 53.145 232.090,53.285 236.924,53.647 236.805 C 53.854 236.736,54.009 236.060,54.059 235.002 C 54.103 234.071,54.273 233.149,54.435 232.953 C 54.760 232.562,53.853 231.381,53.500 231.734 M55.040 231.830 C 54.948 231.979,55.159 232.095,55.522 232.095 C 56.484 232.095,56.799 232.672,56.989 234.786 C 57.241 237.576,57.825 237.565,57.825 234.770 C 57.825 233.591,57.714 232.626,57.578 232.626 C 57.441 232.626,57.254 232.387,57.162 232.095 C 56.979 231.521,55.356 231.318,55.040 231.830 M59.851 231.749 C 59.482 232.118,59.681 235.562,60.110 236.216 C 60.551 236.889,62.599 237.208,62.599 236.605 C 62.599 236.459,62.320 236.340,61.977 236.340 C 60.905 236.340,60.477 235.563,60.477 233.615 C 60.477 231.986,60.261 231.340,59.851 231.749 M63.565 231.749 C 63.472 231.842,63.395 232.651,63.395 233.546 C 63.395 234.440,63.255 235.313,63.083 235.484 C 62.844 235.724,62.885 235.922,63.257 236.333 C 64.068 237.230,64.191 236.971,64.191 234.366 C 64.191 232.069,64.008 231.306,63.565 231.749 M66.048 231.809 C 66.048 232.182,66.950 233.683,67.175 233.685 C 67.284 233.686,67.374 233.926,67.374 234.218 C 67.374 234.509,67.255 234.748,67.109 234.748 C 66.963 234.748,66.844 234.912,66.844 235.113 C 66.844 235.314,66.664 235.627,66.446 235.809 C 66.033 236.151,65.898 236.871,66.247 236.868 C 66.356 236.867,66.728 236.452,67.072 235.946 C 67.779 234.909,68.467 235.006,69.021 236.223 C 69.306 236.848,70.292 237.144,70.292 236.605 C 70.292 236.459,70.172 236.340,70.027 236.340 C 69.881 236.340,69.761 236.209,69.761 236.050 C 69.761 235.890,69.538 235.477,69.266 235.130 C 68.796 234.533,68.764 233.156,69.219 233.156 C 69.325 233.156,69.547 232.858,69.713 232.493 C 69.926 232.026,69.930 231.830,69.727 231.830 C 69.569 231.830,69.205 232.129,68.918 232.493 C 68.363 233.199,67.374 233.395,67.374 232.800 C 67.374 232.442,66.559 231.565,66.226 231.565 C 66.128 231.565,66.048 231.675,66.048 231.809 M83.344 232.552 C 81.730 234.426,82.650 236.676,85.088 236.818 C 86.965 236.926,87.798 236.105,87.798 234.150 C 87.798 231.468,85.109 230.503,83.344 232.552 M89.920 232.095 C 89.062 232.954,89.692 234.265,91.086 234.523 C 92.664 234.814,92.250 236.340,90.592 236.340 C 89.931 236.340,89.390 236.459,89.390 236.605 C 89.390 236.751,90.017 236.870,90.784 236.870 C 93.468 236.870,93.575 234.390,90.915 233.830 C 89.362 233.504,90.092 232.095,91.815 232.095 C 92.273 232.095,92.536 231.984,92.440 231.830 C 92.148 231.358,90.483 231.533,89.920 232.095 M86.462 232.676 C 87.168 233.434,87.188 235.101,86.501 235.839 C 85.727 236.669,84.375 236.434,83.751 235.360 C 82.546 233.289,84.880 230.978,86.462 232.676 M70.955 234.218 C 70.854 234.381,71.306 234.483,72.133 234.483 C 72.871 234.483,73.475 234.363,73.475 234.218 C 73.475 234.072,72.945 233.952,72.297 233.952 C 71.649 233.952,71.045 234.072,70.955 234.218 " stroke="none" fill="#101011" fill-rule="evenodd"></path><path id="path1" d="M0.000 0.398 C 0.000 0.751,22.399 0.796,200.000 0.796 C 377.601 0.796,400.000 0.751,400.000 0.398 C 400.000 0.045,377.601 0.000,200.000 0.000 C 22.399 0.000,0.000 0.045,0.000 0.398 M0.000 7.820 L 0.000 14.058 6.167 14.054 C 9.559 14.052,12.486 13.954,12.671 13.836 C 12.930 13.672,12.991 12.256,12.936 7.673 L 12.865 1.724 6.432 1.653 L 0.000 1.582 0.000 7.820 M388.240 1.768 C 387.815 2.193,388.046 13.730,388.483 13.897 C 388.714 13.986,391.400 14.058,394.451 14.058 L 400.000 14.058 400.000 7.825 L 400.000 1.592 394.209 1.592 C 391.023 1.592,388.338 1.671,388.240 1.768 M1.061 140.446 L 1.061 265.252 200.531 265.252 L 400.000 265.252 400.000 140.446 L 400.000 15.640 394.098 15.711 L 388.196 15.782 388.128 23.342 C 388.067 30.071,388.011 30.938,387.613 31.233 C 386.929 31.741,13.721 31.719,13.299 31.211 C 13.104 30.976,12.982 28.340,12.935 23.320 L 12.865 15.782 6.963 15.711 L 1.061 15.640 1.061 140.446 M375.000 147.541 L 375.067 251.183 374.470 251.327 C 374.141 251.406,294.854 251.438,198.276 251.399 L 22.679 251.326 22.612 147.546 L 22.546 43.766 198.740 43.833 L 374.934 43.899 375.000 147.541 M25.199 147.613 L 25.199 249.337 198.740 249.271 L 372.281 249.204 372.348 147.546 L 372.414 45.889 198.807 45.889 L 25.199 45.889 25.199 147.613 M256.712 56.532 C 256.759 57.097,256.640 57.645,256.425 57.861 C 256.222 58.063,255.977 58.998,255.878 59.938 C 255.780 60.879,255.581 61.766,255.436 61.911 C 255.084 62.264,255.098 65.602,255.453 65.957 C 255.607 66.111,255.805 66.941,255.892 67.800 C 255.979 68.660,256.219 69.624,256.425 69.941 C 256.632 70.259,256.762 70.916,256.716 71.400 C 256.600 72.610,254.293 72.925,253.861 71.791 C 253.725 71.432,253.487 71.061,253.332 70.965 C 253.177 70.869,253.047 70.410,253.042 69.945 C 253.037 69.479,252.858 68.866,252.644 68.583 C 252.340 68.182,252.255 67.158,252.255 63.926 C 252.255 60.694,252.340 59.670,252.644 59.268 C 252.858 58.985,253.037 58.372,253.042 57.907 C 253.047 57.441,253.177 56.982,253.332 56.886 C 253.487 56.791,253.725 56.419,253.861 56.060 C 254.314 54.870,256.604 55.249,256.712 56.532 M291.247 55.722 C 291.247 55.878,291.426 56.185,291.645 56.404 C 291.863 56.623,292.046 57.122,292.051 57.512 C 292.056 57.903,292.235 58.455,292.449 58.738 C 292.695 59.063,292.838 59.863,292.838 60.910 C 292.838 61.822,292.958 62.642,293.103 62.732 C 293.249 62.822,293.369 63.359,293.369 63.926 C 293.369 64.492,293.249 65.029,293.103 65.119 C 292.958 65.210,292.838 66.097,292.838 67.092 C 292.838 68.376,292.723 68.996,292.440 69.231 C 292.221 69.412,292.042 69.890,292.042 70.292 C 292.042 70.694,291.863 71.171,291.645 71.353 C 291.426 71.534,291.247 71.854,291.247 72.062 C 291.247 72.353,290.922 72.423,289.854 72.361 C 288.276 72.270,287.905 71.642,288.706 70.418 C 288.936 70.067,289.125 69.388,289.126 68.909 C 289.127 68.429,289.306 67.695,289.524 67.277 C 290.068 66.235,290.067 61.689,289.523 60.386 C 289.304 59.862,289.121 59.101,289.116 58.696 C 289.112 58.290,288.933 57.726,288.718 57.443 C 288.314 56.908,288.199 55.921,288.506 55.615 C 288.802 55.318,291.247 55.414,291.247 55.722 M195.172 56.552 C 195.401 56.781,195.491 58.569,195.491 62.926 C 195.491 69.535,195.538 69.341,193.936 69.286 C 193.551 69.272,192.580 69.274,191.777 69.289 C 187.016 69.380,186.414 68.869,186.414 64.737 L 186.414 62.144 187.368 61.190 C 188.250 60.308,188.457 60.231,190.116 60.158 L 191.910 60.080 191.983 58.488 C 192.023 57.613,192.109 56.747,192.174 56.565 C 192.326 56.134,194.744 56.124,195.172 56.552 M111.032 57.626 C 111.718 58.276,111.854 59.127,111.353 59.629 C 110.909 60.072,109.666 60.026,109.189 59.549 C 108.641 59.001,107.865 59.051,107.303 59.672 C 106.746 60.288,106.935 61.008,107.656 61.008 C 107.936 61.008,108.235 61.187,108.319 61.406 C 108.403 61.625,108.727 61.804,109.038 61.804 C 109.725 61.804,111.671 63.291,111.671 63.815 C 111.671 64.022,111.781 64.191,111.915 64.191 C 113.104 64.191,112.022 67.407,110.423 68.627 C 107.794 70.633,101.625 68.776,103.631 66.583 C 103.858 66.335,105.879 66.515,106.173 66.810 C 106.575 67.212,107.717 67.174,108.289 66.740 C 109.227 66.027,108.856 65.376,106.990 64.457 C 104.898 63.427,103.979 62.682,103.979 62.018 C 103.979 61.750,103.831 61.294,103.650 61.004 C 103.388 60.585,103.388 60.370,103.650 59.951 C 103.831 59.661,103.979 59.255,103.979 59.048 C 103.979 57.294,109.507 56.180,111.032 57.626 M167.588 57.365 C 167.748 57.559,167.902 59.517,167.952 61.996 C 168.044 66.618,168.200 67.093,169.629 67.091 C 171.206 67.090,171.475 66.345,171.618 61.575 L 171.751 57.162 173.342 57.162 L 174.934 57.162 175.007 61.387 C 175.091 66.222,174.823 67.218,173.082 68.546 C 171.256 69.939,165.252 69.350,165.252 67.778 C 165.252 67.592,165.073 67.290,164.854 67.109 C 164.438 66.763,164.233 57.606,164.633 57.206 C 164.947 56.892,167.300 57.018,167.588 57.365 M225.950 57.929 C 226.059 58.891,225.672 59.142,224.072 59.147 L 222.812 59.151 222.812 63.893 C 222.812 69.454,222.854 69.371,220.093 69.260 L 219.363 69.231 219.363 64.204 L 219.363 59.178 217.838 59.098 C 216.472 59.027,216.304 58.954,216.226 58.402 C 216.030 57.023,216.074 57.011,221.148 57.089 L 225.862 57.162 225.950 57.929 M265.207 57.911 C 265.970 59.506,264.511 60.760,263.300 59.549 C 262.679 58.927,261.833 59.062,261.479 59.839 C 261.119 60.629,261.835 61.412,263.190 61.709 C 263.588 61.796,264.050 62.032,264.218 62.234 C 264.385 62.435,264.656 62.603,264.820 62.608 C 266.739 62.661,266.511 67.306,264.516 68.810 C 263.738 69.397,258.884 69.514,258.218 68.962 C 256.591 67.612,258.726 65.588,260.395 66.899 C 260.569 67.036,261.034 67.109,261.429 67.062 C 263.020 66.872,263.003 64.906,261.408 64.607 C 260.896 64.511,260.477 64.318,260.477 64.179 C 260.477 64.040,260.318 63.926,260.124 63.926 C 257.926 63.926,257.080 59.860,258.907 58.070 L 259.988 57.010 262.418 57.086 C 264.792 57.160,264.857 57.179,265.207 57.911 M270.239 57.347 C 270.455 57.564,270.557 58.826,270.557 61.293 C 270.557 65.354,270.718 66.578,271.253 66.578 C 271.454 66.578,271.618 66.698,271.618 66.844 C 271.618 67.258,272.651 67.155,273.494 66.657 L 274.258 66.206 274.331 61.684 L 274.403 57.162 275.886 57.084 C 276.948 57.027,277.461 57.117,277.695 57.399 C 278.157 57.954,277.995 66.089,277.520 66.247 C 277.338 66.308,277.184 66.556,277.180 66.799 C 277.169 67.320,276.296 68.435,275.899 68.435 C 275.747 68.435,275.518 68.623,275.389 68.854 C 275.124 69.327,269.855 69.515,269.534 69.062 C 269.440 68.929,269.035 68.612,268.634 68.356 C 268.233 68.101,267.905 67.767,267.905 67.614 C 267.905 67.461,267.725 67.157,267.507 66.938 C 267.091 66.522,266.888 57.603,267.286 57.206 C 267.589 56.902,269.904 57.013,270.239 57.347 M288.013 58.024 L 287.931 59.019 286.406 59.098 L 284.881 59.178 284.881 64.170 L 284.881 69.161 283.967 69.310 C 283.464 69.391,282.718 69.368,282.309 69.259 L 281.565 69.060 281.493 64.119 L 281.421 59.177 279.901 59.098 C 278.541 59.027,278.373 58.954,278.295 58.402 C 278.102 57.043,278.151 57.029,283.297 57.029 L 288.096 57.029 288.013 58.024 M132.305 58.156 C 132.456 58.339,132.619 58.846,132.669 59.283 C 132.742 59.930,132.906 60.102,133.554 60.214 C 134.809 60.429,134.753 62.163,133.488 62.285 L 132.626 62.368 132.626 64.721 L 132.626 67.075 133.488 67.158 C 134.186 67.226,134.363 67.368,134.419 67.905 C 134.541 69.083,134.156 69.326,132.209 69.296 C 129.551 69.256,129.178 68.737,129.178 65.078 C 129.178 62.037,128.968 61.764,127.411 62.784 C 126.765 63.208,126.678 63.208,125.940 62.784 C 124.974 62.230,124.403 62.209,124.403 62.727 C 124.403 62.943,124.731 63.201,125.133 63.300 C 127.935 63.990,129.060 66.575,127.377 68.459 C 126.445 69.502,122.265 69.763,121.576 68.821 C 120.588 67.469,121.461 65.997,122.843 66.687 C 123.308 66.919,123.909 67.109,124.179 67.109 C 125.110 67.109,124.664 66.324,123.408 65.753 C 121.049 64.678,120.353 62.364,121.947 60.886 C 122.860 60.039,126.933 59.849,127.236 60.639 C 127.387 61.031,127.419 61.031,127.639 60.639 C 127.770 60.404,128.170 60.212,128.528 60.212 C 129.104 60.212,129.178 60.098,129.178 59.195 C 129.178 58.636,129.257 58.099,129.355 58.002 C 129.667 57.690,132.021 57.813,132.305 58.156 M244.932 58.245 C 245.020 58.475,245.093 59.012,245.093 59.438 C 245.093 60.166,245.157 60.212,246.170 60.212 L 247.247 60.212 247.165 61.207 C 247.087 62.150,247.030 62.206,246.077 62.285 L 245.073 62.367 245.149 64.672 L 245.225 66.976 246.220 67.058 C 247.157 67.136,247.215 67.193,247.215 68.037 C 247.215 69.177,247.006 69.292,244.958 69.280 C 242.407 69.266,242.175 68.931,242.175 65.270 L 242.175 62.369 241.446 62.286 C 240.319 62.156,240.189 60.292,241.298 60.165 C 241.968 60.088,242.051 59.967,242.124 58.952 L 242.206 57.825 243.488 57.825 C 244.413 57.825,244.816 57.942,244.932 58.245 M115.222 61.114 C 115.457 61.611,115.650 62.182,115.650 62.385 C 115.650 62.587,115.889 63.221,116.180 63.793 C 116.578 64.573,116.711 64.691,116.711 64.263 C 116.711 63.949,116.817 63.626,116.946 63.546 C 117.075 63.466,117.263 62.965,117.363 62.431 C 117.688 60.698,118.191 60.212,119.659 60.212 L 120.955 60.212 120.946 61.340 C 120.942 61.960,120.763 62.699,120.549 62.982 C 120.334 63.265,120.159 63.699,120.159 63.946 C 120.159 64.193,119.981 64.737,119.763 65.155 C 119.545 65.573,119.366 66.117,119.365 66.364 C 119.364 66.610,119.258 66.878,119.128 66.958 C 118.999 67.037,118.815 67.517,118.720 68.023 C 118.625 68.529,118.374 69.276,118.161 69.684 C 117.949 70.091,117.772 70.603,117.768 70.822 C 117.748 71.848,116.864 72.450,115.504 72.364 L 114.191 72.281 114.269 71.089 C 114.313 70.433,114.448 69.796,114.570 69.674 C 114.805 69.439,114.507 68.266,113.896 67.021 C 113.694 66.608,113.528 66.064,113.528 65.812 C 113.528 65.560,113.353 65.122,113.138 64.838 C 112.924 64.555,112.745 64.070,112.741 63.759 C 112.736 63.449,112.553 63.046,112.334 62.865 C 112.091 62.663,111.936 62.082,111.936 61.373 L 111.936 60.212 113.365 60.212 C 114.729 60.212,114.813 60.253,115.222 61.114 M142.316 60.814 C 145.017 63.780,144.334 65.517,140.468 65.517 C 138.047 65.517,137.683 65.755,138.730 66.652 C 139.302 67.142,140.747 67.276,140.893 66.853 C 141.182 66.016,142.839 66.454,142.917 67.388 C 143.155 70.211,136.950 70.187,135.230 67.357 C 134.603 66.328,134.547 63.097,135.146 62.599 C 135.365 62.418,135.543 62.135,135.541 61.970 C 135.529 60.371,141.055 59.428,142.316 60.814 M152.269 60.623 C 152.661 60.977,152.746 60.977,153.045 60.617 C 153.469 60.106,156.732 60.050,157.329 60.544 C 158.432 61.457,158.621 62.219,158.621 65.773 L 158.621 69.231 157.891 69.279 C 155.394 69.446,155.174 69.154,155.168 65.665 C 155.164 62.482,154.993 62.052,154.016 62.764 C 153.362 63.241,153.332 63.376,153.320 65.915 C 153.305 69.056,153.210 69.258,151.740 69.278 C 149.951 69.303,149.750 68.927,149.645 65.361 C 149.596 63.681,149.477 62.346,149.380 62.395 C 149.283 62.444,148.876 62.648,148.475 62.849 L 147.745 63.215 147.745 66.205 L 147.745 69.196 147.016 69.279 C 146.615 69.326,145.958 69.320,145.557 69.267 L 144.828 69.171 144.828 64.703 L 144.828 60.236 148.328 60.230 C 151.076 60.226,151.923 60.310,152.269 60.623 M179.053 60.676 C 179.061 61.118,179.074 61.118,179.332 60.676 C 180.035 59.469,184.615 60.352,184.615 61.695 C 184.615 61.876,184.765 62.074,184.947 62.135 C 185.348 62.268,185.563 68.364,185.186 68.929 C 184.925 69.320,182.567 69.472,182.018 69.132 C 181.798 68.996,181.698 67.993,181.698 65.932 C 181.698 62.558,181.403 61.847,180.393 62.787 C 179.933 63.216,179.850 63.679,179.784 66.173 L 179.708 69.061 178.964 69.259 C 177.773 69.577,176.462 69.256,176.286 68.603 C 176.022 67.618,176.115 61.261,176.402 60.725 C 176.783 60.013,179.041 59.972,179.053 60.676 M203.647 60.728 C 203.975 61.002,204.244 61.305,204.244 61.401 C 204.244 61.497,204.423 61.755,204.642 61.974 C 205.124 62.456,205.180 64.740,204.721 65.199 C 204.520 65.401,203.501 65.517,201.936 65.517 C 199.278 65.517,198.808 65.819,200.123 66.680 C 200.939 67.215,201.550 67.221,202.582 66.706 C 204.342 65.828,205.542 67.356,204.133 68.680 C 202.413 70.296,196.552 69.060,196.552 67.082 C 196.552 66.822,196.432 66.536,196.286 66.446 C 196.141 66.355,196.021 65.639,196.021 64.854 C 196.021 64.069,196.141 63.353,196.286 63.263 C 196.432 63.172,196.552 62.887,196.552 62.628 C 196.552 60.629,201.833 59.214,203.647 60.728 M212.021 61.159 C 212.234 62.475,211.823 63.479,211.157 63.268 C 209.963 62.889,209.549 63.608,209.549 66.061 C 209.549 69.111,209.270 69.442,206.830 69.279 L 206.101 69.231 206.101 64.721 L 206.101 60.212 208.984 60.212 L 211.867 60.212 212.021 61.159 M231.705 60.801 C 234.411 63.849,233.757 65.517,229.858 65.517 C 227.437 65.517,227.072 65.755,228.120 66.652 C 228.692 67.142,230.137 67.276,230.283 66.853 C 230.572 66.016,232.229 66.454,232.307 67.388 C 232.545 70.211,226.340 70.187,224.619 67.357 C 223.993 66.328,223.937 63.097,224.536 62.599 C 224.755 62.418,224.933 62.135,224.931 61.970 C 224.919 60.376,230.476 59.417,231.705 60.801 M240.044 60.725 C 240.896 62.318,240.049 63.575,238.661 62.778 C 237.636 62.189,237.135 62.218,237.135 62.865 C 237.135 63.256,237.312 63.395,237.808 63.395 C 240.422 63.395,241.910 66.399,240.220 68.264 L 239.293 69.286 236.985 69.297 C 234.855 69.307,234.638 69.258,234.187 68.672 C 233.516 67.799,233.548 66.878,234.260 66.615 C 234.925 66.368,236.074 66.533,236.074 66.874 C 236.074 67.003,236.381 67.109,236.757 67.109 C 237.587 67.109,237.568 66.244,236.734 66.086 C 236.444 66.031,236.147 65.911,236.074 65.818 C 236.001 65.726,235.584 65.450,235.146 65.205 C 234.708 64.960,234.312 64.512,234.265 64.210 C 234.219 63.908,234.070 63.660,233.934 63.660 C 233.282 63.660,233.810 62.038,234.861 60.809 C 235.580 59.968,239.603 59.903,240.044 60.725 M138.727 62.732 C 138.445 63.071,138.519 63.130,139.225 63.130 C 139.784 63.130,140.053 63.001,140.053 62.732 C 140.053 62.513,139.829 62.334,139.555 62.334 C 139.281 62.334,138.908 62.513,138.727 62.732 M189.854 62.989 C 188.982 64.188,189.500 67.109,190.584 67.109 C 191.738 67.109,192.411 64.195,191.519 63.064 C 190.816 62.174,190.459 62.158,189.854 62.989 M200.000 62.732 C 199.715 63.075,199.823 63.130,200.782 63.130 C 201.771 63.130,201.850 63.086,201.497 62.732 C 201.278 62.513,200.926 62.334,200.715 62.334 C 200.503 62.334,200.182 62.513,200.000 62.732 M228.117 62.732 C 227.834 63.073,227.922 63.130,228.739 63.130 C 229.477 63.130,229.657 63.040,229.539 62.732 C 229.455 62.513,229.175 62.334,228.917 62.334 C 228.658 62.334,228.298 62.513,228.117 62.732 M368.018 78.401 C 368.582 78.964,368.666 231.946,368.103 232.709 C 367.793 233.130,359.556 233.163,236.605 233.224 L 105.438 233.289 105.280 234.748 C 105.029 237.075,104.399 238.034,102.476 239.014 C 100.850 239.843,40.537 239.804,38.821 238.973 C 37.209 238.193,36.605 237.089,36.605 234.926 L 36.605 233.178 34.416 233.101 L 32.228 233.024 32.161 155.719 C 32.108 94.050,32.162 78.371,32.427 78.203 C 33.147 77.746,367.560 77.943,368.018 78.401 M34.549 80.282 C 34.073 80.474,34.060 230.240,34.536 230.716 C 34.711 230.891,35.248 231.034,35.729 231.034 L 36.605 231.034 36.605 228.886 C 36.605 226.259,37.428 225.115,39.539 224.812 C 40.186 224.719,54.702 224.679,71.796 224.722 L 102.875 224.801 103.566 225.451 C 104.617 226.437,105.115 227.556,105.284 229.310 L 105.438 230.902 235.676 230.902 L 365.915 230.902 365.915 155.570 L 365.915 80.239 200.398 80.193 C 109.363 80.168,34.731 80.208,34.549 80.282 M86.321 86.889 C 86.872 87.440,86.970 219.290,86.419 219.841 C 85.958 220.302,40.302 220.302,39.841 219.841 C 39.290 219.290,39.388 87.440,39.939 86.889 C 40.575 86.253,85.685 86.253,86.321 86.889 M247.215 167.507 L 247.347 174.138 248.480 174.289 C 249.951 174.485,250.087 174.653,250.184 176.393 L 250.265 177.851 287.931 177.984 L 325.597 178.117 325.597 197.347 L 325.597 216.578 225.215 216.645 C 145.084 216.698,124.790 216.645,124.622 216.380 C 124.221 215.748,124.356 178.619,124.761 178.283 C 125.020 178.068,135.545 177.967,163.023 177.919 L 200.928 177.851 201.005 176.393 C 201.093 174.727,201.487 174.271,202.836 174.271 L 203.714 174.271 203.714 167.683 C 203.714 164.061,203.794 161.016,203.892 160.918 C 203.990 160.820,213.748 160.770,225.576 160.807 L 247.082 160.875 247.215 167.507 M205.836 168.407 C 205.836 174.450,205.788 174.271,207.396 174.271 C 208.463 174.271,208.753 174.736,208.753 176.446 L 208.753 177.984 225.464 177.984 L 242.175 177.984 242.175 176.709 C 242.175 175.104,242.604 174.512,243.921 174.298 L 244.960 174.129 245.032 168.497 L 245.103 162.865 225.469 162.865 L 205.836 162.865 205.836 168.407 M127.178 180.968 C 127.108 181.151,127.082 188.700,127.120 197.745 L 127.188 214.191 225.398 214.258 L 323.607 214.324 323.607 197.480 L 323.607 180.637 225.456 180.637 C 147.179 180.637,127.279 180.704,127.178 180.968 M183.771 193.054 C 183.876 194.140,183.391 194.845,182.850 194.395 C 182.403 194.025,182.323 194.091,182.088 195.027 C 181.911 195.734,181.939 195.756,182.995 195.756 L 184.085 195.756 184.085 194.612 C 184.085 192.473,184.873 192.059,188.930 192.071 L 192.307 192.080 192.478 192.762 C 192.893 194.413,190.407 196.029,189.619 194.620 C 189.346 194.134,187.832 194.093,187.365 194.560 C 186.490 195.435,186.916 195.679,189.551 195.817 C 192.700 195.982,192.564 195.772,192.569 200.442 C 192.574 205.086,192.590 205.040,190.981 205.040 C 189.399 205.040,189.390 205.019,189.390 201.172 L 189.390 198.143 188.204 198.143 L 187.019 198.143 186.944 201.525 L 186.870 204.907 185.477 204.987 L 184.085 205.068 184.085 201.605 L 184.085 198.143 183.024 198.143 L 181.963 198.143 181.963 201.294 C 181.963 204.941,181.868 205.113,179.928 204.989 L 178.647 204.907 178.573 201.552 C 178.501 198.275,178.485 198.193,177.873 198.040 C 176.682 197.741,176.678 196.021,177.869 196.021 C 178.434 196.021,178.515 195.901,178.515 195.065 C 178.515 194.394,178.762 193.796,179.342 193.064 L 180.169 192.020 181.928 192.097 L 183.687 192.175 183.771 193.054 M163.354 193.619 C 163.480 194.511,162.766 194.960,161.223 194.960 L 159.947 194.960 159.947 199.862 L 159.947 204.764 159.325 204.921 C 158.983 205.006,158.237 205.039,157.667 204.992 L 156.631 204.907 156.559 199.934 L 156.487 194.960 155.052 194.960 C 153.506 194.960,153.079 194.534,153.450 193.363 C 153.614 192.847,153.803 192.829,158.442 192.899 L 163.263 192.971 163.354 193.619 M216.097 193.415 C 217.711 194.931,216.047 196.444,213.962 195.356 C 212.480 194.584,210.960 194.997,209.625 196.537 C 208.546 197.782,209.039 202.114,210.260 202.120 C 210.432 202.121,210.759 202.309,210.988 202.538 C 211.221 202.771,211.724 202.916,212.134 202.869 C 213.249 202.741,213.437 199.735,212.330 199.735 C 211.285 199.735,210.610 199.267,210.610 198.541 C 210.610 197.644,211.326 197.347,213.493 197.347 C 216.715 197.347,216.711 197.343,216.711 200.872 L 216.711 203.879 215.926 204.459 C 214.920 205.203,209.337 205.345,208.753 204.642 C 208.572 204.423,208.280 204.244,208.105 204.244 C 207.266 204.244,205.298 200.612,205.309 199.082 C 205.324 197.039,206.911 194.290,208.631 193.327 C 209.947 192.589,215.286 192.653,216.097 193.415 M266.048 194.657 C 266.048 195.647,266.085 195.688,267.175 195.918 C 269.081 196.318,268.768 198.143,266.793 198.143 C 266.049 198.143,266.048 198.147,266.051 199.934 C 266.057 202.562,266.189 202.874,267.335 202.970 C 268.153 203.038,268.315 203.157,268.382 203.736 C 268.506 204.800,267.928 205.074,265.743 204.986 L 263.798 204.907 263.215 203.714 C 262.773 202.810,262.627 202.021,262.615 200.464 C 262.602 198.775,262.505 198.314,262.069 197.878 C 261.777 197.586,261.538 197.167,261.538 196.947 C 261.538 196.727,261.777 196.342,262.069 196.092 C 262.361 195.842,262.599 195.418,262.599 195.149 C 262.599 193.999,263.081 193.634,264.598 193.634 L 266.048 193.634 266.048 194.657 M168.920 196.915 C 169.097 198.463,168.794 198.939,167.634 198.939 C 167.053 198.939,166.578 199.058,166.578 199.204 C 166.578 199.350,166.403 199.469,166.190 199.469 C 165.879 199.469,165.786 200.012,165.725 202.188 L 165.650 204.907 164.257 204.987 L 162.865 205.068 162.865 200.562 L 162.865 196.056 163.594 195.973 C 166.200 195.673,168.831 196.138,168.920 196.915 M175.906 196.626 L 176.658 197.182 176.658 201.111 L 176.658 205.040 173.233 205.040 L 169.808 205.040 169.122 204.224 C 167.269 202.022,168.807 199.262,172.029 199.004 C 173.449 198.890,173.652 198.813,173.345 198.506 C 172.869 198.030,172.157 198.047,171.128 198.561 C 169.530 199.358,168.361 197.685,169.682 196.491 C 170.660 195.607,174.645 195.694,175.906 196.626 M200.581 196.662 C 201.749 198.058,200.499 199.420,198.910 198.482 C 197.512 197.656,196.471 199.292,196.993 201.499 C 197.312 202.846,197.910 203.170,198.949 202.556 C 200.682 201.532,201.858 202.964,200.484 204.426 C 199.668 205.295,196.084 205.336,195.008 204.490 C 192.068 202.177,193.050 196.522,196.483 196.003 C 198.186 195.745,200.068 196.048,200.581 196.662 M225.398 196.975 C 226.160 197.750,226.260 198.021,226.260 199.314 C 226.260 201.161,225.989 201.326,222.962 201.326 C 220.482 201.326,220.346 201.412,221.394 202.313 C 222.231 203.032,222.770 203.069,223.800 202.478 C 224.958 201.813,225.995 202.160,225.995 203.212 C 225.995 204.633,225.199 205.021,222.259 205.031 L 219.717 205.040 218.744 204.067 L 217.772 203.095 217.772 200.641 L 217.772 198.188 218.767 197.125 C 220.337 195.446,223.817 195.368,225.398 196.975 M230.040 196.396 C 230.178 196.596,230.309 196.576,230.468 196.329 C 230.828 195.771,234.347 195.848,234.926 196.427 C 236.122 197.623,236.359 198.565,236.282 201.805 L 236.207 204.907 234.640 204.988 C 232.651 205.091,232.635 205.063,232.630 201.421 C 232.626 198.219,232.349 197.639,231.295 198.621 C 230.866 199.021,230.777 199.541,230.712 202.000 L 230.637 204.907 229.045 204.907 L 227.454 204.907 227.454 200.542 L 227.454 196.178 228.117 196.015 C 228.902 195.823,229.762 195.993,230.040 196.396 M244.647 196.620 C 245.553 197.255,245.889 198.064,245.889 199.610 C 245.889 201.124,245.499 201.326,242.590 201.326 C 240.129 201.326,240.030 201.383,240.895 202.304 C 241.576 203.029,242.374 203.084,243.428 202.478 C 245.198 201.462,246.455 203.049,244.985 204.443 C 243.840 205.528,239.706 205.328,238.395 204.124 L 237.401 203.210 237.401 200.536 C 237.401 198.403,237.481 197.830,237.798 197.709 C 238.017 197.625,238.196 197.390,238.196 197.186 C 238.196 196.983,238.363 196.817,238.566 196.817 C 238.769 196.817,239.001 196.646,239.081 196.436 C 239.392 195.627,243.420 195.760,244.647 196.620 M250.172 196.130 C 250.736 195.781,252.568 195.983,253.085 196.450 C 253.608 196.924,253.642 196.924,253.978 196.465 C 254.500 195.751,259.169 195.715,259.947 196.419 C 261.206 197.559,261.968 201.654,261.353 203.979 L 261.108 204.907 257.698 204.978 C 254.041 205.054,253.050 204.717,253.050 203.398 C 253.050 203.130,252.901 202.658,252.719 202.349 C 252.454 201.900,252.454 201.763,252.719 201.667 C 252.901 201.601,253.050 201.281,253.050 200.956 C 253.050 199.999,254.510 199.115,256.307 198.985 C 257.290 198.914,257.812 198.765,257.749 198.575 C 257.608 198.144,256.271 198.047,255.805 198.434 C 255.586 198.615,254.820 198.750,254.103 198.734 C 253.385 198.717,252.728 198.817,252.643 198.955 C 252.557 199.093,252.226 199.147,251.907 199.074 C 250.729 198.806,250.424 199.429,250.342 202.276 L 250.265 204.907 248.674 204.907 L 247.082 204.907 247.010 200.482 L 246.937 196.058 247.673 195.966 C 248.077 195.916,248.754 195.964,249.176 196.073 C 249.598 196.182,250.046 196.207,250.172 196.130 M276.416 196.611 C 278.583 198.213,278.455 203.292,276.221 204.310 C 275.878 204.466,275.597 204.695,275.597 204.817 C 275.597 204.940,274.490 205.040,273.137 205.040 C 270.491 205.040,268.700 204.182,268.700 202.914 C 268.700 202.642,268.581 202.345,268.435 202.255 C 268.289 202.164,268.170 201.508,268.170 200.796 C 268.170 200.084,268.289 199.427,268.435 199.337 C 268.581 199.247,268.704 198.911,268.709 198.592 C 268.719 197.961,269.544 196.817,269.990 196.817 C 270.141 196.817,270.361 196.647,270.478 196.440 C 270.957 195.588,275.198 195.710,276.416 196.611 M284.828 197.546 C 284.749 199.048,284.736 199.070,283.996 198.992 C 282.727 198.857,282.493 199.290,282.493 201.774 C 282.493 204.762,282.323 205.040,280.495 205.040 L 279.045 205.040 279.045 200.531 L 279.045 196.021 281.976 196.021 L 284.907 196.021 284.828 197.546 M221.485 198.389 C 221.485 198.524,221.277 198.689,221.021 198.756 C 220.766 198.823,221.139 198.891,221.849 198.908 C 222.970 198.935,223.098 198.886,222.812 198.541 C 222.450 198.106,221.485 197.995,221.485 198.389 M240.732 198.550 C 240.256 198.909,240.314 198.939,241.494 198.939 C 242.599 198.939,242.726 198.885,242.440 198.541 C 242.026 198.042,241.398 198.045,240.732 198.550 M272.082 198.696 C 271.395 199.448,271.440 201.851,272.152 202.461 C 273.384 203.516,274.394 202.659,274.394 200.558 C 274.394 198.299,273.271 197.394,272.082 198.696 M172.044 201.746 C 171.772 202.457,171.865 202.918,172.281 202.918 C 172.729 202.918,173.740 201.998,173.740 201.592 C 173.740 201.148,172.221 201.286,172.044 201.746 M256.286 201.645 C 255.846 202.085,255.888 202.639,256.376 202.826 C 256.838 203.003,257.825 202.224,257.825 201.683 C 257.825 201.240,256.718 201.213,256.286 201.645 M39.191 227.608 C 38.793 228.044,38.727 228.672,38.727 232.000 C 38.727 236.704,38.642 236.584,41.976 236.596 L 44.297 236.605 44.297 232.759 L 44.297 228.912 45.491 228.912 L 46.684 228.912 46.684 232.361 L 46.684 235.809 48.011 235.809 L 49.337 235.809 49.337 233.679 C 49.337 231.938,49.417 231.517,49.777 231.379 C 50.151 231.236,50.128 231.177,49.628 230.992 C 48.294 230.499,48.983 229.058,50.597 228.965 L 51.989 228.885 51.989 229.814 C 51.989 230.419,51.827 230.837,51.525 231.013 C 51.093 231.265,51.092 231.284,51.516 231.292 C 51.910 231.299,51.982 231.664,52.057 234.019 L 52.143 236.737 52.199 234.047 C 52.263 230.947,52.103 231.103,55.271 231.055 C 57.865 231.015,58.355 231.563,58.355 234.496 C 58.355 236.376,58.409 236.605,58.849 236.605 C 59.382 236.605,59.382 235.708,58.849 234.602 C 58.320 233.503,58.674 231.500,59.443 231.245 C 61.032 230.719,61.538 231.307,61.538 233.680 C 61.538 235.396,61.616 235.809,61.936 235.809 C 62.253 235.809,62.335 235.417,62.338 233.886 C 62.343 231.780,62.457 231.457,63.292 231.197 C 64.532 230.810,64.721 231.168,64.721 233.907 L 64.721 236.458 65.517 235.587 C 66.372 234.651,66.561 233.574,65.915 233.326 C 65.696 233.242,65.517 232.990,65.517 232.767 C 65.517 232.544,65.398 232.361,65.252 232.361 C 64.769 232.361,64.977 231.589,65.542 231.287 C 66.217 230.925,67.355 231.174,67.803 231.782 C 68.107 232.193,68.176 232.181,68.692 231.631 C 69.267 231.018,69.671 230.915,70.403 231.195 C 70.950 231.406,70.942 232.348,70.388 232.752 C 70.102 232.961,69.954 233.461,69.954 234.218 C 69.954 234.974,70.102 235.474,70.388 235.683 C 70.627 235.857,70.822 236.136,70.822 236.302 C 70.822 236.498,71.433 236.605,72.546 236.605 L 74.271 236.605 74.271 235.743 L 74.272 234.881 72.262 234.969 L 70.252 235.057 70.338 234.305 C 70.424 233.561,70.440 233.554,72.281 233.554 L 74.138 233.554 74.271 231.300 L 74.403 229.045 75.729 229.045 L 77.056 229.045 77.136 230.438 C 77.216 231.828,77.217 231.830,78.117 231.830 C 79.016 231.830,79.017 231.828,79.098 230.438 L 79.178 229.045 80.429 228.965 C 81.831 228.874,81.888 228.959,82.026 231.296 L 82.095 232.487 82.700 231.835 C 83.744 230.709,86.676 230.702,87.619 231.823 C 88.320 232.656,89.125 232.531,89.125 231.589 C 89.125 231.167,90.337 230.949,91.867 231.098 C 93.587 231.264,93.899 231.149,93.899 230.349 C 93.899 229.778,94.015 229.708,94.960 229.708 C 95.900 229.708,96.021 229.780,96.021 230.338 C 96.021 230.826,96.201 231.004,96.817 231.127 C 97.449 231.254,97.613 231.424,97.613 231.956 C 97.613 232.524,97.491 232.626,96.817 232.626 L 96.021 232.626 96.021 234.218 C 96.021 235.744,96.049 235.809,96.693 235.809 C 97.062 235.809,97.433 235.988,97.517 236.207 C 97.637 236.519,98.176 236.605,100.028 236.605 L 102.387 236.605 102.387 232.209 C 102.387 228.753,102.306 227.733,102.008 227.435 C 101.327 226.753,39.817 226.923,39.191 227.608 M55.172 233.024 C 55.172 233.243,54.993 233.422,54.775 233.422 C 54.465 233.422,54.377 233.775,54.377 235.013 L 54.377 236.605 55.305 236.605 L 56.233 236.605 56.233 234.615 C 56.233 232.803,56.186 232.626,55.703 232.626 C 55.408 232.626,55.172 232.803,55.172 233.024 M84.679 233.153 C 83.991 234.255,84.485 235.809,85.525 235.809 C 85.857 235.809,85.942 235.488,85.942 234.218 C 85.942 232.495,85.384 232.025,84.679 233.153 M91.247 233.024 C 91.247 233.258,91.492 233.424,91.844 233.426 C 92.819 233.434,93.711 234.587,93.583 235.677 C 93.524 236.187,93.571 236.605,93.687 236.605 C 93.804 236.605,93.899 235.710,93.899 234.615 L 93.899 232.626 92.573 232.626 C 91.571 232.626,91.247 232.723,91.247 233.024 M77.188 235.013 L 77.188 236.605 78.117 236.605 L 79.045 236.605 79.045 235.013 L 79.045 233.422 78.117 233.422 L 77.188 233.422 77.188 235.013 M88.859 234.700 C 88.859 234.983,88.680 235.362,88.462 235.544 C 88.243 235.725,88.067 236.068,88.072 236.306 C 88.079 236.684,88.113 236.680,88.350 236.273 C 88.555 235.921,88.969 235.809,90.066 235.809 C 91.174 235.809,91.512 235.716,91.512 235.411 C 91.512 235.153,91.253 235.013,90.775 235.013 C 90.370 235.013,89.773 234.827,89.449 234.600 C 88.901 234.216,88.859 234.223,88.859 234.700 " stroke="none" fill="#fbfbf9" fill-rule="evenodd"></path><path id="path2" d="M29.245 14.721 C 29.248 15.305,29.302 15.513,29.365 15.183 C 29.429 14.853,29.426 14.375,29.360 14.122 C 29.294 13.868,29.242 14.138,29.245 14.721 M234.830 18.170 C 234.832 19.045,234.881 19.371,234.940 18.894 C 234.999 18.418,234.998 17.702,234.938 17.303 C 234.877 16.904,234.829 17.294,234.830 18.170 M273.289 18.302 C 273.289 19.105,273.339 19.433,273.400 19.032 C 273.460 18.631,273.460 17.974,273.400 17.573 C 273.339 17.172,273.289 17.500,273.289 18.302 M303.780 18.435 C 303.783 19.019,303.838 19.226,303.901 18.896 C 303.965 18.566,303.962 18.089,303.896 17.835 C 303.829 17.581,303.777 17.851,303.780 18.435 M32.538 78.691 C 32.019 79.210,32.353 232.338,32.874 232.617 C 33.156 232.768,34.157 232.891,35.099 232.891 L 36.810 232.891 36.913 234.711 C 37.038 236.918,37.923 238.341,39.329 238.594 C 39.800 238.679,54.287 238.713,71.522 238.671 L 102.858 238.594 103.586 237.866 C 104.210 237.241,104.334 236.861,104.449 235.213 C 104.523 234.155,104.716 233.201,104.878 233.094 C 105.040 232.987,164.222 232.898,236.394 232.895 L 367.615 232.891 367.768 232.029 C 367.853 231.555,367.888 196.850,367.847 154.907 L 367.772 78.647 200.243 78.581 C 108.103 78.544,32.635 78.594,32.538 78.691 M366.512 155.410 C 366.562 210.954,366.501 230.941,366.281 231.206 C 365.793 231.794,105.515 231.737,104.926 231.148 C 104.649 230.871,104.509 230.246,104.509 229.283 C 104.509 227.575,104.010 226.233,103.152 225.631 C 102.589 225.237,99.706 225.199,70.759 225.199 L 38.984 225.199 38.005 226.096 C 37.059 226.964,37.021 227.068,36.882 229.213 L 36.737 231.432 35.754 231.514 C 35.213 231.559,34.527 231.465,34.229 231.306 L 33.687 231.016 33.687 155.605 C 33.687 114.129,33.767 80.115,33.864 80.017 C 33.961 79.920,108.832 79.870,200.243 79.907 L 366.446 79.973 366.512 155.410 M40.231 87.178 C 40.133 87.276,40.053 117.118,40.053 153.492 L 40.053 219.629 63.130 219.629 L 86.208 219.629 86.141 153.382 L 86.074 87.135 63.242 87.068 C 50.684 87.030,40.329 87.080,40.231 87.178 M49.602 146.555 L 49.735 150.796 51.459 150.928 C 53.007 151.047,53.192 151.123,53.269 151.668 C 53.354 152.267,53.321 152.275,51.015 152.199 L 48.674 152.122 48.601 147.128 C 48.534 142.469,48.561 142.140,48.999 142.224 C 49.419 142.304,49.484 142.767,49.602 146.555 M56.186 142.907 C 56.254 143.390,56.143 143.501,55.589 143.501 C 55.105 143.501,54.907 143.360,54.907 143.015 C 54.907 141.987,56.041 141.891,56.186 142.907 M56.233 148.787 C 56.233 151.946,56.007 152.638,55.148 152.107 C 54.880 151.941,54.810 145.543,55.075 145.279 C 55.841 144.513,56.233 145.703,56.233 148.787 M60.724 145.460 C 61.742 144.952,62.889 145.117,63.652 145.880 C 64.418 146.646,64.485 152.350,63.727 152.205 C 63.337 152.131,63.241 151.725,63.127 149.676 C 62.978 147.011,62.766 146.596,61.551 146.596 C 60.081 146.596,59.682 147.272,59.682 149.760 C 59.682 151.994,59.531 152.384,58.777 152.094 C 58.111 151.839,58.151 145.444,58.820 145.290 C 59.075 145.231,59.416 145.341,59.577 145.534 C 59.820 145.825,60.020 145.812,60.724 145.460 M67.485 145.254 C 67.821 145.383,67.905 145.853,67.905 147.612 C 67.905 150.388,68.338 151.105,69.844 150.823 C 71.115 150.584,71.353 150.068,71.353 147.542 C 71.353 145.239,71.450 144.984,72.183 145.377 C 72.889 145.754,72.942 151.832,72.243 152.100 C 72.003 152.192,71.615 152.095,71.381 151.883 C 71.012 151.551,70.886 151.550,70.440 151.877 C 68.347 153.412,66.578 151.671,66.578 148.075 C 66.578 145.151,66.648 144.933,67.485 145.254 M76.380 146.437 C 77.186 147.731,77.294 147.730,78.040 146.433 C 78.668 145.343,79.509 144.877,79.745 145.490 C 79.868 145.812,79.195 147.149,78.741 147.483 C 78.118 147.940,78.278 149.008,79.170 150.356 C 80.127 151.802,80.169 152.255,79.345 152.255 C 78.880 152.255,77.976 151.227,77.634 150.310 C 77.378 149.621,76.906 149.870,76.043 151.148 C 75.317 152.225,74.734 152.525,74.405 151.993 C 74.265 151.766,74.925 150.478,75.928 149.021 C 76.183 148.652,76.055 148.308,75.207 147.077 C 74.432 145.951,74.261 145.528,74.518 145.369 C 75.102 145.008,75.704 145.353,76.380 146.437 M83.024 162.486 C 83.024 167.541,82.990 167.937,82.560 167.854 C 81.681 167.685,81.738 157.029,82.618 157.029 C 82.969 157.029,83.024 157.763,83.024 162.486 M46.209 159.748 C 46.305 162.123,46.443 162.127,48.224 159.814 C 49.563 158.077,50.928 157.212,50.928 158.101 C 50.928 158.401,49.726 160.053,48.716 161.141 C 47.570 162.374,47.745 162.943,50.173 165.873 C 51.106 166.998,51.232 167.748,50.506 167.851 C 49.992 167.925,47.504 164.988,47.027 163.746 C 46.677 162.833,46.277 163.714,46.154 165.671 C 46.035 167.551,45.965 167.772,45.491 167.772 C 44.982 167.772,44.957 167.571,44.888 162.798 L 44.816 157.825 45.473 157.825 C 46.105 157.825,46.134 157.899,46.209 159.748 M57.582 161.694 C 57.994 162.133,58.184 162.675,58.200 163.458 L 58.223 164.589 55.968 164.721 C 53.776 164.850,53.714 164.872,53.714 165.517 C 53.714 166.663,55.375 167.363,56.651 166.755 C 57.873 166.172,58.406 166.529,57.532 167.343 C 55.999 168.771,52.843 167.751,52.251 165.636 C 51.286 162.192,55.277 159.241,57.582 161.694 M64.191 161.578 C 64.191 162.094,64.068 162.172,62.828 162.442 C 61.941 162.636,61.783 163.039,61.575 165.647 C 61.437 167.373,61.320 167.783,60.942 167.855 C 60.519 167.936,60.477 167.634,60.477 164.443 L 60.477 160.942 61.207 161.070 C 61.608 161.141,62.235 161.118,62.599 161.019 C 63.546 160.762,64.191 160.989,64.191 161.578 M70.738 161.333 C 72.006 161.938,72.442 167.772,71.220 167.772 C 70.735 167.772,70.683 167.570,70.615 165.385 C 70.527 162.597,70.088 161.936,68.607 162.361 C 67.381 162.713,67.251 162.981,67.109 165.463 C 66.989 167.551,66.925 167.772,66.446 167.772 C 65.943 167.772,65.915 167.595,65.915 164.456 L 65.915 161.141 67.437 161.122 C 68.274 161.112,69.031 161.031,69.120 160.941 C 69.295 160.767,69.818 160.893,70.738 161.333 M79.145 161.806 C 79.706 162.349,79.917 162.815,79.941 163.567 L 79.973 164.589 77.673 164.721 C 75.067 164.872,74.955 164.925,75.305 165.846 C 75.637 166.718,76.911 167.178,77.972 166.808 C 79.250 166.362,79.729 166.584,79.052 167.308 C 77.261 169.223,73.739 167.400,73.741 164.558 C 73.744 161.303,76.943 159.674,79.145 161.806 M204.244 168.037 C 204.244 174.603,204.259 174.801,204.770 174.801 C 205.277 174.801,205.298 174.581,205.366 168.634 L 205.438 162.467 225.464 162.467 L 245.491 162.467 245.562 168.634 C 245.631 174.581,245.652 174.801,246.159 174.801 C 246.669 174.801,246.684 174.603,246.684 168.037 L 246.684 161.273 225.464 161.273 L 204.244 161.273 204.244 168.037 M54.280 162.353 C 53.073 163.303,53.479 163.926,55.305 163.926 C 57.098 163.926,57.485 163.386,56.415 162.380 C 55.649 161.660,55.169 161.654,54.280 162.353 M75.900 162.296 C 74.835 163.115,75.230 163.779,76.837 163.873 C 78.514 163.970,79.080 163.168,77.949 162.298 C 77.158 161.690,76.689 161.690,75.900 162.296 M101.801 226.695 C 103.249 227.083,103.951 235.067,102.676 236.642 L 102.169 237.268 71.018 237.337 L 39.868 237.407 39.158 236.849 L 38.449 236.291 38.522 231.747 L 38.594 227.203 39.257 226.868 C 39.957 226.514,100.501 226.347,101.801 226.695 " stroke="none" fill="#efba0b" fill-rule="evenodd"></path><path id="path3" d="M13.619 2.001 C 13.396 2.582,13.660 2.743,14.285 2.408 C 14.670 2.202,67.607 2.139,201.045 2.187 C 349.882 2.241,387.268 2.188,387.268 1.923 C 387.268 1.366,13.833 1.443,13.619 2.001 M69.032 9.194 C 68.803 9.287,68.700 10.027,68.700 11.580 C 68.700 13.626,68.662 13.793,68.283 13.414 C 67.364 12.494,64.838 12.853,63.683 14.067 C 62.318 15.501,61.892 19.439,62.976 20.591 C 63.134 20.759,63.488 21.208,63.764 21.589 C 64.376 22.435,68.039 22.664,68.342 21.875 C 68.480 21.517,68.534 21.519,68.811 21.898 C 69.010 22.170,69.410 22.294,69.907 22.238 L 70.690 22.149 70.761 15.801 C 70.839 8.803,70.759 8.497,69.032 9.194 M124.051 9.350 C 123.642 9.650,123.604 10.290,123.669 15.915 L 123.740 22.149 124.619 22.233 C 126.239 22.388,126.260 22.307,126.260 15.765 C 126.260 9.948,126.250 9.837,125.670 9.431 C 124.957 8.932,124.645 8.916,124.051 9.350 M70.292 15.650 C 70.292 22.095,70.137 22.765,68.975 21.364 C 68.697 21.029,68.527 21.047,67.687 21.497 C 64.443 23.235,61.514 19.072,63.392 15.392 C 64.296 13.619,66.627 12.879,68.010 13.926 C 68.798 14.522,68.966 14.179,68.966 11.965 C 68.966 9.770,69.042 9.549,69.805 9.549 C 70.263 9.549,70.292 9.911,70.292 15.650 M125.464 15.606 C 125.464 22.002,125.460 22.035,124.653 21.824 C 124.131 21.687,123.810 10.230,124.315 9.726 C 125.335 8.706,125.464 9.370,125.464 15.606 M41.711 9.990 C 41.459 10.092,41.379 11.591,41.379 16.218 L 41.379 22.313 42.374 22.231 L 43.369 22.149 43.512 17.905 C 43.590 15.570,43.680 13.929,43.711 14.257 C 43.741 14.586,43.861 14.854,43.977 14.854 C 44.092 14.854,44.366 15.242,44.585 15.716 C 45.260 17.176,46.276 18.961,46.485 19.054 C 46.595 19.103,46.687 19.282,46.689 19.452 C 46.709 20.633,48.298 22.281,49.417 22.281 C 51.200 22.281,51.194 22.305,51.194 15.988 L 51.194 10.332 50.512 10.073 C 49.732 9.776,48.558 9.991,48.505 10.440 C 48.485 10.606,48.396 12.167,48.306 13.909 L 48.143 17.075 47.613 16.035 C 47.321 15.463,46.933 14.835,46.751 14.640 C 46.568 14.445,46.419 14.130,46.419 13.939 C 46.419 13.749,46.240 13.444,46.021 13.263 C 45.802 13.081,45.623 12.760,45.623 12.549 C 45.623 12.170,44.414 10.392,43.901 10.017 C 43.603 9.800,42.224 9.783,41.711 9.990 M85.414 10.209 C 84.643 11.138,85.298 11.904,86.938 11.989 L 88.462 12.069 88.534 16.824 C 88.615 22.099,88.691 22.352,90.163 22.228 L 91.114 22.149 91.186 17.042 L 91.258 11.936 92.967 11.936 C 95.152 11.936,96.183 10.470,94.345 9.977 C 92.994 9.614,85.751 9.802,85.414 10.209 M262.533 10.101 C 262.113 10.346,262.069 10.939,262.069 16.426 C 262.069 23.036,262.106 23.199,263.578 23.030 L 264.324 22.944 264.395 16.544 L 264.466 10.144 263.864 9.983 C 263.098 9.777,263.087 9.779,262.533 10.101 M297.812 10.101 C 297.215 10.449,297.090 22.279,297.679 22.743 C 299.178 23.923,305.305 22.701,305.305 21.221 C 305.305 20.965,305.484 20.606,305.703 20.424 C 306.788 19.524,305.885 15.557,304.313 14.321 C 303.561 13.730,300.706 13.560,300.380 14.087 C 300.029 14.655,299.743 13.681,299.739 11.901 C 299.735 10.302,299.680 10.127,299.138 9.982 C 298.377 9.778,298.365 9.779,297.812 10.101 M325.349 10.166 C 324.917 10.483,324.854 11.120,324.731 16.469 C 324.579 23.099,324.602 23.193,326.309 23.029 L 327.188 22.944 327.339 20.955 C 327.423 19.861,327.512 19.166,327.538 19.411 C 327.565 19.656,327.735 20.014,327.918 20.207 C 328.100 20.400,328.705 21.125,329.262 21.817 C 330.043 22.789,330.447 23.077,331.031 23.077 C 332.736 23.077,333.034 22.534,331.963 21.378 C 331.598 20.984,331.297 20.579,331.294 20.477 C 331.290 20.375,330.872 19.831,330.365 19.268 C 329.180 17.952,329.192 17.867,330.769 16.313 C 332.131 14.972,332.413 14.237,331.676 13.954 C 330.628 13.552,329.965 13.823,328.657 15.186 L 327.322 16.578 327.321 13.471 C 327.321 10.670,327.270 10.336,326.808 10.089 C 326.140 9.731,325.929 9.742,325.349 10.166 M44.491 11.605 C 44.914 12.298,45.344 13.044,45.447 13.263 C 45.550 13.481,46.055 14.377,46.569 15.252 C 47.083 16.127,47.625 17.160,47.774 17.546 C 47.922 17.933,48.272 18.309,48.551 18.382 C 49.032 18.507,49.062 18.304,49.131 14.496 C 49.201 10.634,49.226 10.474,49.765 10.397 C 50.542 10.287,50.664 11.091,50.660 16.280 C 50.653 23.552,49.372 24.000,46.352 17.785 C 46.242 17.559,45.733 16.658,45.221 15.782 C 44.709 14.907,44.175 13.922,44.035 13.594 C 43.296 11.868,42.985 13.088,42.903 18.037 C 42.842 21.685,42.811 21.883,42.308 21.883 C 41.796 21.883,41.775 21.683,41.706 16.114 L 41.634 10.345 42.678 10.345 C 43.638 10.345,43.783 10.446,44.491 11.605 M94.304 10.622 C 94.653 11.186,93.839 11.647,92.352 11.725 L 90.849 11.804 90.777 16.777 C 90.733 19.757,90.600 21.767,90.445 21.790 C 90.302 21.812,90.036 21.842,89.854 21.857 C 89.604 21.877,89.490 20.648,89.390 16.844 L 89.257 11.804 87.798 11.668 C 86.178 11.518,85.676 11.295,85.676 10.727 C 85.676 10.253,94.013 10.151,94.304 10.622 M263.926 16.446 C 263.926 22.370,263.910 22.546,263.395 22.546 C 262.880 22.546,262.865 22.370,262.865 16.446 C 262.865 10.522,262.880 10.345,263.395 10.345 C 263.910 10.345,263.926 10.522,263.926 16.446 M299.204 12.475 C 299.204 14.916,299.434 15.183,300.920 14.478 C 303.252 13.371,305.305 15.226,305.305 18.437 C 305.305 21.715,303.106 23.555,300.606 22.369 C 299.869 22.019,299.570 21.991,299.177 22.236 C 298.175 22.862,298.143 22.685,298.143 16.446 C 298.143 10.522,298.159 10.345,298.674 10.345 C 299.160 10.345,299.204 10.522,299.204 12.475 M326.733 13.659 C 326.828 17.643,326.929 17.745,328.880 15.815 C 331.235 13.484,332.348 13.718,330.156 16.083 C 328.327 18.055,328.320 17.746,330.251 20.144 C 331.799 22.068,331.996 22.535,331.350 22.751 C 330.974 22.876,329.340 21.251,328.292 19.710 C 327.218 18.132,326.790 18.418,326.790 20.718 C 326.790 22.491,326.771 22.546,326.127 22.546 L 325.464 22.546 325.464 16.622 C 325.464 10.628,325.510 10.264,326.247 10.405 C 326.586 10.470,326.671 11.043,326.733 13.659 M29.377 10.793 C 29.121 10.860,28.912 11.012,28.912 11.131 C 28.912 11.251,28.611 11.424,28.243 11.516 C 27.258 11.764,26.525 12.622,26.525 13.528 C 26.525 14.431,27.175 14.624,27.718 13.883 C 28.508 12.801,28.791 13.625,28.747 16.875 L 28.704 20.020 27.855 20.194 C 26.771 20.416,26.458 20.739,26.569 21.521 C 26.665 22.199,32.350 22.664,32.969 22.044 C 33.567 21.447,32.919 20.435,31.826 20.260 L 30.769 20.091 30.769 15.512 C 30.769 11.140,30.591 10.155,29.885 10.641 C 29.861 10.658,29.632 10.726,29.377 10.793 M168.182 10.804 C 167.970 10.887,167.552 11.186,167.253 11.469 C 166.955 11.751,166.383 12.153,165.981 12.364 C 164.407 13.189,165.244 15.029,166.833 14.236 L 167.639 13.834 167.639 17.379 L 167.639 20.924 166.512 21.006 C 165.416 21.085,165.385 21.113,165.385 22.016 L 165.385 22.944 169.012 23.018 C 172.433 23.087,172.648 23.062,172.806 22.564 C 173.092 21.663,172.507 20.955,171.476 20.955 L 170.557 20.955 170.557 16.199 C 170.557 10.651,170.263 9.984,168.182 10.804 M188.447 11.156 C 187.694 11.988,188.218 12.599,189.684 12.599 C 190.771 12.599,190.855 12.549,190.936 11.832 C 191.081 10.564,189.398 10.106,188.447 11.156 M206.101 11.087 C 203.820 12.335,204.502 14.330,206.800 13.132 C 208.535 12.227,209.749 13.117,209.391 15.031 C 209.154 16.295,208.576 17.106,206.282 19.396 C 204.686 20.989,204.484 21.302,204.558 22.072 L 204.642 22.944 208.452 23.018 C 212.630 23.099,213.066 22.976,212.755 21.806 C 212.570 21.113,212.485 21.083,210.373 20.955 L 208.183 20.822 209.395 19.559 C 212.509 16.314,213.196 13.588,211.396 11.618 C 210.381 10.506,207.659 10.234,206.101 11.087 M30.316 12.985 C 30.401 14.000,30.407 15.880,30.328 17.163 C 30.147 20.093,30.401 20.827,31.678 21.066 C 33.533 21.414,32.614 21.751,29.808 21.751 C 27.334 21.751,27.031 21.702,27.321 21.353 C 27.503 21.134,27.931 20.955,28.272 20.955 C 28.614 20.955,28.999 20.746,29.127 20.491 C 29.385 19.977,29.373 13.370,29.114 13.110 C 28.879 12.876,27.321 13.257,27.321 13.549 C 27.321 13.683,27.205 13.793,27.064 13.793 C 26.379 13.793,27.846 11.966,28.548 11.945 C 28.713 11.940,28.996 11.757,29.178 11.538 C 29.856 10.722,30.159 11.107,30.316 12.985 M169.761 15.800 C 169.761 20.764,169.912 21.485,170.945 21.485 C 171.983 21.485,172.645 22.315,171.847 22.615 C 171.130 22.885,166.189 22.778,165.899 22.487 C 165.534 22.121,166.357 21.515,167.328 21.434 L 168.302 21.353 168.375 17.198 L 168.448 13.044 167.845 13.197 C 167.513 13.281,166.978 13.520,166.656 13.727 C 165.999 14.151,165.404 13.946,165.713 13.401 C 166.063 12.785,168.541 11.174,169.164 11.157 L 169.761 11.141 169.761 15.800 M190.403 11.735 C 190.311 12.378,189.502 12.685,189.061 12.244 C 188.616 11.799,189.055 11.141,189.798 11.141 C 190.361 11.141,190.472 11.250,190.403 11.735 M210.844 11.987 C 212.474 13.654,211.810 16.203,209.027 18.957 C 206.762 21.199,206.913 21.475,210.411 21.482 C 211.990 21.485,212.202 21.545,212.202 21.988 C 212.202 22.695,211.715 22.812,208.749 22.812 C 204.075 22.812,203.916 22.490,207.042 19.363 C 208.282 18.123,209.372 16.810,209.464 16.446 C 209.556 16.081,209.717 15.723,209.822 15.650 C 209.927 15.577,210.092 15.151,210.189 14.704 C 210.579 12.905,208.643 11.974,206.117 12.748 C 205.378 12.974,205.518 11.981,206.284 11.566 C 207.684 10.807,209.889 11.010,210.844 11.987 M245.411 11.724 C 245.236 11.899,245.093 12.436,245.093 12.918 L 245.093 13.793 243.302 13.850 C 242.318 13.882,240.988 13.881,240.348 13.849 C 238.502 13.755,238.462 13.854,238.462 18.414 C 238.462 22.732,238.560 23.077,239.788 23.077 C 240.941 23.077,241.113 22.651,241.123 19.775 C 241.134 16.375,241.427 15.915,243.576 15.915 L 245.025 15.915 245.144 18.813 C 245.295 22.486,245.689 23.065,248.036 23.072 C 250.491 23.080,251.511 21.178,249.145 21.006 C 247.844 20.912,247.651 20.430,247.796 17.639 L 247.878 16.048 248.799 15.915 C 250.793 15.628,250.640 13.793,248.623 13.793 C 247.799 13.793,247.745 13.737,247.745 12.874 C 247.745 11.605,246.262 10.874,245.411 11.724 M247.000 12.931 C 247.078 13.875,247.136 13.933,248.143 14.058 C 249.507 14.229,249.707 15.195,248.408 15.342 C 246.054 15.607,246.356 21.485,248.724 21.485 C 249.609 21.485,249.550 22.435,248.651 22.661 C 246.568 23.184,245.645 21.881,245.633 18.399 C 245.623 15.499,244.937 14.162,244.024 15.262 C 243.847 15.475,243.260 15.650,242.719 15.650 C 241.008 15.650,240.617 16.360,240.527 19.635 C 240.454 22.288,240.424 22.418,239.854 22.499 L 239.257 22.583 239.257 18.453 C 239.257 14.208,239.310 14.021,240.322 14.653 C 240.741 14.915,240.956 14.915,241.376 14.653 C 241.666 14.472,242.551 14.324,243.343 14.324 C 245.314 14.324,245.623 14.164,245.623 13.146 C 245.623 11.533,246.868 11.339,247.000 12.931 M54.812 13.395 C 54.594 13.614,54.336 13.793,54.239 13.793 C 53.943 13.793,53.069 14.963,53.051 15.385 C 53.041 15.603,52.858 16.014,52.644 16.297 C 52.430 16.581,52.255 17.244,52.255 17.772 C 52.255 18.300,52.430 18.963,52.644 19.246 C 52.858 19.530,53.037 19.960,53.042 20.203 C 53.072 21.783,59.037 23.314,59.586 21.883 C 59.670 21.664,59.875 21.485,60.042 21.484 C 61.406 21.475,62.149 16.448,61.035 14.759 C 59.930 13.083,55.989 12.219,54.812 13.395 M73.771 14.090 C 72.949 14.911,72.679 15.391,72.679 16.026 C 72.679 16.490,72.533 17.016,72.354 17.195 C 72.098 17.451,72.098 17.630,72.354 18.040 C 72.533 18.326,72.679 18.984,72.679 19.501 C 72.679 20.092,72.827 20.498,73.077 20.594 C 73.296 20.678,73.475 20.913,73.475 21.116 C 73.475 21.319,73.641 21.485,73.844 21.485 C 74.048 21.485,74.283 21.664,74.366 21.883 C 74.875 23.208,80.371 22.116,80.371 20.690 C 80.371 19.809,79.625 19.167,79.215 19.695 C 78.674 20.390,76.048 20.346,75.332 19.629 C 74.223 18.520,74.569 18.326,77.785 18.245 L 80.769 18.170 80.849 16.777 C 80.894 16.011,80.817 15.385,80.679 15.385 C 80.542 15.385,80.356 15.096,80.268 14.743 C 79.756 12.704,75.578 12.283,73.771 14.090 M95.661 13.395 C 95.442 13.614,95.195 13.793,95.112 13.793 C 94.817 13.793,93.899 14.859,93.899 15.201 C 93.899 15.392,93.724 15.780,93.510 16.063 C 91.711 18.441,94.424 22.281,97.903 22.281 L 99.979 22.281 101.117 21.166 L 102.255 20.050 102.255 17.651 C 102.255 15.039,101.939 14.283,100.490 13.418 C 99.541 12.851,96.221 12.836,95.661 13.395 M104.098 13.335 C 104.026 13.521,104.000 16.296,104.040 19.502 L 104.111 25.332 105.040 25.332 L 105.968 25.332 106.101 23.475 C 106.178 22.389,106.322 21.756,106.448 21.950 C 107.153 23.039,111.671 21.934,111.671 20.672 C 111.671 20.426,111.850 20.076,112.069 19.894 C 113.153 18.994,112.363 14.818,110.862 13.516 C 110.084 12.841,107.151 12.769,106.617 13.412 C 106.305 13.788,106.252 13.788,106.041 13.412 C 105.762 12.914,104.282 12.855,104.098 13.335 M115.370 13.463 C 113.393 14.813,112.722 16.922,113.428 19.571 C 114.413 23.264,121.067 23.344,121.874 19.673 C 121.974 19.214,122.167 18.771,122.302 18.688 C 123.093 18.198,121.977 14.850,120.658 13.755 C 119.538 12.827,116.545 12.661,115.370 13.463 M129.379 13.606 C 128.834 13.928,128.386 14.326,128.385 14.490 C 128.383 14.655,128.203 14.938,127.984 15.119 C 127.686 15.367,127.586 16.031,127.586 17.773 L 127.586 20.097 128.678 21.189 L 129.771 22.281 131.953 22.281 C 134.213 22.281,136.074 21.257,136.074 20.014 C 136.074 19.802,136.194 19.629,136.340 19.629 C 136.801 19.629,136.650 16.184,136.141 15.103 C 135.137 12.972,131.732 12.218,129.379 13.606 M138.780 13.562 C 138.237 13.912,137.846 14.420,137.751 14.894 C 137.666 15.316,137.493 15.725,137.366 15.804 C 137.049 16.000,137.074 17.172,137.401 17.374 C 137.546 17.464,137.666 17.822,137.666 18.170 C 137.666 18.517,137.546 18.875,137.401 18.966 C 137.044 19.186,137.063 20.246,137.431 20.614 C 137.649 20.832,137.614 21.072,137.299 21.522 C 135.791 23.675,137.431 25.464,140.910 25.464 C 144.252 25.464,145.360 24.777,145.354 22.709 C 145.347 20.644,144.717 20.173,141.872 20.109 C 139.946 20.065,139.864 20.046,141.247 19.962 C 143.558 19.822,144.562 18.830,144.562 16.687 C 144.562 15.561,144.668 15.136,144.977 15.017 C 145.263 14.907,145.366 14.589,145.309 13.994 L 145.225 13.130 142.440 13.063 C 139.981 13.004,139.553 13.063,138.780 13.562 M145.800 13.174 C 145.473 13.501,145.619 14.786,146.021 15.119 C 146.240 15.301,146.419 15.778,146.419 16.180 C 146.419 16.582,146.598 17.060,146.817 17.241 C 147.036 17.423,147.215 17.900,147.215 18.302 C 147.215 18.704,147.394 19.182,147.613 19.363 C 147.832 19.545,148.011 20.022,148.011 20.424 C 148.011 20.826,148.190 21.304,148.408 21.485 C 148.905 21.898,148.912 22.254,148.433 22.791 C 147.998 23.277,147.805 24.651,148.102 25.133 C 148.773 26.218,150.910 24.745,150.937 23.178 C 150.941 22.904,151.121 22.447,151.335 22.164 C 151.549 21.881,151.724 21.374,151.724 21.037 C 151.724 20.700,151.838 20.424,151.977 20.424 C 152.117 20.424,152.312 19.988,152.413 19.454 C 152.513 18.921,152.756 18.175,152.953 17.797 C 153.151 17.418,153.313 16.924,153.314 16.698 C 153.315 16.471,153.444 16.158,153.601 16.001 C 154.363 15.239,154.027 13.135,153.131 13.048 C 152.266 12.964,151.194 14.404,151.194 15.649 C 151.194 15.885,151.018 16.311,150.804 16.594 C 150.590 16.877,150.408 17.467,150.400 17.905 L 150.386 18.700 149.867 18.037 C 149.582 17.672,149.346 17.128,149.343 16.828 C 149.340 16.528,149.162 16.050,148.947 15.767 C 148.733 15.484,148.554 14.983,148.550 14.655 C 148.533 13.507,146.541 12.434,145.800 13.174 M155.984 13.377 C 155.810 13.585,155.706 14.212,155.752 14.769 C 155.896 16.522,158.621 16.246,158.621 14.478 C 158.621 13.264,156.732 12.475,155.984 13.377 M59.425 13.930 C 61.680 15.096,61.618 20.006,59.331 21.318 C 55.330 23.615,51.241 19.111,53.742 15.161 C 54.738 13.586,57.572 12.972,59.425 13.930 M78.940 14.075 C 79.813 14.615,80.366 15.803,80.370 17.147 C 80.372 17.921,79.935 18.037,77.017 18.037 L 74.502 18.037 74.585 18.891 C 74.697 20.038,76.159 21.071,77.321 20.824 C 79.498 20.362,79.841 20.351,79.841 20.743 C 79.841 22.588,74.527 22.094,73.374 20.141 C 71.143 16.365,75.305 11.829,78.940 14.075 M100.255 13.962 C 103.403 15.822,102.043 21.408,98.316 21.919 C 94.154 22.489,92.011 15.915,95.720 13.954 C 96.722 13.424,99.353 13.429,100.255 13.962 M105.841 13.932 C 106.141 14.293,106.240 14.293,106.792 13.932 C 108.427 12.860,110.733 13.630,111.518 15.509 C 113.033 19.134,110.167 23.157,107.144 21.649 C 105.989 21.073,105.836 21.257,105.836 23.225 C 105.836 24.850,105.805 24.934,105.201 24.934 C 104.297 24.934,104.244 24.625,104.248 19.408 C 104.252 13.558,104.584 12.417,105.841 13.932 M120.559 14.409 C 122.436 16.031,121.932 20.448,119.757 21.439 C 115.683 23.295,112.059 19.245,114.214 15.244 C 115.251 13.318,118.763 12.856,120.559 14.409 M134.648 14.198 C 136.175 15.363,136.492 18.338,135.294 20.260 C 133.215 23.596,127.863 21.804,127.863 17.772 C 127.863 14.308,131.962 12.149,134.648 14.198 M145.093 13.774 C 145.093 13.910,144.885 14.228,144.632 14.482 C 144.310 14.803,144.170 15.370,144.167 16.352 C 144.163 18.377,143.085 19.457,140.988 19.537 C 138.303 19.639,138.457 20.413,141.163 20.420 C 144.694 20.430,146.232 22.364,144.104 24.119 C 141.400 26.347,136.384 24.545,137.827 21.864 C 138.205 21.162,138.253 20.841,138.030 20.484 C 137.840 20.181,137.824 19.792,137.984 19.361 C 138.118 18.998,138.151 18.138,138.056 17.450 C 137.837 15.857,138.259 14.572,139.191 13.994 C 139.995 13.496,145.093 13.306,145.093 13.774 M147.693 14.125 C 148.009 14.747,148.659 16.520,149.089 17.931 C 149.796 20.251,150.482 19.781,151.445 16.313 C 151.934 14.549,152.525 13.528,153.054 13.528 C 153.839 13.528,153.666 14.517,152.296 17.855 C 152.127 18.266,151.989 18.710,151.989 18.841 C 151.989 18.973,151.820 19.472,151.614 19.951 C 151.407 20.430,151.049 21.258,150.818 21.791 C 150.587 22.323,150.398 22.872,150.398 23.010 C 150.398 23.789,149.518 24.934,148.920 24.934 C 148.160 24.934,148.084 24.413,148.703 23.467 C 149.214 22.687,149.104 21.668,148.289 19.629 C 147.968 18.826,147.604 17.871,147.480 17.507 C 147.356 17.142,147.007 16.189,146.704 15.388 C 146.017 13.572,146.019 13.528,146.772 13.528 C 147.147 13.528,147.510 13.763,147.693 14.125 M157.692 14.589 C 157.692 16.051,156.404 15.973,156.283 14.503 C 156.203 13.532,156.230 13.493,156.946 13.575 C 157.606 13.651,157.692 13.768,157.692 14.589 M13.532 13.992 C 13.529 14.248,12.080 14.324,7.183 14.324 C 3.694 14.324,0.650 14.396,0.420 14.485 C -0.087 14.679,-0.241 265.252,0.265 265.252 C 0.442 265.252,0.532 223.539,0.534 140.650 C 0.536 72.119,0.610 15.779,0.698 15.451 L 0.858 14.854 7.069 14.854 C 13.244 14.854,13.281 14.858,13.498 15.443 C 13.699 15.986,13.725 15.966,13.840 15.184 C 13.909 14.718,13.868 14.184,13.750 13.998 C 13.582 13.733,13.535 13.732,13.532 13.992 M178.536 14.165 C 178.301 14.448,178.144 15.847,178.050 18.502 C 177.895 22.897,177.995 23.185,179.625 23.029 L 180.504 22.944 180.579 19.951 C 180.663 16.608,180.987 15.915,182.467 15.915 C 183.505 15.915,183.820 16.872,183.820 20.034 C 183.820 22.742,184.039 23.178,185.329 23.030 L 186.074 22.944 186.148 19.348 L 186.221 15.753 185.221 14.753 C 184.240 13.772,184.190 13.755,182.628 13.891 C 181.751 13.968,180.915 14.038,180.769 14.049 C 180.623 14.059,180.139 13.995,179.693 13.908 C 179.127 13.796,178.778 13.874,178.536 14.165 M188.659 14.099 C 188.203 14.555,188.192 22.304,188.647 22.759 C 189.077 23.188,190.315 23.162,190.685 22.716 C 190.899 22.458,190.928 21.150,190.784 18.140 L 190.584 13.926 189.786 13.847 C 189.348 13.804,188.841 13.918,188.659 14.099 M194.397 14.440 C 192.068 16.022,191.826 20.349,193.957 22.295 C 195.646 23.837,200.000 23.241,200.000 21.468 C 200.000 20.698,199.282 20.293,198.583 20.667 C 197.187 21.415,195.716 20.945,195.324 19.629 C 194.529 16.951,196.350 14.956,198.413 16.245 C 199.063 16.651,199.828 16.257,199.948 15.454 C 200.189 13.845,196.314 13.137,194.397 14.440 M218.501 14.162 C 218.085 14.478,218.037 15.093,218.037 20.128 L 218.037 25.741 218.681 26.034 C 220.124 26.692,220.690 26.179,220.690 24.212 C 220.690 22.834,220.760 22.511,221.008 22.759 C 221.569 23.319,224.059 23.151,224.950 22.492 C 227.357 20.713,227.500 16.423,225.220 14.413 C 224.407 13.696,221.785 13.532,221.158 14.159 C 220.847 14.469,220.717 14.469,220.292 14.159 C 219.671 13.704,219.103 13.705,218.501 14.162 M229.836 14.357 C 227.400 16.087,227.076 19.872,229.180 22.018 C 231.929 24.823,237.129 22.519,237.138 18.493 C 237.145 14.784,232.744 12.291,229.836 14.357 M251.601 14.616 C 249.946 16.070,250.849 19.098,252.938 19.098 C 253.654 19.098,254.642 19.944,254.642 20.557 C 254.642 21.108,252.704 21.098,252.244 20.544 C 251.653 19.832,250.807 20.174,250.712 21.163 C 250.508 23.284,254.574 23.976,256.371 22.126 C 257.973 20.476,257.147 17.772,255.041 17.772 C 254.707 17.772,254.365 17.593,254.281 17.374 C 254.197 17.155,253.945 16.976,253.722 16.976 C 252.260 16.976,253.429 15.935,254.973 15.861 C 256.583 15.785,256.634 15.760,256.719 15.016 C 256.897 13.457,253.245 13.172,251.601 14.616 M268.297 14.357 C 265.817 16.119,265.494 19.827,267.632 22.008 C 270.395 24.827,275.597 22.504,275.597 18.452 C 275.597 14.784,271.182 12.307,268.297 14.357 M277.939 14.806 C 276.722 15.941,276.325 17.381,276.589 19.701 C 277.210 25.151,285.676 23.966,285.676 18.430 C 285.676 17.003,284.901 14.854,284.385 14.854 C 284.265 14.854,283.891 14.615,283.554 14.324 C 282.367 13.293,279.276 13.559,277.939 14.806 M287.512 14.217 C 287.254 14.527,287.131 16.097,287.050 20.123 L 286.939 25.606 287.614 25.967 C 289.047 26.734,289.655 26.211,289.655 24.212 C 289.655 22.834,289.726 22.511,289.973 22.759 C 290.531 23.316,292.958 23.147,293.985 22.480 C 296.388 20.918,296.519 16.538,294.225 14.413 C 293.440 13.685,290.734 13.512,290.137 14.151 C 289.857 14.452,289.745 14.452,289.445 14.151 C 288.959 13.665,287.941 13.699,287.512 14.217 M308.960 14.125 C 308.761 14.307,308.365 14.588,308.079 14.749 C 307.453 15.101,307.242 16.165,307.735 16.478 C 308.281 16.823,309.014 16.753,309.454 16.313 C 310.241 15.527,312.202 15.896,312.202 16.831 C 312.202 16.873,311.639 16.971,310.950 17.048 C 310.262 17.126,309.655 17.320,309.602 17.481 C 309.549 17.641,309.246 17.774,308.930 17.776 C 307.120 17.791,306.439 21.095,307.979 22.391 C 308.749 23.039,308.955 23.077,311.494 23.047 C 314.980 23.006,314.854 23.148,314.854 19.257 C 314.854 15.863,314.711 15.372,313.403 14.266 C 312.743 13.708,309.526 13.606,308.960 14.125 M318.521 14.265 C 315.821 16.046,315.714 21.087,318.343 22.657 C 319.585 23.398,322.644 23.234,323.432 22.385 C 324.451 21.286,323.717 19.897,322.515 20.648 C 322.244 20.817,321.491 20.955,320.841 20.955 L 319.659 20.955 319.298 19.695 C 318.935 18.434,319.100 17.056,319.709 16.247 C 320.005 15.854,322.281 15.796,322.281 16.180 C 322.281 16.736,323.523 16.443,323.807 15.821 C 324.575 14.134,320.526 12.942,318.521 14.265 M183.680 14.321 C 185.390 14.971,185.676 15.680,185.676 19.270 L 185.676 22.546 185.013 22.546 L 184.350 22.546 184.350 19.546 C 184.350 15.964,183.965 15.205,182.286 15.478 C 180.440 15.778,180.106 16.420,180.106 19.675 L 180.106 22.546 179.443 22.546 L 178.780 22.546 178.780 18.435 C 178.780 14.500,178.803 14.324,179.310 14.324 C 179.602 14.324,179.841 14.443,179.841 14.589 C 179.841 14.990,181.229 14.891,181.815 14.448 C 182.421 13.989,182.749 13.967,183.680 14.321 M198.735 14.622 C 199.860 15.223,199.274 15.710,197.652 15.522 C 195.328 15.252,194.562 15.974,194.562 18.435 C 194.562 20.893,195.342 21.631,197.661 21.368 C 199.499 21.160,199.858 21.770,198.284 22.427 C 196.649 23.111,194.155 22.411,193.748 21.154 C 193.666 20.899,193.487 20.690,193.351 20.690 C 193.215 20.690,193.103 19.735,193.103 18.568 C 193.103 17.357,193.215 16.446,193.364 16.446 C 193.507 16.446,193.695 16.162,193.782 15.816 C 193.929 15.231,194.593 14.748,195.889 14.285 C 196.495 14.068,198.042 14.251,198.735 14.622 M225.064 15.141 C 227.860 17.891,224.921 24.116,221.635 22.403 C 220.456 21.788,220.195 22.048,220.106 23.926 C 220.035 25.428,219.966 25.605,219.430 25.682 L 218.833 25.766 218.833 20.045 C 218.833 14.382,219.006 13.366,219.761 14.589 C 219.968 14.923,221.485 14.940,221.485 14.608 C 221.485 13.756,224.044 14.136,225.064 15.141 M234.951 15.039 C 237.592 17.176,236.448 22.123,233.185 22.674 C 231.493 22.960,229.323 22.099,229.056 21.036 C 228.971 20.699,228.785 20.424,228.642 20.424 C 228.496 20.424,228.382 19.586,228.382 18.514 L 228.382 16.604 229.569 15.483 C 231.329 13.820,233.249 13.662,234.951 15.039 M256.034 14.502 C 256.739 14.919,256.135 15.385,254.890 15.385 C 253.315 15.385,252.520 15.737,252.520 16.433 C 252.520 16.919,253.982 18.037,254.618 18.037 C 254.789 18.037,255.282 18.298,255.714 18.618 C 258.143 20.414,255.001 23.851,252.267 22.387 C 250.894 21.652,250.745 20.529,252.096 21.094 C 253.891 21.844,255.172 21.494,255.172 20.254 C 255.172 19.610,254.275 18.833,253.531 18.833 C 252.795 18.833,251.194 17.272,251.194 16.554 C 251.194 14.797,254.304 13.479,256.034 14.502 M273.419 15.044 C 276.002 17.135,274.837 22.135,271.641 22.675 C 269.963 22.959,267.731 22.074,267.466 21.021 C 267.384 20.693,267.210 20.424,267.080 20.424 C 266.950 20.424,266.844 19.586,266.844 18.561 C 266.844 14.794,270.617 12.776,273.419 15.044 M282.890 14.622 C 287.615 17.155,283.995 24.658,279.203 22.265 C 277.477 21.403,277.100 20.705,277.100 18.367 C 277.100 14.997,280.041 13.095,282.890 14.622 M294.068 15.227 C 296.867 18.188,294.048 24.040,290.609 22.408 C 289.340 21.806,289.125 22.040,289.125 24.021 C 289.125 25.667,289.100 25.729,288.462 25.729 L 287.798 25.729 287.798 20.027 C 287.798 14.500,287.815 14.324,288.329 14.324 C 288.621 14.324,288.859 14.443,288.859 14.589 C 288.859 14.996,290.253 14.887,290.849 14.433 C 291.649 13.823,293.073 14.174,294.068 15.227 M312.637 14.492 C 314.038 15.157,314.324 15.981,314.324 19.359 C 314.324 22.498,314.086 23.023,312.978 22.331 C 312.610 22.101,312.324 22.122,311.753 22.420 C 309.952 23.359,307.698 22.287,307.694 20.491 C 307.691 18.731,308.718 17.991,311.719 17.586 C 313.169 17.391,313.256 15.936,311.844 15.488 C 311.184 15.278,309.074 15.611,308.859 15.959 C 308.747 16.141,308.608 16.112,308.459 15.877 C 308.096 15.304,308.171 15.168,309.085 14.752 C 310.765 13.988,311.466 13.936,312.637 14.492 M322.613 14.630 C 323.679 15.188,323.122 15.601,321.362 15.559 C 318.974 15.501,318.435 16.036,318.435 18.465 C 318.435 20.882,319.227 21.629,321.511 21.371 C 323.150 21.186,323.605 21.431,322.865 22.100 C 321.498 23.337,318.340 22.619,317.435 20.865 C 316.635 19.316,317.201 15.418,318.288 14.993 C 318.515 14.904,319.118 14.663,319.629 14.457 C 320.544 14.087,321.706 14.155,322.613 14.630 M190.186 18.435 C 190.186 22.370,190.163 22.546,189.655 22.546 C 189.147 22.546,189.125 22.370,189.125 18.435 C 189.125 14.500,189.147 14.324,189.655 14.324 C 190.163 14.324,190.186 14.500,190.186 18.435 M387.268 14.589 C 387.268 14.758,389.567 14.854,393.634 14.854 C 397.701 14.854,400.000 14.758,400.000 14.589 C 400.000 14.419,397.701 14.324,393.634 14.324 C 389.567 14.324,387.268 14.419,387.268 14.589 M75.220 15.150 C 73.935 16.161,74.360 16.829,76.349 16.923 C 78.672 17.033,79.437 16.307,78.249 15.119 C 77.547 14.417,76.134 14.431,75.220 15.150 M140.007 14.864 C 139.425 15.204,139.168 16.441,139.499 17.312 C 140.249 19.284,142.706 18.638,142.706 16.468 C 142.706 14.758,141.459 14.017,140.007 14.864 M55.373 15.318 C 53.599 17.313,54.724 20.527,57.183 20.490 C 59.443 20.456,60.570 17.643,59.133 15.625 C 58.458 14.676,56.113 14.485,55.373 15.318 M65.006 15.553 C 62.913 18.214,65.931 22.122,68.334 19.864 C 69.248 19.005,69.259 16.283,68.352 15.431 C 67.435 14.570,65.730 14.632,65.006 15.553 M96.187 15.348 C 94.643 17.054,95.375 20.268,97.347 20.447 C 99.594 20.650,100.711 19.561,100.468 17.405 C 100.200 15.026,97.607 13.779,96.187 15.348 M106.540 15.459 C 105.553 16.307,105.499 18.955,106.449 19.848 C 107.564 20.895,109.469 20.671,110.007 19.430 C 111.413 16.187,108.960 13.379,106.540 15.459 M115.747 15.584 C 115.009 16.671,115.059 19.156,115.834 19.931 C 118.230 22.327,121.738 18.259,119.609 15.553 C 118.785 14.505,116.466 14.523,115.747 15.584 M129.995 15.747 C 128.633 17.951,129.650 20.455,131.920 20.490 C 133.923 20.520,134.836 19.073,134.372 16.602 C 133.990 14.565,131.077 13.997,129.995 15.747 M58.722 16.030 C 60.474 18.328,57.704 21.630,55.703 19.629 C 54.905 18.831,54.947 16.321,55.769 15.635 C 56.753 14.814,57.913 14.970,58.722 16.030 M67.884 15.806 C 69.043 16.781,69.053 18.431,67.907 19.452 C 66.267 20.913,65.252 20.209,65.252 17.611 C 65.252 15.186,66.296 14.470,67.884 15.806 M77.984 15.230 C 77.984 15.291,78.057 15.530,78.145 15.761 C 78.282 16.117,78.043 16.180,76.554 16.180 C 74.842 16.180,74.812 16.169,75.265 15.672 C 75.670 15.229,77.984 14.853,77.984 15.230 M98.986 15.508 C 99.882 16.501,100.000 16.749,100.000 17.630 C 100.000 19.618,97.624 20.964,96.478 19.626 C 94.807 17.674,97.279 13.615,98.986 15.508 M109.120 15.462 C 109.818 15.972,109.814 19.239,109.115 19.768 C 106.951 21.407,104.861 17.610,106.960 15.856 C 107.926 15.049,108.430 14.957,109.120 15.462 M119.032 15.635 C 119.854 16.321,119.896 18.831,119.098 19.629 C 118.351 20.375,116.815 20.341,116.165 19.562 C 114.380 17.422,116.951 13.899,119.032 15.635 M133.437 15.716 C 134.160 16.583,134.142 18.909,133.407 19.644 C 131.785 21.265,129.085 18.843,130.157 16.728 C 131.029 15.008,132.474 14.562,133.437 15.716 M142.061 15.498 C 142.998 16.435,142.335 17.772,140.933 17.772 C 139.964 17.772,139.582 17.038,139.897 15.782 C 140.090 15.013,141.404 14.841,142.061 15.498 M221.751 15.572 C 220.028 16.202,219.409 19.733,220.838 20.774 C 223.013 22.357,224.536 21.394,224.536 18.435 C 224.536 15.835,223.616 14.890,221.751 15.572 M231.244 15.565 C 229.786 15.949,229.214 19.517,230.417 20.720 C 231.522 21.826,234.255 21.574,234.587 20.336 C 235.521 16.853,234.094 14.816,231.244 15.565 M269.591 15.648 C 267.052 16.672,267.836 21.098,270.612 21.411 C 272.514 21.625,273.210 20.801,273.210 18.334 C 273.210 15.780,271.820 14.748,269.591 15.648 M279.672 15.695 C 276.756 17.107,278.625 21.972,281.852 21.366 C 283.122 21.128,284.750 17.507,283.588 17.507 C 283.460 17.507,283.283 17.147,283.195 16.706 C 282.958 15.521,281.121 14.994,279.672 15.695 M290.716 15.572 C 288.121 16.520,288.582 20.950,291.322 21.395 C 292.873 21.647,293.634 20.673,293.634 18.435 C 293.634 16.010,292.517 14.914,290.716 15.572 M300.890 15.568 C 299.256 15.888,298.539 19.459,299.861 20.690 C 301.824 22.517,303.714 21.386,303.714 18.384 C 303.714 15.721,303.123 15.131,300.890 15.568 M223.725 16.505 C 224.768 17.994,223.964 20.955,222.516 20.955 C 219.987 20.955,219.937 16.003,222.465 15.937 C 223.056 15.922,223.437 16.093,223.725 16.505 M233.732 16.354 C 234.389 16.949,234.421 19.760,233.779 20.470 C 233.268 21.033,231.505 21.135,231.105 20.623 C 229.193 18.177,231.537 14.367,233.732 16.354 M272.194 16.354 C 272.900 16.993,272.886 19.890,272.175 20.533 C 271.339 21.289,269.724 21.010,269.245 20.027 C 267.970 17.408,270.238 14.584,272.194 16.354 M282.529 16.486 C 283.149 17.201,283.177 18.829,282.590 20.066 C 281.880 21.561,279.903 21.318,279.293 19.661 C 278.308 16.985,280.822 14.518,282.529 16.486 M292.618 16.354 C 293.275 16.949,293.307 19.760,292.664 20.470 C 291.421 21.844,289.655 20.649,289.655 18.435 C 289.655 16.229,291.246 15.112,292.618 16.354 M302.873 16.472 C 303.839 18.019,303.094 20.955,301.735 20.955 C 299.924 20.955,299.068 18.071,300.413 16.500 C 301.074 15.728,302.399 15.713,302.873 16.472 M34.947 16.363 C 34.407 16.504,34.031 17.692,34.407 18.067 C 35.002 18.663,39.382 18.223,39.477 17.558 C 39.650 16.334,37.365 15.731,34.947 16.363 M39.078 17.348 C 39.304 17.936,39.020 18.037,37.157 18.033 C 35.226 18.029,34.325 17.698,35.013 17.245 C 35.655 16.824,38.909 16.907,39.078 17.348 M309.468 19.306 C 308.385 20.503,309.402 21.730,311.187 21.378 C 312.150 21.188,313.085 20.149,312.946 19.422 C 312.812 18.718,310.083 18.627,309.468 19.306 M312.198 19.430 C 312.185 20.599,311.870 20.955,310.844 20.955 C 309.744 20.955,309.552 20.614,310.089 19.611 C 310.406 19.018,312.204 18.864,312.198 19.430 M155.880 19.540 C 155.659 19.761,155.648 21.300,155.864 21.862 C 156.286 22.962,158.621 22.024,158.621 20.754 C 158.621 19.695,156.613 18.807,155.880 19.540 M157.734 20.320 C 158.058 20.809,158.045 20.952,157.631 21.464 C 156.966 22.284,156.233 21.957,156.233 20.838 C 156.233 19.477,157.000 19.212,157.734 20.320 M139.307 22.026 C 138.168 23.088,138.935 23.873,141.114 23.873 C 142.684 23.873,143.501 23.471,143.501 22.698 C 143.501 21.532,140.375 21.031,139.307 22.026 M142.838 22.812 C 142.361 23.338,139.868 23.599,139.436 23.168 C 138.961 22.692,139.956 22.281,141.586 22.281 C 143.301 22.281,143.314 22.286,142.838 22.812 M13.528 29.810 C 13.528 30.028,13.647 30.281,13.793 30.371 C 13.939 30.462,14.058 30.356,14.058 30.137 C 14.058 29.919,13.939 29.666,13.793 29.576 C 13.647 29.485,13.528 29.591,13.528 29.810 M22.865 44.085 C 22.495 44.455,22.396 250.280,22.765 250.862 C 22.934 251.127,58.320 251.181,198.822 251.128 L 374.668 251.061 374.735 147.629 C 374.788 65.058,374.735 44.154,374.470 43.985 C 373.887 43.616,23.235 43.715,22.865 44.085 M374.205 147.546 L 374.271 250.928 198.674 250.928 L 23.077 250.928 23.077 147.657 C 23.077 90.858,23.157 44.306,23.254 44.208 C 23.351 44.111,102.340 44.061,198.784 44.098 L 374.138 44.164 374.205 147.546 M24.580 45.535 C 24.483 45.632,24.403 91.587,24.403 147.657 L 24.403 249.603 198.740 249.536 L 373.077 249.469 373.144 147.773 C 373.193 72.812,373.132 45.982,372.912 45.717 C 372.593 45.333,24.964 45.151,24.580 45.535 M372.613 147.546 L 372.680 249.337 198.674 249.337 L 24.668 249.337 24.668 147.635 C 24.668 66.521,24.736 45.906,25.000 45.799 C 25.182 45.725,103.455 45.685,198.939 45.710 L 372.546 45.756 372.613 147.546 M254.754 55.619 C 254.180 55.732,253.757 56.540,252.902 59.151 C 252.354 60.828,252.210 67.601,252.710 68.221 C 252.863 68.412,253.071 68.950,253.171 69.418 C 253.619 71.512,254.324 72.451,255.385 72.363 C 256.469 72.273,256.846 71.337,256.263 70.182 C 255.347 68.368,254.825 62.371,255.409 60.364 C 255.540 59.916,255.838 58.936,256.072 58.187 C 256.708 56.158,256.513 55.264,255.482 55.474 C 255.385 55.494,255.057 55.559,254.754 55.619 M289.191 55.625 C 288.554 55.748,288.407 56.421,288.840 57.232 C 289.807 59.040,290.384 63.793,289.943 66.313 C 289.474 68.990,289.122 70.400,288.857 70.665 C 288.449 71.074,288.547 72.074,289.014 72.253 C 290.409 72.788,291.504 71.906,291.932 69.905 C 292.026 69.461,292.239 68.931,292.405 68.726 C 293.001 67.988,292.774 60.335,292.097 58.372 C 291.121 55.543,290.866 55.302,289.191 55.625 M256.110 56.565 C 255.133 59.714,255.061 60.222,255.066 63.926 C 255.071 67.555,255.416 70.060,255.996 70.676 C 256.814 71.545,255.757 72.619,254.747 71.946 C 251.877 70.032,252.427 55.968,255.372 55.968 C 256.208 55.968,256.278 56.025,256.110 56.565 M291.074 56.830 C 292.517 60.085,292.943 65.958,291.943 68.833 C 290.818 72.071,290.496 72.455,289.295 71.994 C 288.997 71.879,288.952 71.688,289.123 71.264 C 290.815 67.064,290.810 60.759,289.112 56.565 C 288.666 55.462,290.582 55.721,291.074 56.830 M192.772 56.520 C 192.421 56.724,192.308 57.138,192.308 58.214 C 192.308 60.370,192.234 60.459,190.585 60.289 C 187.812 60.002,186.472 61.524,186.472 64.961 C 186.472 68.471,188.956 70.292,191.764 68.840 C 192.430 68.496,192.558 68.496,192.844 68.840 C 193.235 69.311,194.465 69.354,194.907 68.912 C 195.579 68.240,195.334 57.135,194.636 56.646 C 193.958 56.172,193.431 56.136,192.772 56.520 M194.402 56.864 C 194.614 57.119,194.684 58.974,194.634 63.031 L 194.562 68.833 193.923 68.923 C 193.540 68.977,193.190 68.845,193.048 68.592 C 192.755 68.069,192.074 68.063,191.395 68.576 C 190.716 69.089,189.268 69.072,188.457 68.540 C 185.245 66.436,186.855 59.858,190.407 60.574 C 190.869 60.667,191.605 60.816,192.042 60.905 L 192.838 61.068 192.838 58.938 C 192.838 56.850,192.946 56.579,193.800 56.520 C 193.965 56.508,194.236 56.663,194.402 56.864 M106.525 57.204 C 106.247 57.284,105.889 57.458,105.729 57.592 C 105.569 57.725,105.139 58.081,104.775 58.383 C 102.942 59.896,104.069 62.773,107.045 64.179 C 109.098 65.149,109.479 65.853,108.488 66.844 C 107.854 67.478,106.789 67.522,105.711 66.960 C 104.005 66.071,102.861 67.363,104.290 68.565 C 105.465 69.555,108.701 69.543,110.170 68.545 C 113.122 66.539,112.484 63.632,108.687 61.792 C 106.851 60.902,106.437 60.248,107.215 59.469 C 107.611 59.074,109.079 59.052,109.464 59.437 C 109.947 59.920,111.263 59.621,111.351 59.009 C 111.535 57.718,108.584 56.614,106.525 57.204 M164.876 57.378 C 163.476 58.402,164.652 67.514,166.290 68.338 C 166.619 68.503,167.021 68.772,167.184 68.935 C 167.649 69.400,171.237 69.303,172.228 68.799 C 174.388 67.701,174.801 66.529,174.801 61.500 L 174.801 57.548 174.127 57.241 C 173.671 57.033,173.222 57.015,172.735 57.186 L 172.016 57.438 171.883 61.766 L 171.751 66.094 171.006 66.734 C 168.648 68.761,167.374 66.915,167.374 61.472 C 167.374 58.865,167.274 57.565,167.056 57.347 C 166.634 56.926,165.472 56.942,164.876 57.378 M216.499 57.347 C 215.594 58.253,216.483 59.151,218.285 59.151 L 219.363 59.151 219.363 63.893 C 219.363 69.205,219.403 69.324,221.135 69.182 L 222.149 69.098 222.221 64.125 L 222.293 59.151 223.331 59.151 C 225.413 59.151,226.563 58.024,225.216 57.304 C 224.471 56.905,216.903 56.943,216.499 57.347 M260.610 57.239 C 258.898 57.846,257.623 59.635,257.955 60.964 C 258.322 62.435,260.657 64.456,261.990 64.456 C 262.146 64.456,262.478 64.769,262.729 65.152 C 263.642 66.545,262.085 67.836,260.364 67.112 C 258.899 66.496,257.970 66.607,257.877 67.410 C 257.570 70.053,263.854 69.932,265.504 67.263 C 266.781 65.197,265.107 61.811,262.804 61.802 C 261.982 61.799,260.923 60.588,261.105 59.860 C 261.298 59.093,262.950 58.812,263.577 59.439 C 264.103 59.965,265.112 59.612,265.198 58.872 C 265.351 57.558,262.536 56.556,260.610 57.239 M267.706 57.205 C 267.098 57.450,267.251 66.098,267.881 67.134 C 269.919 70.485,275.813 69.883,277.216 66.180 C 277.720 64.849,277.946 59.361,277.556 57.906 C 277.367 57.202,276.246 56.896,275.245 57.277 L 274.536 57.547 274.532 61.466 C 274.528 66.055,274.472 66.345,273.481 66.930 C 271.182 68.289,270.459 67.121,270.292 61.774 C 270.142 57.002,269.783 56.367,267.706 57.205 M278.979 57.316 C 277.748 58.033,278.849 59.151,280.786 59.151 L 281.698 59.151 281.698 63.873 C 281.698 69.085,281.741 69.231,283.289 69.231 C 284.837 69.231,284.881 69.085,284.881 63.873 L 284.881 59.151 285.743 59.125 C 287.704 59.065,288.562 58.347,287.788 57.414 C 287.403 56.950,279.753 56.865,278.979 57.316 M110.256 57.969 C 110.645 58.219,110.785 58.512,110.689 58.877 C 110.542 59.440,110.213 59.581,109.968 59.185 C 109.466 58.373,106.974 58.648,106.629 59.554 C 106.200 60.683,106.599 61.207,108.643 62.204 C 111.339 63.518,112.100 65.058,111.065 67.103 C 110.009 69.191,104.244 69.676,104.244 67.677 C 104.244 66.936,104.511 66.831,105.325 67.252 C 107.039 68.138,109.284 67.445,109.284 66.030 C 109.284 65.058,108.811 64.555,107.231 63.845 C 105.037 62.861,104.372 62.076,104.395 60.496 C 104.433 57.941,107.894 56.449,110.256 57.969 M166.865 57.560 C 167.003 57.560,167.109 59.392,167.109 61.776 L 167.109 65.992 167.878 66.815 C 169.302 68.339,171.463 67.702,172.101 65.571 C 172.273 64.997,172.414 62.972,172.414 61.072 C 172.414 57.392,172.543 57.047,173.777 57.439 C 174.335 57.616,174.527 64.493,174.024 66.249 C 173.061 69.606,166.965 69.928,165.423 66.703 C 165.069 65.962,164.892 64.813,164.789 62.586 C 164.585 58.145,164.896 57.066,166.268 57.459 C 166.463 57.514,166.731 57.560,166.865 57.560 M224.779 57.455 C 225.545 57.749,225.288 58.621,224.436 58.621 C 224.017 58.621,223.303 58.695,222.851 58.785 L 222.027 58.950 221.955 63.891 L 221.883 68.833 220.889 68.915 C 219.665 69.017,219.829 69.695,219.649 63.793 L 219.496 58.753 218.103 58.673 C 216.825 58.600,216.711 58.540,216.711 57.944 L 216.711 57.294 220.535 57.294 C 222.639 57.294,224.549 57.367,224.779 57.455 M264.390 57.977 C 264.718 58.192,264.987 58.604,264.987 58.892 C 264.987 59.457,264.470 59.589,264.019 59.139 C 263.526 58.645,261.622 58.728,261.024 59.269 C 259.915 60.273,260.563 61.215,263.208 62.443 C 265.627 63.566,266.348 65.202,265.225 67.019 C 264.090 68.856,260.843 69.591,258.952 68.438 C 257.534 67.573,257.936 66.476,259.395 67.231 C 260.631 67.869,262.236 67.762,263.009 66.988 C 264.148 65.849,263.602 64.785,261.389 63.831 C 257.328 62.081,257.205 58.950,261.141 57.518 C 261.872 57.251,263.669 57.505,264.390 57.977 M269.518 57.560 C 269.655 57.560,269.761 59.328,269.761 61.612 C 269.761 66.578,270.231 67.651,272.398 67.630 C 274.555 67.610,275.066 66.419,275.066 61.417 C 275.066 57.383,275.180 57.042,276.401 57.430 C 277.627 57.819,277.454 66.054,276.191 67.450 C 274.638 69.168,271.234 69.482,269.392 68.077 C 267.881 66.924,267.639 66.022,267.639 61.526 C 267.639 57.397,267.728 57.117,268.921 57.459 C 269.115 57.514,269.384 57.560,269.518 57.560 M287.214 57.465 C 288.336 57.765,287.800 58.474,286.337 58.625 C 284.268 58.840,284.350 58.622,284.350 63.936 L 284.350 68.690 283.688 68.856 C 282.257 69.215,282.228 69.117,282.228 63.927 L 282.228 59.138 281.548 58.879 C 281.174 58.737,280.457 58.621,279.956 58.621 C 279.022 58.621,278.600 57.784,279.377 57.470 C 279.857 57.276,286.494 57.272,287.214 57.465 M129.775 58.001 C 129.592 58.074,129.443 58.539,129.443 59.034 C 129.443 59.757,129.293 60.011,128.679 60.328 C 128.259 60.545,127.839 60.924,127.745 61.169 C 127.542 61.697,127.511 61.664,128.515 61.987 L 129.310 62.244 129.443 65.035 C 129.616 68.670,129.983 69.220,132.241 69.227 C 133.712 69.231,134.218 68.913,134.218 67.984 C 134.218 67.485,134.075 67.374,133.431 67.374 C 132.367 67.374,132.095 66.764,132.095 64.369 C 132.095 62.252,132.215 62.069,133.593 62.069 C 134.772 62.069,134.377 60.387,133.156 60.212 C 132.358 60.098,132.216 59.968,132.138 59.284 C 131.990 57.972,131.076 57.475,129.775 58.001 M242.493 58.143 C 242.318 58.318,242.175 58.855,242.175 59.337 C 242.175 60.016,242.064 60.212,241.677 60.212 C 240.488 60.212,240.288 61.952,241.458 62.118 C 242.009 62.197,242.050 62.364,242.175 65.033 C 242.341 68.582,242.770 69.233,244.940 69.227 C 247.040 69.220,248.198 67.615,246.240 67.425 C 244.979 67.303,244.796 66.897,244.883 64.416 L 244.960 62.202 246.019 62.069 C 247.796 61.846,247.537 60.212,245.723 60.212 C 244.859 60.212,244.828 60.176,244.828 59.180 C 244.828 58.483,244.691 58.095,244.408 57.986 C 243.732 57.727,242.837 57.800,242.493 58.143 M131.509 58.422 C 131.660 58.604,131.824 59.111,131.873 59.549 C 131.950 60.233,132.093 60.363,132.891 60.477 C 134.071 60.646,134.453 61.804,133.329 61.804 C 131.907 61.804,131.830 61.946,131.830 64.564 C 131.830 67.228,132.015 67.639,133.210 67.639 C 133.642 67.639,133.952 67.783,133.952 67.984 C 133.952 69.248,131.610 69.354,130.478 68.142 C 129.742 67.354,129.708 67.209,129.708 64.832 C 129.708 62.473,129.674 62.324,129.045 61.912 C 128.680 61.673,128.382 61.331,128.382 61.153 C 128.382 60.974,128.680 60.692,129.045 60.526 C 129.566 60.288,129.708 60.027,129.708 59.309 C 129.708 58.222,130.870 57.649,131.509 58.422 M244.143 58.251 C 244.412 58.355,244.562 58.737,244.562 59.321 C 244.562 60.237,244.635 60.304,245.955 60.593 C 247.130 60.850,246.941 61.750,245.690 61.854 L 244.695 61.936 244.618 64.417 C 244.533 67.171,244.722 67.639,245.921 67.639 C 246.371 67.639,246.684 67.781,246.684 67.984 C 246.684 69.119,244.499 69.341,243.317 68.326 C 242.606 67.716,242.567 67.559,242.440 64.812 C 242.314 62.078,242.278 61.932,241.711 61.852 C 240.900 61.736,240.941 60.907,241.777 60.526 C 242.293 60.291,242.440 60.025,242.440 59.334 C 242.440 58.107,242.940 57.790,244.143 58.251 M112.255 60.531 C 111.779 61.006,111.943 61.647,113.146 64.014 C 113.356 64.427,113.528 64.930,113.528 65.132 C 113.528 65.334,113.695 65.891,113.899 66.370 C 115.234 69.505,115.207 69.381,114.729 70.111 C 113.920 71.344,114.269 72.268,115.580 72.363 C 116.674 72.442,116.716 72.415,117.207 71.302 C 118.343 68.729,118.568 68.130,118.568 67.683 C 118.568 67.426,118.696 67.086,118.854 66.929 C 119.011 66.772,119.239 66.241,119.361 65.749 C 119.616 64.718,120.078 63.392,120.636 62.088 C 121.136 60.917,120.811 60.371,119.549 60.263 C 118.587 60.181,117.507 61.467,117.507 62.693 C 117.507 63.551,116.484 65.401,116.315 64.849 C 116.226 64.560,115.980 63.986,115.769 63.573 C 115.558 63.160,115.384 62.623,115.384 62.379 C 115.380 60.796,113.249 59.536,112.255 60.531 M122.475 60.885 C 120.471 62.247,121.117 64.394,123.939 65.747 C 125.273 66.386,125.389 66.547,124.881 67.056 C 124.439 67.497,123.573 67.453,122.858 66.952 C 122.045 66.383,121.485 66.653,121.485 67.616 C 121.485 69.431,125.141 69.964,126.914 68.408 C 128.856 66.703,127.295 63.395,124.549 63.395 C 124.008 63.395,124.017 62.437,124.560 62.229 C 124.792 62.140,125.383 62.257,125.873 62.490 C 126.946 62.999,127.321 62.821,127.321 61.803 C 127.321 60.143,124.386 59.587,122.475 60.885 M137.689 60.402 C 134.617 61.617,134.021 66.513,136.696 68.554 C 138.581 69.992,142.971 69.219,142.971 67.448 C 142.971 66.600,142.278 66.402,141.250 66.956 C 140.116 67.566,139.036 67.409,138.389 66.538 C 137.596 65.471,137.963 65.252,140.546 65.252 C 143.658 65.252,144.166 64.606,142.982 62.154 C 142.211 60.560,139.533 59.673,137.689 60.402 M145.146 60.531 C 144.650 61.026,144.706 68.534,145.208 68.951 C 146.778 70.254,147.679 68.965,147.719 65.363 C 147.744 63.061,147.776 62.938,148.426 62.590 C 149.700 61.908,149.983 62.419,150.133 65.678 C 150.282 68.940,150.390 69.231,151.453 69.231 C 153.012 69.231,153.050 69.155,153.050 66.078 C 153.050 63.571,153.111 63.196,153.584 62.791 C 155.020 61.561,155.703 62.691,155.703 66.300 C 155.703 69.090,156.498 69.980,158.090 68.970 C 158.699 68.584,158.643 63.047,158.018 61.886 C 157.104 60.188,155.068 59.673,153.460 60.732 C 152.683 61.245,152.669 61.245,151.837 60.731 C 150.849 60.120,148.758 60.033,148.212 60.580 C 147.902 60.889,147.743 60.891,147.198 60.589 C 146.388 60.140,145.560 60.117,145.146 60.531 M176.923 60.472 C 176.598 60.677,176.525 61.456,176.525 64.721 C 176.525 69.103,176.566 69.219,178.130 69.227 C 179.416 69.233,179.576 68.866,179.576 65.903 C 179.576 63.012,179.864 62.334,181.093 62.334 C 181.853 62.334,181.963 62.782,181.963 65.884 C 181.963 69.180,182.677 70.003,184.633 68.956 C 185.399 68.546,185.387 63.730,184.617 62.135 C 183.717 60.272,181.435 59.550,179.884 60.636 C 179.328 61.025,179.239 61.025,178.809 60.636 C 178.284 60.161,177.520 60.094,176.923 60.472 M198.173 61.017 C 196.056 62.550,195.820 66.573,197.747 68.287 C 199.703 70.029,204.244 69.464,204.244 67.479 C 204.244 66.622,203.569 66.392,202.648 66.936 C 201.589 67.562,200.614 67.481,199.836 66.703 C 198.758 65.626,199.098 65.399,202.011 65.252 L 204.642 65.119 204.722 63.872 C 204.926 60.702,200.982 58.982,198.173 61.017 M206.432 60.512 C 205.976 60.976,205.964 68.457,206.419 68.912 C 206.594 69.088,207.107 69.231,207.560 69.231 C 208.827 69.231,209.019 68.845,209.019 66.301 C 209.019 63.693,209.413 63.023,210.959 63.007 C 211.744 62.998,211.810 62.926,211.887 61.984 C 212.001 60.606,211.555 60.123,210.360 60.328 C 209.187 60.529,208.856 60.529,207.692 60.332 C 207.102 60.232,206.643 60.298,206.432 60.512 M226.329 60.989 C 223.727 62.873,223.687 66.897,226.253 68.634 C 227.504 69.481,230.439 69.490,231.576 68.650 C 233.072 67.544,232.297 66.016,230.703 66.931 C 229.232 67.775,227.781 67.308,227.544 65.915 C 227.461 65.426,227.618 65.379,229.576 65.318 C 232.686 65.220,232.891 65.144,232.891 64.086 C 232.891 60.737,229.128 58.961,226.329 60.989 M235.536 60.649 C 233.271 62.158,233.731 64.428,236.551 65.647 C 237.434 66.029,237.673 66.263,237.612 66.690 C 237.510 67.406,236.573 67.539,235.694 66.963 C 234.797 66.376,234.218 66.632,234.218 67.616 C 234.218 69.891,239.085 69.874,240.393 67.595 C 241.293 66.027,240.653 64.798,238.413 63.793 C 236.875 63.103,236.456 62.476,237.313 62.148 C 237.556 62.054,238.103 62.177,238.528 62.421 C 239.712 63.101,240.053 62.996,240.053 61.951 C 240.053 60.332,237.234 59.519,235.536 60.649 M114.616 61.406 C 114.872 61.844,115.089 62.378,115.100 62.594 C 115.138 63.355,116.286 65.792,116.563 65.699 C 116.717 65.648,117.044 65.079,117.288 64.434 C 117.533 63.790,117.959 62.666,118.235 61.936 C 118.749 60.579,119.343 60.204,120.150 60.726 C 120.485 60.942,120.455 61.209,119.933 62.650 C 119.600 63.571,119.227 64.682,119.103 65.119 C 118.980 65.557,118.624 66.572,118.312 67.374 C 118.000 68.176,117.558 69.370,117.331 70.027 C 116.671 71.929,116.495 72.149,115.632 72.149 C 114.630 72.149,114.367 71.535,114.947 70.553 C 115.624 69.406,115.477 68.558,114.157 66.007 C 113.957 65.620,113.793 65.076,113.793 64.800 C 113.793 64.523,113.683 64.184,113.549 64.045 C 113.176 63.660,112.232 60.800,112.417 60.615 C 112.858 60.175,114.174 60.648,114.616 61.406 M126.712 61.082 C 127.408 61.777,126.919 62.696,126.128 62.178 C 125.149 61.536,124.024 61.778,123.923 62.652 C 123.843 63.345,125.290 64.456,126.273 64.456 C 127.445 64.456,127.971 66.931,126.989 67.825 C 125.139 69.511,121.751 69.285,121.751 67.476 C 121.751 66.750,121.940 66.703,122.663 67.250 C 123.676 68.015,125.464 67.673,125.464 66.713 C 125.464 66.085,124.749 65.474,123.607 65.127 C 122.004 64.640,121.213 62.879,122.082 61.733 C 123.011 60.509,125.754 60.123,126.712 61.082 M141.414 61.059 C 142.512 61.677,143.111 62.919,142.930 64.203 C 142.841 64.832,142.758 64.857,140.465 64.932 C 137.697 65.022,137.322 65.213,137.713 66.335 C 138.174 67.658,140.290 68.134,141.608 67.211 C 142.279 66.741,142.890 67.040,142.633 67.712 C 141.868 69.705,136.621 69.112,135.795 66.940 C 134.241 62.852,137.861 59.063,141.414 61.059 M146.684 60.875 C 147.101 61.377,147.989 61.373,148.658 60.867 C 149.380 60.321,150.288 60.382,151.487 61.056 L 152.516 61.634 153.675 61.056 C 155.738 60.025,157.269 60.634,157.787 62.690 C 158.265 64.591,158.189 68.606,157.671 68.805 C 156.241 69.353,155.968 68.766,155.968 65.136 C 155.968 62.080,155.049 61.069,153.490 62.409 C 152.819 62.985,152.785 63.135,152.785 65.541 C 152.785 68.360,152.502 69.074,151.444 68.924 C 150.806 68.834,150.795 68.785,150.721 65.887 C 150.621 61.934,149.666 60.867,147.792 62.613 C 147.267 63.102,147.215 63.414,147.215 66.058 L 147.215 68.966 146.317 68.966 C 145.188 68.966,145.101 68.681,145.096 64.954 C 145.091 60.718,145.558 59.518,146.684 60.875 M178.786 61.020 L 179.077 61.562 180.007 60.987 C 181.116 60.302,182.676 60.398,183.543 61.205 C 185.247 62.793,185.025 69.172,183.274 68.924 C 182.644 68.835,182.624 68.762,182.560 66.313 C 182.445 61.910,181.741 60.909,179.870 62.483 C 179.074 63.153,179.062 63.202,178.988 65.998 L 178.912 68.833 178.117 68.833 L 177.321 68.833 177.247 64.999 C 177.206 62.890,177.232 61.010,177.305 60.821 C 177.510 60.288,178.463 60.416,178.786 61.020 M202.559 60.912 C 203.615 61.413,204.584 63.062,204.459 64.145 C 204.377 64.851,204.364 64.855,201.724 64.987 C 199.230 65.111,199.067 65.155,198.988 65.711 C 198.773 67.223,201.156 68.152,202.916 67.242 C 203.722 66.826,204.155 67.062,203.883 67.771 C 203.023 70.013,197.398 68.927,196.929 66.428 C 196.136 62.199,199.117 59.278,202.559 60.912 M208.308 60.871 C 208.973 61.218,209.127 61.214,209.698 60.840 C 210.731 60.164,211.671 60.546,211.671 61.641 C 211.671 62.478,211.609 62.538,210.606 62.672 C 208.883 62.904,208.507 63.591,208.497 66.529 L 208.488 68.999 207.626 68.916 L 206.764 68.833 206.690 64.874 C 206.605 60.309,206.714 60.040,208.308 60.871 M230.789 61.051 C 231.561 61.485,231.908 61.912,232.212 62.804 C 232.864 64.719,232.559 64.987,229.731 64.987 C 227.005 64.987,226.582 65.233,227.215 66.454 C 227.882 67.740,229.718 68.107,230.998 67.211 C 231.692 66.725,232.277 67.048,232.002 67.766 C 231.249 69.729,226.004 69.093,225.185 66.940 C 223.635 62.862,227.251 59.062,230.789 61.051 M239.005 60.882 C 239.693 61.238,240.268 62.878,239.589 62.547 C 239.479 62.493,239.070 62.289,238.680 62.093 C 237.640 61.570,236.605 61.903,236.605 62.760 C 236.605 63.336,236.848 63.547,238.196 64.143 C 240.049 64.962,240.632 65.975,240.054 67.371 C 239.444 68.845,236.302 69.532,234.998 68.476 C 234.277 67.892,234.448 66.922,235.214 67.254 C 236.097 67.637,237.410 67.696,237.802 67.371 C 238.690 66.634,237.922 65.526,236.230 65.102 C 234.835 64.751,233.996 62.772,234.814 61.761 C 235.843 60.489,237.553 60.131,239.005 60.882 M138.008 62.498 C 137.114 63.392,137.581 63.724,139.569 63.608 C 141.123 63.517,141.361 63.230,140.577 62.389 C 139.850 61.608,138.856 61.650,138.008 62.498 M189.535 62.479 C 188.067 63.947,188.860 67.639,190.643 67.639 C 191.771 67.639,193.072 65.424,192.734 64.079 C 192.251 62.151,190.659 61.355,189.535 62.479 M199.453 62.351 C 198.607 63.197,198.939 63.519,200.750 63.607 C 202.234 63.678,202.387 63.636,202.387 63.158 C 202.387 61.946,200.403 61.400,199.453 62.351 M227.570 62.351 C 226.717 63.204,227.050 63.528,228.780 63.528 C 230.498 63.528,230.778 63.259,229.967 62.389 C 229.283 61.655,228.281 61.639,227.570 62.351 M140.381 62.702 C 140.755 63.269,140.575 63.395,139.390 63.395 C 138.524 63.395,138.196 63.290,138.196 63.011 C 138.196 62.155,139.865 61.919,140.381 62.702 M191.532 62.753 C 192.726 64.024,192.065 67.374,190.621 67.374 C 189.208 67.374,188.596 64.353,189.705 62.854 C 190.416 61.892,190.708 61.876,191.532 62.753 M201.532 62.482 C 202.453 63.126,202.236 63.395,200.796 63.395 C 199.393 63.395,198.988 62.906,199.934 62.355 C 200.574 61.982,200.850 62.004,201.532 62.482 M229.770 62.702 C 230.145 63.269,229.965 63.395,228.780 63.395 C 227.914 63.395,227.586 63.290,227.586 63.011 C 227.586 62.155,229.255 61.919,229.770 62.702 M116.645 78.448 C 162.636 78.485,237.895 78.485,283.886 78.448 C 329.877 78.411,292.248 78.381,200.265 78.381 C 108.282 78.381,70.653 78.411,116.645 78.448 M33.810 80.172 C 33.740 80.355,33.715 114.403,33.752 155.836 L 33.821 231.167 33.886 155.659 C 33.939 95.550,34.020 80.123,34.284 80.017 C 34.544 79.912,34.542 79.878,34.275 79.862 C 34.089 79.850,33.879 79.990,33.810 80.172 M366.313 155.517 L 366.446 231.167 366.512 155.717 C 366.549 114.219,366.489 80.176,366.380 80.067 C 366.270 79.957,366.240 113.910,366.313 155.517 M39.918 153.448 C 39.918 189.775,39.949 204.596,39.987 186.385 C 40.024 168.173,40.024 138.452,39.987 120.337 C 39.949 102.222,39.918 117.122,39.918 153.448 M86.337 153.448 C 86.337 189.775,86.368 204.596,86.406 186.385 C 86.443 168.173,86.443 138.452,86.406 120.337 C 86.368 102.222,86.337 117.122,86.337 153.448 M203.921 167.931 C 203.840 175.468,203.832 175.414,204.907 175.286 L 205.646 175.199 205.592 168.899 L 205.538 162.599 225.448 162.599 L 245.358 162.599 245.358 168.982 L 245.358 175.365 246.220 175.282 C 246.844 175.222,247.076 175.070,247.060 174.735 C 247.048 174.479,247.018 171.286,246.994 167.639 L 246.950 161.008 225.473 161.008 L 203.996 161.008 203.921 167.931 M246.684 168.037 C 246.684 174.603,246.669 174.801,246.159 174.801 C 245.652 174.801,245.631 174.581,245.562 168.634 L 245.491 162.467 225.464 162.467 L 205.438 162.467 205.366 168.634 C 205.298 174.581,205.277 174.801,204.770 174.801 C 204.259 174.801,204.244 174.603,204.244 168.037 L 204.244 161.273 225.464 161.273 L 246.684 161.273 246.684 168.037 M208.001 177.122 L 207.958 179.045 205.072 179.045 C 202.831 179.045,202.113 178.956,201.857 178.647 C 201.414 178.113,125.520 178.035,124.987 178.568 C 124.649 178.905,124.497 215.160,124.829 216.026 C 124.976 216.408,134.066 216.446,225.196 216.446 L 325.402 216.446 325.562 215.849 C 325.904 214.575,325.747 179.170,325.398 178.698 C 324.915 178.045,249.653 177.991,249.175 178.643 C 248.752 179.220,243.716 179.225,243.238 178.649 C 242.953 178.307,240.572 178.244,225.632 178.185 L 208.355 178.117 208.200 176.658 L 208.044 175.199 208.001 177.122 M200.928 179.310 C 200.928 179.662,196.613 179.716,163.952 179.775 C 137.160 179.824,126.877 179.924,126.618 180.140 C 126.122 180.551,126.084 214.306,126.578 214.801 C 127.214 215.437,323.523 215.243,323.863 214.606 C 324.293 213.803,324.238 180.874,323.806 180.289 C 323.498 179.871,320.911 179.835,286.870 179.774 C 254.539 179.716,250.265 179.662,250.265 179.310 C 250.265 178.959,254.634 178.905,287.727 178.845 L 325.188 178.778 325.333 179.376 C 325.413 179.704,325.445 188.031,325.405 197.878 L 325.332 215.782 225.729 215.855 C 170.948 215.895,125.859 215.863,125.531 215.783 L 124.934 215.640 124.934 197.365 C 124.934 182.993,125.005 179.061,125.265 178.955 C 126.222 178.568,200.928 178.919,200.928 179.310 M242.308 179.310 C 242.308 179.659,240.236 179.717,225.531 179.777 C 208.866 179.844,208.753 179.841,208.753 179.310 C 208.753 178.779,208.866 178.776,225.531 178.844 C 240.236 178.904,242.308 178.962,242.308 179.310 M323.712 180.791 C 323.922 181.339,323.922 213.621,323.712 214.169 C 323.499 214.724,127.397 214.824,126.844 214.271 C 126.257 213.684,126.398 181.002,126.989 180.658 C 127.865 180.148,323.516 180.280,323.712 180.791 M180.239 192.508 C 179.410 193.230,178.780 194.346,178.780 195.089 C 178.780 195.555,178.572 195.862,178.117 196.069 C 177.682 196.268,177.454 196.587,177.454 196.999 C 177.454 197.424,177.667 197.707,178.117 197.878 C 178.775 198.128,178.780 198.153,178.780 201.447 C 178.780 204.727,178.787 204.766,179.416 204.924 C 181.209 205.374,181.292 205.232,181.375 201.602 C 181.457 197.973,181.496 197.889,183.090 197.882 L 184.085 197.878 184.085 201.161 C 184.085 204.824,184.218 205.136,185.725 204.992 L 186.605 204.907 186.737 201.459 L 186.870 198.011 188.196 198.011 L 189.523 198.011 189.655 201.459 L 189.788 204.907 190.981 204.907 L 192.175 204.907 192.175 200.531 L 192.175 196.154 189.525 196.021 C 187.437 195.917,186.859 195.803,186.799 195.486 C 186.577 194.319,189.130 193.184,189.677 194.206 C 190.200 195.182,192.154 194.786,192.259 193.683 C 192.306 193.199,192.202 192.632,192.028 192.423 C 191.486 191.770,189.655 192.010,189.655 192.734 C 189.655 193.234,189.486 193.200,188.859 192.573 C 187.362 191.075,184.587 192.464,184.222 194.894 L 184.052 196.021 182.867 196.021 C 182.074 196.021,181.632 195.893,181.533 195.636 C 181.314 195.066,182.138 194.048,182.825 194.039 C 183.329 194.033,183.422 193.887,183.422 193.103 L 183.422 192.175 182.095 192.110 C 181.143 192.064,180.620 192.176,180.239 192.508 M182.870 192.469 C 183.508 192.714,183.427 193.885,182.783 193.717 C 182.051 193.526,181.115 194.555,181.217 195.440 C 181.351 196.600,184.091 196.531,184.446 195.358 C 184.992 193.554,185.203 193.184,185.928 192.756 C 186.888 192.189,187.754 192.185,188.374 192.747 C 189.040 193.349,188.982 193.634,188.196 193.634 C 187.274 193.634,186.420 194.555,186.522 195.440 C 186.605 196.152,186.613 196.154,189.257 196.286 L 191.910 196.419 191.910 200.531 L 191.910 204.642 190.981 204.642 L 190.053 204.642 189.920 201.194 L 189.788 197.745 188.196 197.745 L 186.605 197.745 186.472 201.194 C 186.342 204.574,186.327 204.644,185.712 204.731 C 184.665 204.879,184.490 204.397,184.350 200.983 L 184.218 197.745 182.759 197.745 L 181.300 197.745 181.225 201.139 C 181.145 204.797,181.056 205.004,179.708 204.665 L 179.045 204.499 179.045 201.164 C 179.045 198.051,179.010 197.819,178.515 197.690 C 177.855 197.517,177.821 196.658,178.459 196.316 C 178.723 196.175,179.086 195.469,179.276 194.728 C 179.748 192.886,181.343 191.883,182.870 192.469 M191.732 192.539 C 192.536 193.049,191.985 194.291,190.915 194.379 C 189.945 194.460,189.920 194.440,189.920 193.562 C 189.920 192.323,190.698 191.884,191.732 192.539 M153.683 193.221 C 153.311 194.189,153.686 194.559,155.175 194.695 L 156.631 194.828 156.764 199.867 L 156.897 204.907 158.025 204.989 C 159.562 205.100,159.682 204.691,159.682 199.348 C 159.682 194.534,159.617 194.695,161.551 194.695 C 162.835 194.695,163.535 193.790,162.715 193.191 C 161.988 192.659,153.888 192.686,153.683 193.221 M209.024 193.557 C 205.481 195.360,204.619 201.092,207.527 203.521 C 209.541 205.205,213.749 205.598,215.605 204.276 L 216.446 203.677 216.446 200.943 C 216.446 197.557,216.455 197.567,213.355 197.668 L 211.008 197.745 211.008 198.541 C 211.008 199.288,211.078 199.342,212.135 199.418 L 213.263 199.500 213.263 201.188 C 213.263 203.229,212.552 203.646,210.698 202.694 C 206.341 200.458,209.365 193.337,213.930 195.081 C 215.493 195.677,216.294 195.551,216.379 194.695 C 216.562 192.863,211.828 192.131,209.024 193.557 M162.151 193.253 C 163.000 193.579,162.330 194.430,161.225 194.430 C 159.130 194.430,159.151 194.375,159.151 199.752 C 159.151 204.925,159.122 205.024,157.692 204.665 L 157.029 204.499 157.029 199.625 C 157.029 194.168,157.130 194.430,155.018 194.430 C 153.884 194.430,153.415 193.888,154.023 193.280 C 154.237 193.066,161.599 193.042,162.151 193.253 M214.361 193.375 C 215.575 193.712,216.103 194.282,215.677 194.795 C 215.420 195.104,215.203 195.100,214.252 194.770 C 213.582 194.537,212.603 194.430,211.821 194.503 C 206.940 194.962,207.300 203.448,212.200 203.448 C 213.444 203.448,213.828 202.828,213.739 200.964 L 213.660 199.337 212.467 199.204 C 211.494 199.096,211.273 198.973,211.273 198.541 C 211.273 198.052,211.450 198.011,213.528 198.011 L 215.782 198.011 215.858 200.851 L 215.933 203.691 215.151 204.095 C 210.872 206.308,206.357 203.686,206.375 198.999 C 206.392 194.581,209.874 192.128,214.361 193.375 M263.448 193.952 C 263.273 194.127,263.130 194.608,263.130 195.020 C 263.130 195.575,262.958 195.834,262.467 196.021 C 261.565 196.364,261.545 197.528,262.436 197.866 C 263.038 198.095,263.074 198.243,263.173 200.940 C 263.301 204.385,263.761 205.040,266.056 205.040 C 268.162 205.040,268.976 203.355,266.976 203.137 L 266.180 203.050 266.104 200.464 L 266.029 197.878 266.680 197.878 C 267.651 197.878,268.170 197.610,268.170 197.107 C 268.170 196.445,267.632 196.021,266.790 196.021 C 266.120 196.021,266.048 195.932,266.048 195.102 C 266.048 193.815,264.341 193.060,263.448 193.952 M265.098 194.060 C 265.332 194.150,265.519 194.531,265.521 194.922 C 265.527 195.906,265.797 196.225,266.712 196.329 C 267.751 196.447,267.855 197.432,266.844 197.572 C 264.885 197.843,264.879 203.448,266.837 203.448 C 267.724 203.448,267.815 203.637,267.282 204.366 C 266.996 204.757,266.699 204.825,265.802 204.705 C 263.891 204.448,263.660 204.044,263.660 200.940 C 263.660 198.165,263.476 197.613,262.546 197.613 C 261.786 197.613,261.965 196.630,262.798 196.232 C 263.255 196.014,263.558 195.636,263.607 195.223 C 263.769 193.878,264.050 193.658,265.098 194.060 M163.183 196.340 C 162.965 196.558,162.865 197.872,162.865 200.531 C 162.865 204.791,162.949 205.040,164.383 205.040 C 165.518 205.040,165.782 204.392,165.782 201.615 C 165.782 199.261,166.085 198.774,167.639 198.628 C 168.656 198.533,169.112 197.235,168.421 196.402 C 168.071 195.980,166.431 195.881,166.192 196.267 C 166.099 196.418,165.710 196.418,165.184 196.267 C 164.043 195.940,163.565 195.957,163.183 196.340 M170.093 196.582 C 168.421 197.653,169.202 199.165,170.988 198.313 C 172.179 197.746,173.022 197.762,173.567 198.364 C 174.161 199.020,173.892 199.204,172.344 199.204 C 168.863 199.204,167.217 202.940,169.980 204.572 C 170.774 205.041,175.623 205.128,176.326 204.686 C 176.733 204.431,176.792 198.797,176.399 197.763 C 175.755 196.068,171.995 195.364,170.093 196.582 M195.566 196.576 C 192.813 198.340,192.856 202.799,195.643 204.521 C 197.483 205.659,200.796 204.841,200.796 203.248 C 200.796 202.426,200.181 202.241,199.120 202.744 C 197.507 203.510,196.552 202.686,196.552 200.531 C 196.552 198.347,197.652 197.401,199.158 198.291 C 200.649 199.171,201.472 197.810,200.182 196.598 C 199.334 195.801,196.795 195.789,195.566 196.576 M219.847 196.493 C 217.230 198.219,216.953 202.361,219.334 204.177 C 221.443 205.785,225.897 205.112,225.678 203.219 C 225.579 202.368,224.694 202.153,223.818 202.767 C 222.699 203.551,220.690 202.850,220.690 201.677 C 220.690 201.104,220.794 201.077,223.276 201.004 L 225.862 200.928 225.945 199.616 C 226.132 196.660,222.452 194.775,219.847 196.493 M227.918 196.197 C 227.672 196.296,227.586 197.422,227.586 200.548 L 227.586 204.764 228.287 204.940 C 230.044 205.381,230.364 204.921,230.446 201.823 C 230.587 196.565,232.891 196.088,232.891 201.317 C 232.891 204.889,233.606 205.812,235.561 204.765 C 236.798 204.103,236.102 197.723,234.661 196.520 C 233.906 195.890,231.657 195.854,230.794 196.458 C 230.215 196.863,230.153 196.863,229.926 196.458 C 229.693 196.041,228.643 195.904,227.918 196.197 M239.224 196.668 C 237.040 198.152,236.670 202.046,238.536 203.912 C 240.388 205.764,245.225 205.312,245.225 203.288 C 245.225 202.333,244.567 202.159,243.378 202.799 C 242.131 203.471,240.482 202.893,240.276 201.713 C 240.193 201.233,240.387 201.184,242.838 201.061 L 245.491 200.928 245.555 199.469 C 245.689 196.441,241.976 194.798,239.224 196.668 M247.546 196.197 C 247.301 196.296,247.215 197.422,247.215 200.548 L 247.215 204.764 247.915 204.940 C 249.636 205.372,249.992 204.896,250.076 202.050 C 250.156 199.336,250.702 198.327,251.853 198.768 C 252.072 198.852,252.399 198.762,252.581 198.568 C 252.827 198.303,253.102 198.281,253.672 198.480 C 254.253 198.683,254.647 198.643,255.342 198.312 C 256.544 197.738,257.479 197.762,257.806 198.374 C 258.178 199.068,257.937 199.204,256.341 199.204 C 253.912 199.204,252.576 200.989,253.217 203.379 C 253.563 204.672,256.414 205.530,257.836 204.768 C 258.192 204.578,258.491 204.590,258.840 204.807 C 260.896 206.091,261.887 202.759,260.759 198.352 C 260.160 196.014,256.147 195.064,254.000 196.753 C 253.052 197.499,252.843 197.498,252.737 196.751 C 252.630 195.998,251.191 195.788,250.271 196.391 C 249.731 196.745,249.632 196.747,249.502 196.409 C 249.359 196.035,248.247 195.914,247.546 196.197 M270.257 196.889 C 268.966 197.873,268.764 198.384,268.727 200.764 C 268.656 205.312,274.306 206.858,276.981 203.023 C 279.979 198.723,274.457 193.685,270.257 196.889 M279.363 196.340 C 278.919 196.784,278.919 204.277,279.363 204.721 C 279.538 204.897,280.052 205.040,280.504 205.040 C 281.770 205.040,281.963 204.654,281.963 202.115 C 281.963 199.589,282.594 198.430,283.797 198.745 C 284.545 198.940,284.929 198.354,284.831 197.167 C 284.742 196.078,283.251 195.548,282.359 196.288 C 282.098 196.504,281.848 196.509,281.467 196.305 C 280.763 195.928,279.758 195.945,279.363 196.340 M164.868 196.736 C 165.292 197.160,165.365 197.160,166.102 196.736 C 167.194 196.110,167.864 196.173,168.210 196.933 C 168.653 197.904,168.332 198.408,167.269 198.408 C 165.715 198.408,165.252 199.299,165.252 202.290 L 165.252 204.775 164.357 204.775 C 163.258 204.775,163.130 204.332,163.130 200.531 C 163.130 196.405,163.572 195.440,164.868 196.736 M174.969 196.839 C 176.102 197.539,176.260 198.137,176.260 201.724 L 176.260 204.642 175.464 204.564 C 174.021 204.422,173.354 204.438,172.382 204.637 C 170.249 205.072,168.305 202.923,169.245 201.167 C 169.742 200.238,171.345 199.469,172.785 199.469 C 174.186 199.469,174.474 199.156,173.889 198.264 C 173.373 197.476,171.575 197.354,170.594 198.041 C 169.925 198.510,169.311 198.212,169.568 197.544 C 170.031 196.336,173.437 195.892,174.969 196.839 M199.469 196.629 C 199.834 196.812,200.171 197.228,200.217 197.553 C 200.315 198.230,200.215 198.255,199.064 197.839 C 197.322 197.209,196.021 198.360,196.021 200.531 C 196.021 202.644,197.636 204.022,199.159 203.207 C 200.622 202.424,201.056 203.346,199.637 204.222 C 196.289 206.292,192.674 202.326,194.415 198.492 C 195.241 196.671,197.733 195.753,199.469 196.629 M223.697 196.535 C 224.961 197.016,225.729 198.150,225.729 199.533 L 225.729 200.796 223.077 200.796 C 221.149 200.796,220.416 200.886,220.393 201.127 C 220.219 202.964,222.333 204.041,224.200 203.067 C 224.650 202.832,224.986 202.787,225.085 202.949 C 225.886 204.245,222.289 205.307,220.298 204.362 C 215.618 202.141,218.852 194.693,223.697 196.535 M229.612 196.684 C 229.805 197.186,230.483 197.182,231.151 196.676 C 231.844 196.152,233.299 196.184,234.247 196.744 C 235.264 197.345,235.540 198.421,235.542 201.785 L 235.544 204.499 234.839 204.676 C 233.712 204.959,233.422 204.274,233.422 201.335 C 233.422 197.702,232.472 196.645,230.717 198.325 C 229.997 199.016,229.973 199.123,229.973 201.769 C 229.973 204.583,229.548 205.362,228.397 204.651 C 228.088 204.460,227.991 196.766,228.294 196.463 C 228.617 196.140,229.457 196.281,229.612 196.684 M243.604 196.724 C 244.733 197.262,245.434 198.496,245.315 199.735 L 245.225 200.663 242.708 200.740 C 239.981 200.824,239.639 200.964,239.876 201.906 C 240.203 203.209,242.278 203.820,243.765 203.051 C 244.582 202.629,245.003 202.873,244.722 203.606 C 244.317 204.662,241.555 205.079,239.853 204.342 C 238.256 203.650,237.798 202.829,237.798 200.657 C 237.798 197.200,240.610 195.296,243.604 196.724 M249.360 196.705 C 249.782 197.087,249.882 197.085,250.493 196.685 C 251.603 195.957,252.373 196.241,252.470 197.414 C 252.549 198.376,252.524 198.408,251.691 198.408 C 250.055 198.408,249.602 199.194,249.602 202.031 C 249.602 204.566,249.138 205.338,248.026 204.651 C 247.717 204.460,247.620 196.766,247.922 196.463 C 248.226 196.159,248.878 196.269,249.360 196.705 M259.304 196.830 C 260.362 197.483,260.549 198.363,260.427 202.119 C 260.338 204.834,259.981 205.368,258.906 204.395 C 258.482 204.011,258.359 204.009,257.666 204.370 C 255.361 205.572,252.706 203.666,253.444 201.339 C 253.723 200.462,255.512 199.470,256.825 199.465 C 258.465 199.460,258.829 199.164,258.262 198.298 C 257.740 197.503,256.323 197.362,255.125 197.987 C 254.338 198.397,254.111 198.301,254.111 197.556 C 254.111 196.355,257.720 195.850,259.304 196.830 M275.397 196.841 C 279.008 198.595,277.570 204.321,273.419 204.720 C 269.006 205.144,267.082 199.382,270.818 196.930 C 272.037 196.130,273.861 196.094,275.397 196.841 M281.367 196.695 C 281.893 197.064,282.013 197.062,282.604 196.674 C 283.699 195.957,284.469 196.247,284.565 197.414 C 284.646 198.390,284.630 198.408,283.715 198.408 C 281.997 198.408,281.432 199.325,281.432 202.118 C 281.432 204.622,281.286 204.929,280.224 204.662 L 279.576 204.499 279.576 200.570 C 279.576 198.408,279.655 196.561,279.752 196.463 C 280.051 196.165,280.754 196.266,281.367 196.695 M220.863 198.098 C 219.994 199.059,220.289 199.469,221.851 199.469 C 223.625 199.469,224.184 198.985,223.360 198.161 C 222.682 197.483,221.448 197.451,220.863 198.098 M240.377 198.214 C 239.529 199.116,239.958 199.516,241.667 199.418 C 243.229 199.329,243.637 198.848,242.832 198.043 C 242.216 197.426,241.040 197.508,240.377 198.214 M271.737 198.158 C 270.875 199.110,270.858 201.917,271.709 202.767 C 273.262 204.320,275.332 202.932,275.332 200.337 C 275.332 198.072,273.061 196.695,271.737 198.158 M222.857 198.317 C 223.623 199.010,223.439 199.204,222.016 199.204 C 220.575 199.204,220.463 199.098,221.129 198.363 C 221.673 197.761,222.227 197.746,222.857 198.317 M242.486 198.317 C 243.252 199.010,243.068 199.204,241.645 199.204 C 240.204 199.204,240.092 199.098,240.757 198.363 C 241.302 197.761,241.855 197.746,242.486 198.317 M273.899 198.081 C 275.273 198.998,274.960 202.579,273.465 203.054 C 272.126 203.478,271.067 201.674,271.489 199.689 C 271.809 198.186,272.933 197.436,273.899 198.081 M171.518 201.199 C 170.637 202.080,171.227 203.448,172.488 203.448 C 173.204 203.448,174.323 202.236,174.228 201.563 C 174.113 200.750,172.221 200.496,171.518 201.199 M255.712 201.309 C 254.754 203.100,256.571 204.256,257.970 202.746 C 259.132 201.493,258.744 200.796,256.884 200.796 C 256.268 200.796,255.901 200.957,255.712 201.309 M173.919 201.484 C 174.072 201.883,172.900 203.183,172.388 203.183 C 171.778 203.183,171.361 202.023,171.797 201.540 C 172.339 200.942,173.697 200.906,173.919 201.484 M257.999 201.472 C 258.150 201.863,257.175 203.183,256.737 203.183 C 256.463 203.183,255.703 202.403,255.703 202.122 C 255.703 201.241,257.694 200.677,257.999 201.472 M51.658 219.828 C 57.968 219.867,68.292 219.867,74.602 219.828 C 80.912 219.788,75.749 219.755,63.130 219.755 C 50.511 219.755,45.348 219.788,51.658 219.828 M104.591 229.310 C 104.593 230.186,104.642 230.512,104.702 230.035 C 104.761 229.558,104.759 228.842,104.699 228.444 C 104.638 228.045,104.590 228.435,104.591 229.310 M103.025 232.095 C 103.025 234.357,103.065 235.282,103.115 234.151 C 103.165 233.021,103.165 231.170,103.115 230.040 C 103.065 228.909,103.025 229.834,103.025 232.095 M44.885 229.241 C 44.708 229.454,44.559 231.151,44.510 233.498 L 44.430 237.401 48.276 237.397 C 50.391 237.394,51.977 237.300,51.800 237.188 C 51.591 237.055,51.452 236.019,51.402 234.208 C 51.327 231.444,51.323 231.432,50.663 231.432 C 50.004 231.432,49.999 231.450,49.867 234.350 C 49.794 235.955,49.658 237.006,49.565 236.686 C 49.421 236.195,49.171 236.091,47.973 236.023 L 46.552 235.942 46.419 232.493 C 46.281 228.911,45.874 228.049,44.885 229.241 M49.920 229.231 C 49.128 230.023,50.007 231.262,50.988 230.737 C 51.770 230.319,51.417 228.912,50.531 228.912 C 50.370 228.912,50.095 229.056,49.920 229.231 M75.243 229.089 C 75.146 229.187,75.066 231.027,75.066 233.179 C 75.066 236.060,74.979 237.126,74.735 237.225 C 74.552 237.298,74.940 237.368,75.597 237.380 L 76.790 237.402 76.703 235.412 L 76.616 233.422 78.117 233.422 L 79.618 233.422 79.530 235.412 L 79.443 237.402 80.504 237.402 L 81.565 237.402 81.432 233.384 C 81.321 230.017,81.228 229.321,80.858 229.089 C 80.103 228.614,79.576 229.325,79.576 230.816 L 79.576 232.123 78.183 232.043 L 76.790 231.963 76.706 230.774 C 76.596 229.233,75.901 228.432,75.243 229.089 M50.928 229.989 C 50.928 230.272,50.749 230.504,50.531 230.504 C 50.137 230.504,49.974 229.690,50.302 229.362 C 50.579 229.085,50.928 229.435,50.928 229.989 M76.178 230.902 L 76.260 232.228 78.117 232.228 L 79.973 232.228 80.106 230.769 C 80.179 229.967,80.358 229.340,80.504 229.377 C 80.919 229.480,80.854 236.665,80.438 236.804 C 80.195 236.884,80.106 236.458,80.106 235.221 C 80.106 233.233,79.854 232.890,78.395 232.895 C 76.228 232.902,76.127 232.997,76.127 235.044 C 76.127 236.490,76.045 236.870,75.729 236.870 C 75.309 236.870,75.105 229.758,75.513 229.350 C 75.853 229.010,76.095 229.575,76.178 230.902 M46.212 232.825 L 46.286 236.207 47.546 236.288 C 49.500 236.413,49.031 236.870,46.950 236.870 L 45.093 236.870 45.093 233.156 C 45.093 229.639,45.120 229.443,45.615 229.443 C 46.104 229.443,46.143 229.662,46.212 232.825 M94.496 229.881 C 94.314 229.956,94.164 230.233,94.164 230.496 C 94.164 231.063,92.945 231.953,92.704 231.562 C 92.436 231.130,90.010 231.248,89.541 231.717 C 88.539 232.719,89.447 234.717,90.915 234.739 C 92.253 234.759,91.671 236.035,90.283 236.126 C 89.356 236.187,88.956 236.354,88.659 236.804 L 88.264 237.401 90.551 237.401 C 92.638 237.401,92.838 237.356,92.838 236.886 C 92.838 236.603,92.958 236.297,93.103 236.207 C 93.934 235.694,92.756 233.687,91.625 233.687 C 91.341 233.687,90.960 233.448,90.778 233.156 C 90.473 232.669,90.513 232.626,91.262 232.626 C 91.710 232.626,92.278 232.521,92.524 232.392 C 93.605 231.826,94.164 232.486,94.164 234.326 C 94.164 235.270,94.284 236.117,94.430 236.207 C 94.576 236.297,94.695 236.603,94.695 236.886 C 94.695 237.331,94.886 237.401,96.117 237.401 C 97.745 237.401,98.155 236.204,96.590 236.023 C 95.926 235.946,95.884 235.854,95.810 234.308 L 95.732 232.673 96.554 232.493 C 97.544 232.275,97.548 231.535,96.560 231.302 C 96.154 231.206,95.850 230.902,95.754 230.496 C 95.601 229.848,95.132 229.619,94.496 229.881 M95.491 230.778 C 95.491 231.074,95.670 231.372,95.889 231.441 C 97.191 231.847,97.222 231.896,96.341 232.140 L 95.468 232.382 95.546 234.294 C 95.621 236.162,95.641 236.209,96.353 236.291 C 97.459 236.418,97.225 236.870,96.052 236.870 C 94.852 236.870,94.704 236.575,94.699 234.166 C 94.696 232.936,94.592 232.584,94.139 232.266 L 93.582 231.877 94.139 231.579 C 94.445 231.415,94.695 231.047,94.695 230.760 C 94.695 230.473,94.874 230.239,95.093 230.239 C 95.316 230.239,95.491 230.475,95.491 230.778 M35.544 231.300 L 34.350 231.485 35.462 231.525 C 36.073 231.547,36.647 231.446,36.737 231.300 C 36.828 231.154,36.864 231.052,36.819 231.074 C 36.774 231.096,36.200 231.198,35.544 231.300 M52.942 231.660 C 52.646 231.886,52.526 232.653,52.466 234.682 L 52.387 237.402 53.382 237.401 L 54.377 237.401 54.377 235.374 C 54.377 233.260,54.681 232.655,55.753 232.634 C 56.282 232.624,56.610 234.281,56.458 236.192 L 56.362 237.401 57.293 237.401 L 58.223 237.401 58.132 234.947 C 58.011 231.680,57.690 231.291,55.139 231.330 C 54.148 231.345,53.160 231.494,52.942 231.660 M59.593 231.477 C 59.300 231.770,59.391 236.293,59.695 236.480 C 59.885 236.598,59.874 236.770,59.662 237.026 C 59.398 237.344,59.746 237.401,61.970 237.401 L 64.589 237.402 64.456 234.417 C 64.333 231.653,64.284 231.432,63.793 231.432 C 63.327 231.432,63.253 231.636,63.183 233.120 C 63.007 236.849,61.008 237.191,61.008 233.492 C 61.008 231.706,60.330 230.740,59.593 231.477 M65.665 231.541 C 65.463 231.867,65.754 232.594,66.468 233.554 C 66.919 234.161,66.987 234.426,66.753 234.669 C 66.144 235.301,65.832 235.740,65.406 236.563 L 64.973 237.401 66.339 237.401 C 67.390 237.401,67.646 237.324,67.450 237.069 C 67.284 236.853,67.304 236.529,67.508 236.140 C 67.865 235.460,68.700 236.033,68.700 236.957 C 68.700 237.298,68.947 237.401,69.761 237.401 C 70.859 237.401,71.290 236.665,70.491 236.154 C 69.672 235.630,69.118 233.986,69.587 233.468 C 69.829 233.201,70.027 232.852,70.027 232.694 C 70.027 232.535,70.167 232.358,70.339 232.301 C 70.825 232.139,70.373 231.300,69.799 231.300 C 69.520 231.300,69.008 231.657,68.664 232.093 C 67.979 232.960,67.639 233.099,67.639 232.512 C 67.639 231.653,66.072 230.882,65.665 231.541 M83.076 232.174 C 82.092 233.190,81.845 235.426,82.644 236.090 C 82.873 236.280,83.004 236.652,82.935 236.918 C 82.820 237.356,83.012 237.401,85.038 237.401 C 86.928 237.401,87.268 237.334,87.268 236.966 C 87.268 236.726,87.467 236.385,87.710 236.207 C 88.456 235.662,88.323 232.840,87.511 231.984 C 86.479 230.897,84.220 230.994,83.076 232.174 M170.336 231.499 C 206.177 231.536,264.903 231.536,300.840 231.499 C 336.777 231.462,307.454 231.431,235.676 231.431 C 163.899 231.431,134.496 231.462,170.336 231.499 M50.928 234.388 C 50.928 236.291,50.847 236.887,50.597 236.804 C 50.254 236.691,49.969 232.640,50.252 231.902 C 50.618 230.947,50.928 232.087,50.928 234.388 M54.435 232.953 C 54.273 233.149,54.103 234.071,54.059 235.002 C 54.009 236.060,53.854 236.736,53.647 236.805 C 53.285 236.924,53.145 232.090,53.500 231.734 C 53.853 231.381,54.760 232.562,54.435 232.953 M57.162 232.095 C 57.254 232.387,57.441 232.626,57.578 232.626 C 57.714 232.626,57.825 233.591,57.825 234.770 C 57.825 237.565,57.241 237.576,56.989 234.786 C 56.799 232.672,56.484 232.095,55.522 232.095 C 55.159 232.095,54.948 231.979,55.040 231.830 C 55.356 231.318,56.979 231.521,57.162 232.095 M60.477 233.615 C 60.477 235.563,60.905 236.340,61.977 236.340 C 62.320 236.340,62.599 236.459,62.599 236.605 C 62.599 237.208,60.551 236.889,60.110 236.216 C 59.681 235.562,59.482 232.118,59.851 231.749 C 60.261 231.340,60.477 231.986,60.477 233.615 M64.191 234.366 C 64.191 236.971,64.068 237.230,63.257 236.333 C 62.885 235.922,62.844 235.724,63.083 235.484 C 63.255 235.313,63.395 234.440,63.395 233.546 C 63.395 232.651,63.472 231.842,63.565 231.749 C 64.008 231.306,64.191 232.069,64.191 234.366 M66.889 232.004 C 67.156 232.245,67.374 232.604,67.374 232.800 C 67.374 233.395,68.363 233.199,68.918 232.493 C 69.205 232.129,69.569 231.830,69.727 231.830 C 69.930 231.830,69.926 232.026,69.713 232.493 C 69.547 232.858,69.325 233.156,69.219 233.156 C 68.764 233.156,68.796 234.533,69.266 235.130 C 69.538 235.477,69.761 235.890,69.761 236.050 C 69.761 236.209,69.881 236.340,70.027 236.340 C 70.172 236.340,70.292 236.459,70.292 236.605 C 70.292 237.144,69.306 236.848,69.021 236.223 C 68.467 235.006,67.779 234.909,67.072 235.946 C 66.728 236.452,66.356 236.867,66.247 236.868 C 65.898 236.871,66.033 236.151,66.446 235.809 C 66.664 235.627,66.844 235.314,66.844 235.113 C 66.844 234.912,66.963 234.748,67.109 234.748 C 67.255 234.748,67.374 234.509,67.374 234.218 C 67.374 233.926,67.284 233.686,67.175 233.685 C 67.066 233.684,66.767 233.317,66.512 232.868 C 65.775 231.574,65.956 231.160,66.889 232.004 M87.202 232.204 C 88.078 233.128,88.043 235.202,87.135 236.182 C 85.619 237.817,82.493 236.508,82.493 234.237 C 82.493 232.095,85.761 230.684,87.202 232.204 M92.440 231.830 C 92.536 231.984,92.273 232.095,91.815 232.095 C 90.092 232.095,89.362 233.504,90.915 233.830 C 93.575 234.390,93.468 236.870,90.784 236.870 C 90.017 236.870,89.390 236.751,89.390 236.605 C 89.390 236.459,89.931 236.340,90.592 236.340 C 92.250 236.340,92.664 234.814,91.086 234.523 C 90.449 234.405,89.390 233.440,89.390 232.978 C 89.390 231.956,91.928 231.002,92.440 231.830 M84.454 232.278 C 82.730 232.617,83.312 236.116,85.121 236.292 C 86.837 236.459,87.733 234.040,86.462 232.676 C 85.936 232.112,85.618 232.049,84.454 232.278 M86.430 233.302 C 86.857 234.240,86.807 234.774,86.222 235.536 C 85.101 236.994,83.670 235.376,84.203 233.252 C 84.437 232.320,85.998 232.355,86.430 233.302 M104.589 234.483 C 104.589 235.285,104.638 235.613,104.699 235.212 C 104.760 234.811,104.760 234.155,104.699 233.753 C 104.638 233.352,104.589 233.680,104.589 234.483 M70.745 233.852 C 70.113 234.485,70.612 234.771,72.215 234.694 C 73.477 234.634,73.873 234.520,73.873 234.218 C 73.873 233.794,71.125 233.473,70.745 233.852 M73.475 234.218 C 73.475 234.363,72.871 234.483,72.133 234.483 C 71.306 234.483,70.854 234.381,70.955 234.218 C 71.045 234.072,71.649 233.952,72.297 233.952 C 72.945 233.952,73.475 234.072,73.475 234.218 M55.086 238.926 C 63.572 238.965,77.538 238.965,86.120 238.926 C 94.702 238.887,87.759 238.855,70.690 238.855 C 53.621 238.855,46.599 238.887,55.086 238.926 " stroke="none" fill="#9e9f9f" fill-rule="evenodd"></path><path id="path4" d="M-0.000 1.189 C -0.000 1.524,0.958 1.593,6.432 1.653 L 12.865 1.724 12.936 7.673 C 12.991 12.256,12.930 13.672,12.671 13.836 C 12.486 13.954,9.559 14.052,6.167 14.054 C 2.775 14.057,-0.000 14.148,-0.000 14.257 C -0.001 14.573,13.353 14.341,13.550 14.023 C 13.820 13.585,13.978 14.362,13.800 15.252 C 13.652 15.987,13.628 16.002,13.476 15.451 L 13.312 14.854 7.085 14.854 L 0.858 14.854 0.698 15.451 C 0.409 16.527,0.507 265.252,0.796 265.252 C 0.972 265.252,1.061 223.473,1.061 140.446 L 1.061 15.640 6.963 15.711 L 12.865 15.782 12.935 23.320 C 12.982 28.340,13.104 30.976,13.299 31.211 C 13.721 31.719,386.929 31.741,387.613 31.233 C 388.011 30.938,388.067 30.071,388.128 23.342 L 388.196 15.782 394.098 15.711 C 399.101 15.651,400.000 15.580,400.000 15.247 C 400.000 14.911,399.079 14.854,393.634 14.854 C 389.567 14.854,387.268 14.758,387.268 14.589 C 387.268 14.421,389.626 14.303,393.700 14.267 L 400.133 14.211 394.164 14.056 C 390.882 13.970,388.164 13.876,388.125 13.847 C 388.086 13.817,388.086 11.078,388.125 7.759 L 388.196 1.724 394.098 1.653 C 399.101 1.592,400.000 1.522,400.000 1.189 C 400.000 0.842,376.453 0.796,200.000 0.796 C 23.465 0.796,-0.000 0.842,-0.000 1.189 M387.268 1.923 C 387.268 2.188,349.882 2.241,201.045 2.187 C 67.607 2.139,14.670 2.202,14.285 2.408 C 13.660 2.743,13.396 2.582,13.619 2.001 C 13.833 1.443,387.268 1.366,387.268 1.923 M70.496 9.240 C 70.755 9.405,70.816 10.900,70.761 15.801 L 70.690 22.149 69.907 22.238 C 69.410 22.294,69.010 22.170,68.811 21.898 C 68.534 21.519,68.480 21.517,68.342 21.875 C 68.039 22.664,64.376 22.435,63.764 21.589 C 63.488 21.208,63.134 20.759,62.976 20.591 C 61.892 19.439,62.318 15.501,63.683 14.067 C 64.838 12.853,67.364 12.494,68.283 13.414 C 68.662 13.793,68.700 13.626,68.700 11.580 C 68.700 10.027,68.803 9.287,69.032 9.194 C 69.545 8.987,70.126 9.006,70.496 9.240 M125.670 9.431 C 126.250 9.837,126.260 9.948,126.260 15.765 C 126.260 22.307,126.239 22.388,124.619 22.233 L 123.740 22.149 123.669 15.915 C 123.587 8.789,123.795 8.118,125.670 9.431 M43.901 10.017 C 44.414 10.392,45.623 12.170,45.623 12.549 C 45.623 12.760,45.802 13.081,46.021 13.263 C 46.240 13.444,46.419 13.749,46.419 13.939 C 46.419 14.130,46.568 14.445,46.751 14.640 C 46.933 14.835,47.321 15.463,47.613 16.035 L 48.143 17.075 48.306 13.909 C 48.396 12.167,48.485 10.606,48.505 10.440 C 48.558 9.991,49.732 9.776,50.512 10.073 L 51.194 10.332 51.194 15.988 C 51.194 22.305,51.200 22.281,49.417 22.281 C 48.298 22.281,46.709 20.633,46.689 19.452 C 46.687 19.282,46.595 19.103,46.485 19.054 C 46.276 18.961,45.260 17.176,44.585 15.716 C 44.366 15.242,44.092 14.854,43.977 14.854 C 43.861 14.854,43.741 14.586,43.711 14.257 C 43.680 13.929,43.590 15.570,43.512 17.905 L 43.369 22.149 42.374 22.231 L 41.379 22.313 41.379 16.218 C 41.379 11.591,41.459 10.092,41.711 9.990 C 42.224 9.783,43.603 9.800,43.901 10.017 M94.345 9.977 C 96.183 10.470,95.152 11.936,92.967 11.936 L 91.258 11.936 91.186 17.042 L 91.114 22.149 90.163 22.228 C 88.691 22.352,88.615 22.099,88.534 16.824 L 88.462 12.069 86.938 11.989 C 85.298 11.904,84.643 11.138,85.414 10.209 C 85.751 9.802,92.994 9.614,94.345 9.977 M263.864 9.983 L 264.466 10.144 264.395 16.544 L 264.324 22.944 263.578 23.030 C 262.106 23.199,262.069 23.036,262.069 16.426 C 262.069 10.939,262.113 10.346,262.533 10.101 C 263.087 9.779,263.098 9.777,263.864 9.983 M299.138 9.982 C 299.680 10.127,299.735 10.302,299.739 11.901 C 299.743 13.681,300.029 14.655,300.380 14.087 C 300.706 13.560,303.561 13.730,304.313 14.321 C 305.885 15.557,306.788 19.524,305.703 20.424 C 305.484 20.606,305.305 20.965,305.305 21.221 C 305.305 22.701,299.178 23.923,297.679 22.743 C 297.090 22.279,297.215 10.449,297.812 10.101 C 298.365 9.779,298.377 9.778,299.138 9.982 M326.808 10.089 C 327.270 10.336,327.321 10.670,327.321 13.471 L 327.322 16.578 328.657 15.186 C 329.965 13.823,330.628 13.552,331.676 13.954 C 332.413 14.237,332.131 14.972,330.769 16.313 C 329.192 17.867,329.180 17.952,330.365 19.268 C 330.872 19.831,331.290 20.375,331.294 20.477 C 331.297 20.579,331.598 20.984,331.963 21.378 C 333.034 22.534,332.736 23.077,331.031 23.077 C 330.447 23.077,330.043 22.789,329.262 21.817 C 328.705 21.125,328.100 20.400,327.918 20.207 C 327.735 20.014,327.565 19.656,327.538 19.411 C 327.512 19.166,327.423 19.861,327.339 20.955 L 327.188 22.944 326.309 23.029 C 324.602 23.193,324.579 23.099,324.731 16.469 C 324.886 9.741,325.075 9.161,326.808 10.089 M30.350 10.771 C 30.710 10.909,30.769 11.580,30.769 15.512 L 30.769 20.091 31.826 20.260 C 32.919 20.435,33.567 21.447,32.969 22.044 C 32.350 22.664,26.665 22.199,26.569 21.521 C 26.458 20.739,26.771 20.416,27.855 20.194 L 28.704 20.020 28.747 16.875 C 28.791 13.625,28.508 12.801,27.718 13.883 C 27.175 14.624,26.525 14.431,26.525 13.528 C 26.525 12.622,27.258 11.764,28.243 11.516 C 28.611 11.424,28.912 11.251,28.912 11.131 C 28.912 11.012,29.121 10.860,29.377 10.793 C 29.632 10.726,29.861 10.658,29.885 10.641 C 29.910 10.624,30.119 10.683,30.350 10.771 M170.140 11.027 C 170.488 11.375,170.557 12.230,170.557 16.199 L 170.557 20.955 171.476 20.955 C 172.507 20.955,173.092 21.663,172.806 22.564 C 172.648 23.062,172.433 23.087,169.012 23.018 L 165.385 22.944 165.385 22.016 C 165.385 21.113,165.416 21.085,166.512 21.006 L 167.639 20.924 167.639 17.379 L 167.639 13.834 166.833 14.236 C 165.244 15.029,164.407 13.189,165.981 12.364 C 166.383 12.153,166.955 11.751,167.253 11.469 C 168.239 10.537,169.463 10.350,170.140 11.027 M190.671 10.842 C 190.871 10.969,190.986 11.397,190.936 11.832 C 190.830 12.764,188.776 13.006,188.236 12.151 C 187.632 11.192,189.576 10.147,190.671 10.842 M211.396 11.618 C 213.196 13.588,212.509 16.314,209.395 19.559 L 208.183 20.822 210.373 20.955 C 212.485 21.083,212.570 21.113,212.755 21.806 C 213.066 22.976,212.630 23.099,208.452 23.018 L 204.642 22.944 204.558 22.072 C 204.484 21.302,204.686 20.989,206.282 19.396 C 208.576 17.106,209.154 16.295,209.391 15.031 C 209.749 13.117,208.535 12.227,206.800 13.132 C 205.325 13.901,204.255 13.399,204.855 12.219 C 205.793 10.374,209.914 9.995,211.396 11.618 M247.232 11.680 C 247.588 11.871,247.745 12.237,247.745 12.874 C 247.745 13.737,247.799 13.793,248.623 13.793 C 250.640 13.793,250.793 15.628,248.799 15.915 L 247.878 16.048 247.796 17.639 C 247.651 20.430,247.844 20.912,249.145 21.006 C 251.511 21.178,250.491 23.080,248.036 23.072 C 245.689 23.065,245.295 22.486,245.144 18.813 L 245.025 15.915 243.576 15.915 C 241.427 15.915,241.134 16.375,241.123 19.775 C 241.113 22.651,240.941 23.077,239.788 23.077 C 238.560 23.077,238.462 22.732,238.462 18.414 C 238.462 13.854,238.502 13.755,240.348 13.849 C 240.988 13.881,242.318 13.882,243.302 13.850 L 245.093 13.793 245.093 12.918 C 245.093 11.538,245.993 11.017,247.232 11.680 M59.777 13.501 C 62.040 14.993,62.254 21.470,60.042 21.484 C 59.875 21.485,59.670 21.664,59.586 21.883 C 59.037 23.314,53.072 21.783,53.042 20.203 C 53.037 19.960,52.858 19.530,52.644 19.246 C 52.430 18.963,52.255 18.300,52.255 17.772 C 52.255 17.244,52.430 16.581,52.644 16.297 C 52.858 16.014,53.041 15.603,53.051 15.385 C 53.069 14.963,53.943 13.793,54.239 13.793 C 54.336 13.793,54.594 13.614,54.812 13.395 C 55.425 12.782,58.796 12.854,59.777 13.501 M79.213 13.550 C 79.705 13.854,80.179 14.391,80.268 14.743 C 80.356 15.096,80.542 15.385,80.679 15.385 C 80.817 15.385,80.894 16.011,80.849 16.777 L 80.769 18.170 77.785 18.245 C 74.569 18.326,74.223 18.520,75.332 19.629 C 76.048 20.346,78.674 20.390,79.215 19.695 C 79.625 19.167,80.371 19.809,80.371 20.690 C 80.371 22.116,74.875 23.208,74.366 21.883 C 74.283 21.664,74.048 21.485,73.844 21.485 C 73.641 21.485,73.475 21.319,73.475 21.116 C 73.475 20.913,73.296 20.678,73.077 20.594 C 72.827 20.498,72.679 20.092,72.679 19.501 C 72.679 18.984,72.533 18.326,72.354 18.040 C 72.098 17.630,72.098 17.451,72.354 17.195 C 72.533 17.016,72.679 16.490,72.679 16.026 C 72.679 13.577,76.756 12.031,79.213 13.550 M100.490 13.418 C 101.939 14.283,102.255 15.039,102.255 17.651 L 102.255 20.050 101.117 21.166 L 99.979 22.281 97.903 22.281 C 94.424 22.281,91.711 18.441,93.510 16.063 C 93.724 15.780,93.899 15.392,93.899 15.201 C 93.899 14.859,94.817 13.793,95.112 13.793 C 95.195 13.793,95.442 13.614,95.661 13.395 C 96.221 12.836,99.541 12.851,100.490 13.418 M106.041 13.412 C 106.252 13.788,106.305 13.788,106.617 13.412 C 107.151 12.769,110.084 12.841,110.862 13.516 C 112.363 14.818,113.153 18.994,112.069 19.894 C 111.850 20.076,111.671 20.426,111.671 20.672 C 111.671 21.934,107.153 23.039,106.448 21.950 C 106.322 21.756,106.178 22.389,106.101 23.475 L 105.968 25.332 105.040 25.332 L 104.111 25.332 104.040 19.502 C 104.000 16.296,104.026 13.521,104.098 13.335 C 104.282 12.855,105.762 12.914,106.041 13.412 M120.658 13.755 C 121.977 14.850,123.093 18.198,122.302 18.688 C 122.167 18.771,121.974 19.214,121.874 19.673 C 121.296 22.304,116.553 23.400,114.560 21.362 C 113.288 20.062,112.907 18.271,113.406 15.946 C 113.988 13.234,118.416 11.896,120.658 13.755 M134.864 13.558 C 136.261 14.521,137.502 19.629,136.340 19.629 C 136.194 19.629,136.074 19.802,136.074 20.014 C 136.074 21.257,134.213 22.281,131.953 22.281 L 129.771 22.281 128.678 21.189 L 127.586 20.097 127.586 17.773 C 127.586 16.031,127.686 15.367,127.984 15.119 C 128.203 14.938,128.383 14.655,128.385 14.490 C 128.396 13.160,133.271 12.459,134.864 13.558 M145.309 13.994 C 145.366 14.589,145.263 14.907,144.977 15.017 C 144.668 15.136,144.562 15.561,144.562 16.687 C 144.562 18.830,143.558 19.822,141.247 19.962 C 139.864 20.046,139.946 20.065,141.872 20.109 C 144.717 20.173,145.347 20.644,145.354 22.709 C 145.360 24.777,144.252 25.464,140.910 25.464 C 137.431 25.464,135.791 23.675,137.299 21.522 C 137.614 21.072,137.649 20.832,137.431 20.614 C 137.063 20.246,137.044 19.186,137.401 18.966 C 137.546 18.875,137.666 18.517,137.666 18.170 C 137.666 17.822,137.546 17.464,137.401 17.374 C 137.074 17.172,137.049 16.000,137.366 15.804 C 137.493 15.725,137.666 15.316,137.751 14.894 C 138.039 13.455,139.237 12.987,142.440 13.063 L 145.225 13.130 145.309 13.994 M148.011 13.528 C 148.302 13.820,148.545 14.327,148.550 14.655 C 148.554 14.983,148.733 15.484,148.947 15.767 C 149.162 16.050,149.340 16.528,149.343 16.828 C 149.346 17.128,149.582 17.672,149.867 18.037 L 150.386 18.700 150.400 17.905 C 150.408 17.467,150.590 16.877,150.804 16.594 C 151.018 16.311,151.194 15.885,151.194 15.649 C 151.194 14.404,152.266 12.964,153.131 13.048 C 154.027 13.135,154.363 15.239,153.601 16.001 C 153.444 16.158,153.315 16.471,153.314 16.698 C 153.313 16.924,153.151 17.418,152.953 17.797 C 152.756 18.175,152.513 18.921,152.413 19.454 C 152.312 19.988,152.117 20.424,151.977 20.424 C 151.838 20.424,151.724 20.700,151.724 21.037 C 151.724 21.374,151.549 21.881,151.335 22.164 C 151.121 22.447,150.941 22.904,150.937 23.178 C 150.910 24.745,148.773 26.218,148.102 25.133 C 147.805 24.651,147.998 23.277,148.433 22.791 C 148.912 22.254,148.905 21.898,148.408 21.485 C 148.190 21.304,148.011 20.826,148.011 20.424 C 148.011 20.022,147.832 19.545,147.613 19.363 C 147.394 19.182,147.215 18.704,147.215 18.302 C 147.215 17.900,147.036 17.423,146.817 17.241 C 146.598 17.060,146.419 16.582,146.419 16.180 C 146.419 15.778,146.240 15.301,146.021 15.119 C 145.619 14.786,145.473 13.501,145.800 13.174 C 146.169 12.805,147.501 13.019,148.011 13.528 M158.136 13.436 C 159.261 14.455,158.411 15.998,156.797 15.863 C 155.891 15.787,155.831 15.724,155.752 14.769 C 155.616 13.118,156.956 12.368,158.136 13.436 M180.769 14.049 C 180.915 14.038,181.751 13.968,182.628 13.891 C 184.190 13.755,184.240 13.772,185.221 14.753 L 186.221 15.753 186.148 19.348 L 186.074 22.944 185.329 23.030 C 184.039 23.178,183.820 22.742,183.820 20.034 C 183.820 16.872,183.505 15.915,182.467 15.915 C 180.987 15.915,180.663 16.608,180.579 19.951 L 180.504 22.944 179.625 23.029 C 177.995 23.185,177.895 22.897,178.050 18.502 C 178.206 14.112,178.372 13.647,179.693 13.908 C 180.139 13.995,180.623 14.059,180.769 14.049 M190.784 18.140 C 191.002 22.718,190.922 23.077,189.676 23.077 C 188.426 23.077,188.329 22.743,188.329 18.435 C 188.329 14.047,188.434 13.715,189.786 13.847 L 190.584 13.926 190.784 18.140 M199.316 14.354 C 200.510 15.293,199.678 17.035,198.413 16.245 C 196.350 14.956,194.529 16.951,195.324 19.629 C 195.716 20.945,197.187 21.415,198.583 20.667 C 199.807 20.012,200.475 21.406,199.459 22.496 C 197.988 24.076,193.658 22.979,192.837 20.819 C 191.134 16.341,195.854 11.632,199.316 14.354 M220.292 14.159 C 220.717 14.469,220.847 14.469,221.158 14.159 C 221.785 13.532,224.407 13.696,225.220 14.413 C 227.500 16.423,227.357 20.713,224.950 22.492 C 224.059 23.151,221.569 23.319,221.008 22.759 C 220.760 22.511,220.690 22.834,220.690 24.212 C 220.690 26.179,220.124 26.692,218.681 26.034 L 218.037 25.741 218.037 20.128 C 218.037 13.736,218.400 12.775,220.292 14.159 M235.092 14.390 C 236.947 15.606,237.662 18.602,236.588 20.663 C 234.674 24.334,228.689 23.876,227.962 20.002 C 227.080 15.299,231.349 11.938,235.092 14.390 M256.454 14.025 C 257.540 14.714,256.681 15.780,254.973 15.861 C 253.429 15.935,252.260 16.976,253.722 16.976 C 253.945 16.976,254.197 17.155,254.281 17.374 C 254.365 17.593,254.707 17.772,255.041 17.772 C 257.147 17.772,257.973 20.476,256.371 22.126 C 254.574 23.976,250.508 23.284,250.712 21.163 C 250.807 20.174,251.653 19.832,252.244 20.544 C 252.704 21.098,254.642 21.108,254.642 20.557 C 254.642 19.944,253.654 19.098,252.938 19.098 C 250.849 19.098,249.946 16.070,251.601 14.616 C 252.567 13.768,255.487 13.412,256.454 14.025 M273.561 14.390 C 276.128 16.058,276.170 20.441,273.637 22.373 C 272.019 23.607,269.021 23.425,267.632 22.008 C 263.629 17.925,268.792 11.292,273.561 14.390 M283.554 14.324 C 283.891 14.615,284.265 14.854,284.385 14.854 C 284.901 14.854,285.676 17.003,285.676 18.430 C 285.676 23.966,277.210 25.151,276.589 19.701 C 276.149 15.835,277.668 13.793,280.984 13.793 C 282.562 13.793,283.062 13.896,283.554 14.324 M289.445 14.151 C 289.745 14.452,289.857 14.452,290.137 14.151 C 290.734 13.512,293.440 13.685,294.225 14.413 C 296.519 16.538,296.388 20.918,293.985 22.480 C 292.958 23.147,290.531 23.316,289.973 22.759 C 289.726 22.511,289.655 22.834,289.655 24.212 C 289.655 26.211,289.047 26.734,287.614 25.967 L 286.939 25.606 287.050 20.123 C 287.168 14.286,287.279 13.793,288.475 13.793 C 288.812 13.793,289.248 13.954,289.445 14.151 M313.403 14.266 C 314.711 15.372,314.854 15.863,314.854 19.257 C 314.854 23.148,314.980 23.006,311.494 23.047 C 308.955 23.077,308.749 23.039,307.979 22.391 C 306.439 21.095,307.120 17.791,308.930 17.776 C 309.246 17.774,309.549 17.641,309.602 17.481 C 309.655 17.320,310.262 17.126,310.950 17.048 C 311.639 16.971,312.202 16.873,312.202 16.831 C 312.202 15.896,310.241 15.527,309.454 16.313 C 309.014 16.753,308.281 16.823,307.735 16.478 C 307.242 16.165,307.453 15.101,308.079 14.749 C 308.365 14.588,308.761 14.307,308.960 14.125 C 309.526 13.606,312.743 13.708,313.403 14.266 M323.441 14.495 C 323.987 15.084,324.046 15.297,323.807 15.821 C 323.523 16.443,322.281 16.736,322.281 16.180 C 322.281 15.796,320.005 15.854,319.709 16.247 C 319.100 17.056,318.935 18.434,319.298 19.695 L 319.659 20.955 320.841 20.955 C 321.491 20.955,322.244 20.817,322.515 20.648 C 323.717 19.897,324.451 21.286,323.432 22.385 C 322.145 23.773,318.411 23.273,317.120 21.540 C 316.302 20.440,316.349 16.592,317.195 15.517 C 318.707 13.594,322.092 13.040,323.441 14.495 M55.769 15.635 C 54.947 16.321,54.905 18.831,55.703 19.629 C 56.576 20.502,57.892 20.336,58.722 19.248 C 60.469 16.958,57.921 13.840,55.769 15.635 M65.691 15.604 C 65.186 16.163,65.078 18.808,65.527 19.646 C 66.280 21.054,68.700 19.509,68.700 17.619 C 68.700 15.771,66.732 14.454,65.691 15.604 M75.265 15.672 C 74.812 16.169,74.842 16.180,76.554 16.180 C 78.043 16.180,78.282 16.117,78.145 15.761 C 78.057 15.530,77.984 15.291,77.984 15.230 C 77.984 14.853,75.670 15.229,75.265 15.672 M96.618 15.635 C 95.846 16.279,95.758 18.785,96.478 19.626 C 97.624 20.964,100.000 19.618,100.000 17.630 C 100.000 16.749,99.882 16.501,98.986 15.508 C 98.504 14.973,97.336 15.036,96.618 15.635 M106.960 15.856 C 105.740 16.876,105.703 18.705,106.886 19.579 C 108.599 20.845,109.613 20.105,109.598 17.599 C 109.584 15.040,108.664 14.432,106.960 15.856 M116.324 15.846 C 114.873 17.410,115.696 20.159,117.615 20.159 C 119.054 20.159,119.629 19.433,119.629 17.615 C 119.629 15.242,117.795 14.260,116.324 15.846 M131.034 15.459 C 129.254 16.905,129.808 19.935,131.884 20.108 C 133.325 20.228,133.955 19.494,133.943 17.706 C 133.930 15.540,132.395 14.355,131.034 15.459 M139.897 15.782 C 139.582 17.038,139.964 17.772,140.933 17.772 C 141.963 17.772,142.440 17.371,142.440 16.506 C 142.440 15.095,140.227 14.465,139.897 15.782 M221.154 16.468 C 220.469 17.218,220.511 19.715,221.220 20.424 C 222.571 21.775,224.138 20.672,224.138 18.371 C 224.138 16.150,222.435 15.064,221.154 16.468 M231.102 16.247 C 229.175 18.674,231.741 22.722,233.779 20.470 C 234.421 19.760,234.389 16.949,233.732 16.354 C 233.163 15.838,231.480 15.770,231.102 16.247 M269.335 16.584 C 267.786 18.949,270.206 22.315,272.175 20.533 C 272.886 19.890,272.900 16.993,272.194 16.354 C 271.423 15.656,269.861 15.782,269.335 16.584 M279.928 16.121 C 279.170 16.603,278.841 18.434,279.293 19.661 C 280.248 22.254,283.024 21.095,283.024 18.104 C 283.024 16.363,281.292 15.254,279.928 16.121 M290.119 16.468 C 289.435 17.218,289.476 19.715,290.186 20.424 C 291.593 21.831,293.103 20.777,293.103 18.389 C 293.103 16.092,291.440 15.021,290.119 16.468 M300.413 16.500 C 299.068 18.071,299.924 20.955,301.735 20.955 C 302.781 20.955,303.221 20.209,303.221 18.435 C 303.221 16.052,301.696 15.001,300.413 16.500 M39.245 16.564 C 40.292 17.826,35.618 19.279,34.407 18.067 C 34.031 17.692,34.407 16.504,34.947 16.363 C 36.110 16.059,38.936 16.191,39.245 16.564 M310.089 19.611 C 309.552 20.614,309.744 20.955,310.844 20.955 C 311.870 20.955,312.185 20.599,312.198 19.430 C 312.204 18.864,310.406 19.018,310.089 19.611 M158.204 19.780 C 159.166 20.742,158.353 22.281,156.884 22.281 C 155.935 22.281,155.703 21.946,155.703 20.580 C 155.703 19.287,157.225 18.801,158.204 19.780 M139.557 22.637 C 138.818 23.528,142.035 23.699,142.838 22.812 C 143.314 22.286,143.301 22.281,141.586 22.281 C 140.460 22.281,139.749 22.406,139.557 22.637 M14.058 30.137 C 14.058 30.356,13.939 30.462,13.793 30.371 C 13.647 30.281,13.528 30.028,13.528 29.810 C 13.528 29.591,13.647 29.485,13.793 29.576 C 13.939 29.666,14.058 29.919,14.058 30.137 M374.470 43.961 C 374.735 44.149,374.788 65.068,374.735 147.629 L 374.668 251.061 198.822 251.128 C 58.330 251.181,22.929 251.127,22.741 250.862 C 22.567 250.616,22.534 250.634,22.615 250.928 C 22.723 251.326,372.826 251.723,374.470 251.327 L 375.067 251.183 375.000 147.563 C 374.941 55.720,374.888 43.931,374.536 43.835 C 374.241 43.754,374.224 43.787,374.470 43.961 M25.000 45.799 C 24.572 45.972,24.506 249.337,24.934 249.337 C 25.110 249.337,25.199 215.252,25.199 147.613 L 25.199 45.889 198.807 45.889 L 372.415 45.889 372.348 147.613 C 372.311 203.561,372.371 249.337,372.480 249.337 C 372.590 249.337,372.650 203.531,372.613 147.546 L 372.546 45.756 198.939 45.710 C 103.455 45.685,25.182 45.725,25.000 45.799 M254.023 55.615 C 253.926 55.712,253.848 55.921,253.850 56.079 C 253.853 56.273,253.917 56.269,254.049 56.065 C 254.156 55.900,254.483 55.705,254.775 55.632 C 255.288 55.504,255.287 55.498,254.752 55.468 C 254.448 55.452,254.120 55.517,254.023 55.615 M256.227 55.612 C 256.578 55.787,256.577 56.918,256.224 57.577 C 256.040 57.921,256.038 58.090,256.219 58.090 C 256.855 58.090,256.925 55.670,256.293 55.545 C 256.107 55.508,256.077 55.538,256.227 55.612 M288.506 55.615 C 288.199 55.921,288.314 56.908,288.718 57.443 C 288.933 57.726,289.112 57.815,289.116 57.642 C 289.121 57.468,289.005 57.252,288.859 57.162 C 288.330 56.835,288.565 55.745,289.191 55.625 C 289.745 55.518,289.748 55.507,289.235 55.474 C 288.931 55.454,288.603 55.517,288.506 55.615 M192.219 56.410 C 192.122 56.508,192.042 57.337,192.042 58.254 C 192.042 59.561,191.942 59.979,191.578 60.191 C 191.166 60.431,191.163 60.462,191.550 60.469 C 192.125 60.480,192.308 59.937,192.308 58.214 C 192.308 57.138,192.421 56.724,192.772 56.520 C 193.165 56.291,193.172 56.248,192.816 56.241 C 192.585 56.237,192.317 56.313,192.219 56.410 M194.636 56.646 C 195.345 57.143,195.577 68.221,194.894 68.946 C 194.626 69.229,194.639 69.274,194.960 69.176 C 195.296 69.073,195.369 68.109,195.429 63.009 C 195.503 56.818,195.420 56.233,194.471 56.233 C 194.152 56.233,194.194 56.337,194.636 56.646 M291.589 57.019 C 291.752 57.451,291.935 57.755,291.996 57.695 C 292.185 57.505,291.780 56.233,291.530 56.233 C 291.399 56.233,291.426 56.587,291.589 57.019 M253.364 56.821 C 253.192 56.994,253.064 57.440,253.081 57.812 C 253.106 58.362,253.136 58.389,253.242 57.958 C 253.314 57.666,253.496 57.275,253.647 57.089 C 254.009 56.644,253.768 56.417,253.364 56.821 M104.935 57.911 C 104.300 58.448,103.959 58.933,104.052 59.167 C 104.177 59.485,104.206 59.481,104.223 59.143 C 104.235 58.920,104.497 58.562,104.807 58.348 C 105.117 58.133,105.513 57.821,105.688 57.655 C 105.863 57.488,106.236 57.293,106.517 57.221 C 107.008 57.096,107.007 57.090,106.499 57.064 C 106.207 57.049,105.503 57.431,104.935 57.911 M109.715 57.212 C 110.491 57.364,111.474 58.469,111.361 59.061 C 111.250 59.647,109.964 59.871,109.400 59.403 C 109.173 59.215,109.019 59.195,109.019 59.356 C 109.019 59.955,110.816 60.165,111.353 59.629 C 112.168 58.813,111.049 56.992,109.777 57.065 C 109.200 57.099,109.195 57.110,109.715 57.212 M167.056 57.347 C 167.274 57.565,167.374 58.865,167.374 61.472 C 167.374 66.155,167.856 67.374,169.708 67.374 C 170.404 67.374,171.623 66.378,171.597 65.830 C 171.580 65.474,171.545 65.463,171.423 65.773 C 170.966 66.938,169.513 67.405,168.568 66.692 C 168.082 66.325,168.030 65.926,167.952 61.996 C 167.870 57.898,167.708 57.029,167.023 57.029 C 166.837 57.029,166.848 57.140,167.056 57.347 M171.795 57.206 C 171.698 57.303,171.644 59.183,171.676 61.384 L 171.735 65.385 171.814 61.538 C 171.880 58.311,171.964 57.639,172.336 57.361 C 172.711 57.081,172.717 57.029,172.376 57.029 C 172.154 57.029,171.892 57.109,171.795 57.206 M174.337 57.298 C 175.355 57.930,174.787 67.639,173.732 67.639 C 173.622 67.639,173.456 67.835,173.364 68.075 C 173.013 68.991,174.044 67.817,174.566 66.707 C 175.346 65.046,175.214 57.210,174.403 57.089 C 173.918 57.016,173.913 57.034,174.337 57.298 M225.265 57.298 C 225.920 57.705,225.846 58.591,225.133 58.878 C 224.799 59.012,224.711 59.123,224.934 59.130 C 226.078 59.167,226.451 57.253,225.332 57.088 C 224.847 57.016,224.841 57.034,225.265 57.298 M259.259 57.723 C 258.517 58.392,258.867 58.355,259.682 57.679 C 259.901 57.498,260.318 57.291,260.610 57.220 C 261.120 57.096,261.119 57.090,260.585 57.060 C 260.279 57.043,259.683 57.342,259.259 57.723 M263.793 57.220 C 264.085 57.291,264.532 57.534,264.788 57.761 C 265.043 57.987,265.252 58.058,265.252 57.919 C 265.252 57.445,264.617 57.029,263.939 57.060 C 263.390 57.085,263.362 57.115,263.793 57.220 M267.286 57.206 C 266.729 57.763,267.139 67.109,267.721 67.109 C 267.915 67.109,267.905 67.003,267.692 66.790 C 267.231 66.329,267.243 57.391,267.706 57.205 C 267.891 57.130,267.910 57.062,267.750 57.050 C 267.592 57.039,267.383 57.109,267.286 57.206 M269.761 57.289 C 270.078 57.489,270.186 58.403,270.292 61.773 C 270.365 64.101,270.484 66.065,270.557 66.138 C 270.823 66.402,270.503 57.685,270.236 57.361 C 270.085 57.178,269.827 57.031,269.662 57.033 C 269.498 57.035,269.542 57.150,269.761 57.289 M274.388 57.372 C 274.315 57.560,274.293 59.560,274.337 61.815 L 274.418 65.915 274.477 61.729 C 274.534 57.661,274.553 57.536,275.133 57.303 L 275.729 57.063 275.124 57.046 C 274.791 57.037,274.460 57.183,274.388 57.372 M276.981 57.210 C 277.735 57.409,278.038 64.419,277.354 65.849 C 277.220 66.128,277.236 66.313,277.394 66.313 C 277.848 66.313,277.977 65.234,277.980 61.393 C 277.984 57.596,277.839 56.992,276.936 57.060 C 276.612 57.084,276.622 57.116,276.981 57.210 M278.353 57.408 C 278.039 58.225,278.367 59.017,279.045 59.082 C 279.699 59.145,279.700 59.142,279.111 58.892 C 278.400 58.589,278.325 57.697,278.979 57.316 C 279.419 57.059,279.418 57.045,278.970 57.037 C 278.711 57.033,278.433 57.200,278.353 57.408 M129.282 58.200 C 129.203 58.407,129.189 58.914,129.251 59.328 C 129.348 59.974,129.369 59.944,129.403 59.107 C 129.425 58.572,129.592 58.074,129.775 58.001 C 130.034 57.896,130.032 57.862,129.766 57.846 C 129.579 57.834,129.361 57.994,129.282 58.200 M131.774 58.156 C 131.925 58.339,132.089 58.837,132.138 59.263 C 132.188 59.690,132.357 60.081,132.515 60.133 C 132.696 60.192,132.757 59.908,132.680 59.357 C 132.550 58.424,132.193 57.825,131.765 57.825 C 131.593 57.825,131.596 57.941,131.774 58.156 M244.894 59.284 C 244.897 59.867,244.952 60.075,245.015 59.745 C 245.079 59.415,245.076 58.938,245.010 58.684 C 244.943 58.430,244.892 58.700,244.894 59.284 M265.207 58.929 C 265.106 59.640,264.128 59.914,263.513 59.404 C 263.286 59.216,263.130 59.196,263.130 59.356 C 263.130 59.691,263.769 59.947,264.606 59.947 C 265.212 59.947,265.827 58.842,265.438 58.453 C 265.359 58.374,265.255 58.589,265.207 58.929 M289.148 58.886 C 289.149 59.608,289.866 61.393,289.895 60.743 C 289.905 60.524,289.740 59.867,289.530 59.284 C 289.229 58.447,289.148 58.363,289.148 58.886 M292.194 58.753 C 292.301 59.045,292.474 59.821,292.578 60.477 L 292.767 61.671 292.803 60.462 C 292.825 59.707,292.680 59.059,292.419 58.738 C 292.005 58.230,292.002 58.230,292.194 58.753 M255.613 59.469 C 255.531 59.951,255.381 60.750,255.282 61.245 C 255.160 61.853,255.193 62.088,255.383 61.970 C 255.539 61.874,255.748 61.135,255.849 60.329 C 256.048 58.735,255.859 58.044,255.613 59.469 M258.130 58.855 C 257.934 58.980,257.814 59.275,257.865 59.511 C 257.935 59.835,258.033 59.778,258.264 59.280 C 258.433 58.918,258.552 58.623,258.529 58.625 C 258.507 58.627,258.327 58.731,258.130 58.855 M252.529 59.399 C 252.378 59.681,252.271 60.487,252.292 61.189 L 252.329 62.467 252.515 61.141 C 252.616 60.411,252.791 59.605,252.903 59.350 C 253.180 58.719,252.872 58.759,252.529 59.399 M222.226 64.169 C 222.164 68.160,222.216 69.130,222.480 68.911 C 222.889 68.571,222.964 59.151,222.558 59.151 C 222.407 59.151,222.272 61.200,222.226 64.169 M261.105 59.860 C 260.930 60.559,261.978 61.807,262.732 61.798 C 262.878 61.796,262.609 61.546,262.135 61.243 C 261.202 60.645,261.129 60.447,261.548 59.664 C 261.732 59.320,261.734 59.151,261.553 59.151 C 261.405 59.151,261.203 59.470,261.105 59.860 M281.555 64.036 C 281.563 68.256,281.628 69.075,281.963 69.186 C 282.287 69.293,282.300 69.244,282.035 68.923 C 281.813 68.653,281.684 67.028,281.628 63.774 L 281.546 59.019 281.555 64.036 M103.594 60.013 C 103.482 60.269,103.482 60.686,103.594 60.942 C 103.848 61.526,104.094 60.796,103.907 60.013 C 103.801 59.571,103.786 59.571,103.594 60.013 M114.857 61.074 C 115.146 61.548,115.383 62.136,115.384 62.379 C 115.384 62.623,115.558 63.160,115.769 63.573 C 115.980 63.986,116.222 64.550,116.306 64.826 C 116.390 65.102,116.529 65.257,116.615 65.171 C 116.701 65.085,116.519 64.493,116.211 63.856 C 115.902 63.219,115.650 62.544,115.650 62.357 C 115.650 61.839,114.825 60.212,114.563 60.212 C 114.435 60.212,114.568 60.600,114.857 61.074 M117.918 60.892 C 117.673 61.265,117.514 61.692,117.563 61.841 C 117.613 61.990,117.857 61.684,118.106 61.162 C 118.636 60.051,118.550 59.927,117.918 60.892 M121.947 60.886 C 121.054 61.714,120.911 63.760,121.684 64.634 C 122.195 65.212,123.886 66.122,124.083 65.926 C 124.151 65.858,123.863 65.656,123.443 65.477 C 121.148 64.497,120.648 62.127,122.475 60.885 C 123.020 60.515,123.287 60.212,123.069 60.212 C 122.852 60.212,122.347 60.515,121.947 60.886 M126.731 60.625 C 127.116 60.894,127.321 61.312,127.321 61.827 C 127.321 62.722,126.728 63.098,126.118 62.591 C 125.897 62.408,125.644 62.331,125.556 62.419 C 125.099 62.876,126.789 63.192,127.433 62.770 C 128.966 61.765,129.178 62.046,129.178 65.078 C 129.178 67.829,129.678 69.242,130.645 69.227 C 130.803 69.224,130.800 69.148,130.637 69.028 C 129.773 68.393,129.570 67.714,129.443 65.023 L 129.310 62.220 128.448 61.973 C 127.447 61.687,127.388 61.471,128.117 60.743 C 128.513 60.346,128.550 60.212,128.263 60.212 C 128.051 60.212,127.770 60.404,127.639 60.639 C 127.419 61.031,127.387 61.031,127.236 60.639 C 127.146 60.404,126.863 60.212,126.607 60.212 C 126.217 60.212,126.237 60.279,126.731 60.625 M134.167 61.141 C 134.266 61.985,134.215 62.069,133.605 62.069 C 132.213 62.069,132.095 62.249,132.095 64.369 C 132.095 66.764,132.367 67.374,133.431 67.374 C 134.286 67.374,134.554 68.257,133.899 68.912 C 133.657 69.154,133.656 69.231,133.894 69.231 C 134.270 69.231,134.602 68.068,134.387 67.507 C 134.298 67.274,133.901 67.109,133.430 67.109 L 132.626 67.109 132.626 64.738 L 132.626 62.368 133.488 62.285 C 134.373 62.199,134.881 61.035,134.292 60.445 C 134.158 60.312,134.105 60.609,134.167 61.141 M136.341 60.995 C 135.832 61.417,135.478 61.826,135.555 61.903 C 135.632 61.981,136.053 61.710,136.489 61.303 C 136.925 60.895,137.458 60.492,137.673 60.408 C 138.013 60.274,138.012 60.252,137.666 60.240 C 137.447 60.233,136.851 60.572,136.341 60.995 M141.379 60.569 C 142.107 60.953,142.322 60.929,142.053 60.495 C 141.957 60.340,141.617 60.214,141.297 60.216 C 140.740 60.220,140.743 60.234,141.379 60.569 M146.713 60.316 C 147.244 60.776,147.911 60.916,148.181 60.624 C 148.417 60.369,148.276 60.288,147.547 60.261 C 147.031 60.241,146.656 60.266,146.713 60.316 M151.841 60.730 C 152.580 61.217,152.660 61.221,153.376 60.798 C 153.791 60.552,154.000 60.308,153.841 60.255 C 153.681 60.201,153.335 60.352,153.073 60.590 C 152.647 60.975,152.560 60.978,152.260 60.617 C 152.076 60.394,151.730 60.213,151.493 60.214 C 151.212 60.215,151.335 60.396,151.841 60.730 M156.968 60.624 C 157.647 61.099,158.102 61.867,158.374 62.997 L 158.566 63.793 158.594 63.054 C 158.633 61.973,157.431 60.212,156.654 60.212 C 156.504 60.212,156.645 60.397,156.968 60.624 M176.402 60.725 C 175.715 62.009,176.128 69.234,176.888 69.227 C 177.264 69.223,177.268 69.189,176.923 68.971 C 176.598 68.766,176.525 67.987,176.525 64.721 C 176.525 61.456,176.598 60.677,176.923 60.472 C 177.172 60.315,177.200 60.219,176.999 60.216 C 176.821 60.214,176.553 60.443,176.402 60.725 M179.432 60.495 C 179.151 60.950,179.403 60.995,179.958 60.588 C 180.389 60.274,180.402 60.212,180.040 60.212 C 179.802 60.212,179.528 60.340,179.432 60.495 M183.770 60.950 C 184.162 61.356,184.533 61.654,184.594 61.612 C 184.747 61.508,183.512 60.212,183.260 60.212 C 183.149 60.212,183.378 60.544,183.770 60.950 M197.524 61.185 C 196.989 61.720,196.559 62.346,196.569 62.577 C 196.580 62.852,196.667 62.794,196.821 62.411 C 196.951 62.089,197.558 61.462,198.171 61.019 C 198.783 60.575,199.107 60.212,198.890 60.212 C 198.674 60.212,198.059 60.650,197.524 61.185 M203.191 60.847 C 203.697 61.197,204.158 61.439,204.215 61.385 C 204.392 61.217,203.073 60.230,202.660 60.221 C 202.445 60.216,202.684 60.498,203.191 60.847 M208.554 60.499 C 208.870 60.682,209.167 60.682,209.483 60.499 C 209.861 60.278,209.776 60.228,209.019 60.228 C 208.261 60.228,208.176 60.278,208.554 60.499 M225.731 60.995 C 224.419 62.082,224.830 62.173,226.214 61.101 C 226.846 60.612,227.204 60.215,227.010 60.219 C 226.816 60.223,226.241 60.572,225.731 60.995 M230.917 60.588 C 231.473 60.995,231.724 60.950,231.443 60.495 C 231.347 60.340,231.074 60.212,230.836 60.212 C 230.473 60.212,230.487 60.274,230.917 60.588 M234.749 60.874 C 234.407 61.238,234.207 61.616,234.305 61.714 C 234.403 61.812,234.483 61.765,234.483 61.609 C 234.483 61.453,234.871 61.077,235.345 60.773 C 235.844 60.454,236.031 60.219,235.789 60.217 C 235.559 60.214,235.091 60.510,234.749 60.874 M239.464 60.625 C 240.926 61.649,240.064 63.303,238.528 62.421 C 237.645 61.915,236.855 62.094,236.901 62.790 C 236.930 63.233,236.939 63.233,237.053 62.798 C 237.205 62.216,237.672 62.210,238.661 62.778 C 239.693 63.370,240.318 63.099,240.318 62.060 C 240.318 61.005,239.891 60.212,239.322 60.212 C 238.962 60.212,238.990 60.294,239.464 60.625 M142.762 61.737 C 142.932 62.139,143.168 62.580,143.286 62.719 C 144.475 64.112,143.270 65.215,140.459 65.307 C 138.815 65.361,138.086 65.486,138.039 65.723 C 138.001 65.909,138.031 65.939,138.106 65.789 C 138.182 65.635,139.218 65.517,140.490 65.517 C 143.865 65.517,144.682 64.446,143.210 61.952 C 142.546 60.826,142.331 60.724,142.762 61.737 M257.827 61.428 C 257.825 62.037,259.562 63.926,260.124 63.926 C 260.318 63.926,260.477 64.040,260.477 64.179 C 260.477 64.318,260.896 64.511,261.408 64.607 C 263.013 64.908,263.017 66.873,261.413 67.063 C 261.009 67.111,260.549 67.022,260.392 66.864 C 260.235 66.707,259.921 66.582,259.695 66.588 C 258.978 66.604,260.557 67.355,261.329 67.365 C 262.000 67.373,263.130 66.510,263.130 65.988 C 263.130 65.593,262.284 64.456,261.990 64.456 C 260.871 64.456,258.951 63.028,258.243 61.670 C 257.900 61.012,257.828 60.971,257.827 61.428 M104.000 61.955 C 103.969 62.772,108.195 65.634,108.695 65.134 C 108.760 65.068,108.047 64.652,107.110 64.210 C 105.455 63.427,104.464 62.618,104.166 61.804 C 104.065 61.527,104.014 61.572,104.000 61.955 M111.938 61.970 C 111.937 62.281,112.115 62.683,112.334 62.865 C 112.835 63.280,112.836 63.124,112.336 62.166 C 111.992 61.507,111.939 61.481,111.938 61.970 M120.491 62.258 C 120.028 63.252,120.077 63.631,120.576 62.919 C 120.805 62.592,120.954 62.149,120.907 61.935 C 120.853 61.684,120.704 61.799,120.491 62.258 M240.650 61.804 C 240.709 62.023,241.047 62.224,241.400 62.251 C 241.907 62.289,241.930 62.269,241.512 62.154 C 241.220 62.073,240.883 61.872,240.762 61.707 C 240.618 61.508,240.580 61.541,240.650 61.804 M109.041 61.900 C 109.575 62.368,110.446 62.648,110.113 62.245 C 109.913 62.002,109.565 61.804,109.340 61.804 C 109.114 61.804,108.980 61.847,109.041 61.900 M204.492 62.181 C 204.667 62.392,204.769 63.122,204.724 63.839 L 204.642 65.119 202.011 65.252 C 200.176 65.344,199.359 65.487,199.312 65.723 C 199.274 65.909,199.305 65.939,199.379 65.789 C 199.456 65.633,200.553 65.517,201.958 65.517 C 203.506 65.517,204.520 65.400,204.721 65.199 C 205.300 64.621,205.073 61.804,204.448 61.804 C 204.287 61.804,204.304 61.954,204.492 62.181 M232.515 62.202 C 233.454 64.728,233.016 65.242,229.923 65.248 C 228.655 65.250,227.562 65.342,227.494 65.451 C 227.330 65.714,232.397 65.447,232.825 65.170 C 233.298 64.864,233.238 62.800,232.737 62.186 C 232.323 61.678,232.320 61.679,232.515 62.202 M246.021 62.040 L 244.960 62.202 244.883 64.416 C 244.837 65.725,244.922 66.770,245.091 66.974 C 245.401 67.347,247.215 67.657,247.215 67.337 C 247.215 67.229,246.767 67.104,246.220 67.058 L 245.225 66.976 245.149 64.655 L 245.072 62.334 245.995 62.334 C 246.503 62.334,246.992 62.215,247.082 62.069 C 247.172 61.923,247.209 61.821,247.164 61.841 C 247.119 61.862,246.605 61.952,246.021 62.040 M138.660 62.355 C 137.755 62.883,138.115 63.395,139.390 63.395 C 140.622 63.395,140.757 63.279,140.318 62.599 C 140.099 62.259,140.061 62.269,140.057 62.666 C 140.054 63.014,139.837 63.128,139.191 63.121 L 138.329 63.112 138.955 62.591 C 139.617 62.039,139.443 61.900,138.660 62.355 M184.615 62.319 C 184.615 62.456,184.735 62.642,184.881 62.732 C 185.391 63.048,185.212 68.635,184.682 68.944 C 184.270 69.184,184.267 69.216,184.653 69.223 C 185.371 69.236,185.782 64.675,185.244 62.666 C 185.088 62.083,184.615 61.822,184.615 62.319 M189.705 62.854 C 188.596 64.353,189.208 67.374,190.621 67.374 C 191.240 67.374,192.089 66.060,192.190 64.946 L 192.293 63.793 192.052 64.904 C 191.447 67.689,189.379 67.599,189.399 64.788 C 189.414 62.678,190.498 61.769,191.493 63.033 C 191.795 63.418,192.042 63.617,192.042 63.477 C 192.042 62.306,190.429 61.875,189.705 62.854 M199.934 62.355 C 198.988 62.906,199.393 63.395,200.796 63.395 C 202.161 63.395,202.418 63.175,201.724 62.599 C 201.484 62.400,201.326 62.378,201.326 62.545 C 201.326 62.696,201.475 62.881,201.658 62.954 C 201.840 63.028,201.475 63.098,200.846 63.109 C 199.648 63.131,199.544 62.768,200.624 62.332 C 200.955 62.199,201.027 62.099,200.796 62.094 C 200.577 62.089,200.189 62.207,199.934 62.355 M228.050 62.355 C 227.145 62.883,227.505 63.395,228.780 63.395 C 230.019 63.395,230.161 63.270,229.679 62.599 C 229.438 62.264,229.416 62.274,229.542 62.666 C 229.667 63.052,229.527 63.128,228.705 63.121 L 227.719 63.112 228.345 62.591 C 229.007 62.039,228.832 61.900,228.050 62.355 M233.864 62.246 C 233.586 62.523,233.657 63.660,233.952 63.660 C 234.098 63.660,234.218 63.302,234.218 62.865 C 234.218 62.041,234.164 61.946,233.864 62.246 M117.272 62.783 C 117.255 63.102,117.122 63.438,116.976 63.528 C 116.830 63.618,116.716 63.894,116.721 64.140 C 116.729 64.440,116.866 64.342,117.136 63.844 C 117.358 63.434,117.486 62.897,117.421 62.650 C 117.335 62.322,117.295 62.358,117.272 62.783 M124.159 62.798 C 124.145 63.199,124.290 63.394,124.602 63.391 C 124.888 63.389,124.955 63.312,124.775 63.192 C 124.614 63.085,124.415 62.818,124.331 62.599 C 124.230 62.334,124.173 62.400,124.159 62.798 M135.066 62.653 C 134.549 63.170,134.662 66.424,135.230 67.357 C 135.744 68.203,137.080 69.375,137.290 69.164 C 137.360 69.094,137.109 68.836,136.733 68.589 C 135.219 67.597,134.428 64.454,135.288 62.847 C 135.602 62.260,135.526 62.193,135.066 62.653 M148.159 62.741 C 147.876 62.955,147.763 63.130,147.909 63.130 C 148.055 63.130,148.406 62.955,148.689 62.741 C 148.973 62.526,149.085 62.351,148.939 62.351 C 148.793 62.351,148.442 62.526,148.159 62.741 M153.505 62.846 C 153.098 63.257,153.043 63.717,153.117 66.079 L 153.204 68.833 153.260 66.090 C 153.310 63.607,153.372 63.301,153.912 62.850 C 154.241 62.576,154.390 62.355,154.244 62.359 C 154.098 62.363,153.766 62.582,153.505 62.846 M155.131 65.296 C 155.222 68.281,155.439 69.231,156.031 69.231 C 156.260 69.231,156.258 69.149,156.021 68.912 C 155.823 68.714,155.698 67.692,155.691 66.194 C 155.684 64.873,155.535 63.456,155.359 63.043 C 155.091 62.413,155.054 62.771,155.131 65.296 M180.016 62.818 C 179.668 63.203,179.576 63.857,179.576 65.949 C 179.576 67.701,179.464 68.713,179.244 68.946 C 178.976 69.229,178.989 69.274,179.310 69.176 C 179.626 69.080,179.723 68.459,179.780 66.159 C 179.838 63.831,179.939 63.198,180.292 62.934 C 180.533 62.753,180.669 62.543,180.594 62.468 C 180.518 62.393,180.258 62.550,180.016 62.818 M181.391 62.682 C 181.550 62.874,181.713 64.379,181.755 66.042 C 181.815 68.444,181.911 69.079,182.228 69.176 C 182.549 69.274,182.562 69.229,182.294 68.946 C 182.074 68.712,181.963 67.688,181.963 65.884 C 181.963 63.091,181.837 62.334,181.372 62.334 C 181.199 62.334,181.206 62.459,181.391 62.682 M224.452 62.657 C 223.117 63.992,224.942 69.174,226.763 69.221 C 226.967 69.226,226.738 68.962,226.253 68.634 C 224.641 67.543,223.678 63.961,224.717 62.922 C 224.890 62.750,224.971 62.549,224.898 62.476 C 224.825 62.403,224.624 62.484,224.452 62.657 M110.610 62.650 C 110.610 62.724,110.849 63.059,111.141 63.395 C 111.432 63.732,111.671 63.888,111.671 63.742 C 111.671 63.597,111.432 63.261,111.141 62.997 C 110.849 62.733,110.610 62.577,110.610 62.650 M149.644 65.478 C 149.718 67.882,149.822 68.503,150.214 68.890 C 150.676 69.346,150.683 69.335,150.413 68.617 C 150.259 68.206,150.133 66.751,150.133 65.383 C 150.133 63.872,150.019 62.826,149.843 62.717 C 149.639 62.591,149.580 63.401,149.644 65.478 M265.298 63.360 C 265.637 63.779,265.957 64.085,266.007 64.042 C 266.151 63.918,265.147 62.617,264.900 62.608 C 264.780 62.603,264.959 62.942,265.298 63.360 M290.003 64.058 C 290.004 64.934,290.054 65.260,290.113 64.783 C 290.172 64.306,290.170 63.590,290.110 63.192 C 290.049 62.793,290.001 63.183,290.003 64.058 M292.838 63.926 C 292.838 64.763,292.940 65.220,293.103 65.119 C 293.249 65.029,293.369 64.492,293.369 63.926 C 293.369 63.359,293.249 62.822,293.103 62.732 C 292.940 62.631,292.838 63.088,292.838 63.926 M209.717 63.414 C 209.058 63.933,209.019 64.094,209.019 66.279 C 209.019 67.726,208.899 68.714,208.700 68.912 C 208.463 69.149,208.461 69.231,208.691 69.231 C 209.276 69.231,209.549 68.200,209.549 65.994 C 209.549 63.869,209.577 63.766,210.279 63.331 C 210.680 63.082,210.875 62.876,210.712 62.872 C 210.549 62.868,210.102 63.112,209.717 63.414 M196.198 63.307 C 195.918 63.587,195.993 66.264,196.286 66.446 C 196.453 66.549,196.552 65.962,196.552 64.870 C 196.552 63.118,196.521 62.984,196.198 63.307 M125.862 63.836 C 128.175 65.055,128.605 66.923,126.914 68.408 C 126.387 68.870,126.144 69.231,126.360 69.231 C 127.733 69.231,128.715 65.845,127.648 64.788 C 126.966 64.112,125.801 63.394,125.407 63.406 C 125.220 63.412,125.424 63.605,125.862 63.836 M238.859 63.978 C 241.213 65.218,241.411 67.468,239.283 68.789 C 238.904 69.024,238.763 69.220,238.969 69.224 C 239.809 69.240,241.155 67.305,241.026 66.265 C 240.871 65.022,239.203 63.370,238.139 63.407 C 237.952 63.413,238.276 63.670,238.859 63.978 M112.741 63.941 C 112.745 64.152,112.924 64.555,113.138 64.838 C 113.413 65.201,113.525 65.241,113.519 64.971 C 113.515 64.761,113.336 64.357,113.122 64.074 C 112.847 63.711,112.735 63.672,112.741 63.941 M119.685 64.571 C 119.221 65.589,119.292 66.059,119.770 65.141 C 119.992 64.716,120.136 64.255,120.090 64.116 C 120.044 63.978,119.862 64.183,119.685 64.571 M111.671 64.341 C 111.671 64.424,111.795 64.722,111.946 65.004 C 112.138 65.363,112.131 65.683,111.924 66.070 C 111.761 66.375,111.688 66.683,111.761 66.756 C 112.058 67.053,112.490 65.698,112.331 64.971 C 112.189 64.326,111.671 63.831,111.671 64.341 M234.254 64.411 C 234.315 64.605,234.719 64.963,235.153 65.207 C 235.587 65.450,236.001 65.726,236.074 65.818 C 236.147 65.911,236.444 66.031,236.734 66.086 C 237.568 66.244,237.587 67.109,236.757 67.109 C 236.381 67.109,236.074 66.989,236.074 66.844 C 236.074 66.698,235.869 66.578,235.617 66.578 C 235.243 66.578,235.268 66.653,235.754 66.994 C 236.547 67.549,237.512 67.392,237.612 66.690 C 237.673 66.263,237.434 66.029,236.551 65.647 C 235.924 65.376,235.126 64.907,234.778 64.606 C 234.427 64.303,234.194 64.215,234.254 64.411 M164.492 65.949 C 164.472 66.405,164.635 66.927,164.854 67.109 C 165.281 67.463,165.412 67.116,165.009 66.698 C 164.876 66.559,164.713 66.147,164.647 65.782 C 164.544 65.206,164.524 65.227,164.492 65.949 M252.302 66.726 C 252.273 67.562,252.402 68.263,252.644 68.583 C 252.858 68.866,253.037 68.973,253.042 68.820 C 253.047 68.666,252.938 68.428,252.801 68.289 C 252.664 68.151,252.506 67.440,252.451 66.711 L 252.350 65.385 252.302 66.726 M113.546 66.048 C 113.545 66.267,113.720 66.677,113.934 66.961 C 114.430 67.616,114.424 67.185,113.926 66.313 C 113.706 65.928,113.546 65.817,113.546 66.048 M255.184 65.928 C 255.190 66.067,255.369 66.837,255.582 67.639 L 255.968 69.098 255.843 67.660 C 255.743 66.518,255.139 64.932,255.184 65.928 M124.592 66.578 C 124.742 67.155,123.544 67.385,123.210 66.844 C 123.119 66.698,122.903 66.582,122.730 66.587 C 122.160 66.602,123.429 67.374,124.024 67.374 C 124.688 67.374,125.327 66.735,125.073 66.325 C 124.779 65.848,124.446 66.023,124.592 66.578 M103.940 66.491 C 102.846 66.781,103.424 68.952,104.660 69.195 C 105.007 69.263,104.909 69.086,104.326 68.596 C 103.350 67.775,103.407 67.002,104.471 66.612 C 105.167 66.357,104.778 66.268,103.940 66.491 M118.847 66.950 C 118.659 67.300,118.570 67.748,118.649 67.945 C 118.735 68.161,118.799 68.088,118.812 67.759 C 118.823 67.460,118.974 67.074,119.147 66.901 C 119.319 66.728,119.399 66.526,119.324 66.450 C 119.249 66.375,119.034 66.600,118.847 66.950 M121.538 66.631 C 120.860 67.310,121.361 69.231,122.217 69.231 C 122.576 69.231,122.548 69.149,122.075 68.818 C 121.349 68.310,121.275 66.992,121.950 66.599 C 122.205 66.451,122.288 66.325,122.135 66.321 C 121.982 66.317,121.714 66.456,121.538 66.631 M138.584 66.832 C 139.162 67.471,140.477 67.538,141.231 66.968 C 141.680 66.628,141.689 66.578,141.297 66.578 C 141.051 66.578,140.849 66.698,140.849 66.844 C 140.849 66.989,140.431 67.109,139.920 67.109 C 139.410 67.109,138.992 67.002,138.992 66.872 C 138.992 66.742,138.790 66.557,138.543 66.463 C 138.149 66.311,138.154 66.357,138.584 66.832 M199.963 66.815 C 200.692 67.466,201.802 67.539,202.536 66.985 C 202.819 66.770,202.908 66.591,202.734 66.587 C 202.561 66.582,202.345 66.698,202.255 66.844 C 202.006 67.245,200.866 67.161,200.057 66.682 L 199.337 66.255 199.963 66.815 M227.974 66.832 C 228.552 67.471,229.867 67.538,230.621 66.968 C 231.070 66.628,231.078 66.578,230.687 66.578 C 230.441 66.578,230.239 66.698,230.239 66.844 C 230.239 66.989,229.821 67.109,229.310 67.109 C 228.800 67.109,228.382 67.002,228.382 66.872 C 228.382 66.742,228.180 66.557,227.933 66.463 C 227.539 66.311,227.544 66.357,227.974 66.832 M273.358 66.719 C 272.773 67.161,271.618 67.244,271.618 66.844 C 271.618 66.698,271.484 66.578,271.320 66.578 C 271.115 66.578,271.125 66.701,271.353 66.976 C 271.806 67.522,272.659 67.472,273.607 66.844 C 274.045 66.554,274.284 66.320,274.138 66.323 C 273.992 66.327,273.641 66.505,273.358 66.719 M105.431 66.833 C 105.701 67.270,107.425 67.460,108.145 67.132 C 108.517 66.962,108.745 66.747,108.651 66.652 C 108.556 66.558,108.338 66.622,108.165 66.795 C 107.783 67.177,106.460 67.210,106.233 66.844 C 106.143 66.698,105.890 66.578,105.672 66.578 C 105.453 66.578,105.345 66.693,105.431 66.833 M204.181 67.328 C 204.268 67.921,204.131 68.220,203.570 68.662 C 203.130 69.007,202.998 69.231,203.234 69.231 C 204.277 69.231,205.268 66.958,204.355 66.658 C 204.178 66.600,204.112 66.857,204.181 67.328 M233.864 66.755 C 233.319 67.300,234.182 69.231,234.970 69.231 C 235.285 69.231,235.235 69.118,234.782 68.800 C 234.297 68.461,234.189 68.180,234.272 67.474 C 234.372 66.613,234.240 66.379,233.864 66.755 M265.500 67.274 C 265.295 67.657,264.710 68.254,264.200 68.600 C 263.679 68.954,263.454 69.231,263.687 69.231 C 264.193 69.231,266.048 67.424,266.048 66.932 C 266.048 66.413,265.917 66.495,265.500 67.274 M276.944 66.826 C 276.933 67.036,276.664 67.483,276.346 67.821 C 276.029 68.159,275.880 68.431,276.015 68.427 C 276.401 68.414,277.241 67.126,277.096 66.768 C 277.007 66.550,276.958 66.569,276.944 66.826 M292.619 67.557 C 292.594 68.169,292.454 68.743,292.308 68.833 C 292.162 68.923,292.042 69.135,292.042 69.303 C 292.042 69.489,292.206 69.446,292.458 69.195 C 292.747 68.905,292.841 68.428,292.769 67.613 L 292.666 66.446 292.619 67.557 M196.573 67.132 C 196.552 67.541,198.185 69.231,198.600 69.231 C 198.714 69.230,198.376 68.843,197.850 68.368 C 197.324 67.894,196.826 67.328,196.744 67.109 C 196.616 66.770,196.591 66.773,196.573 67.132 M289.383 67.524 C 289.241 67.898,289.138 68.584,289.155 69.049 L 289.186 69.894 289.397 68.966 C 289.514 68.455,289.693 67.769,289.796 67.440 C 290.054 66.615,289.702 66.687,289.383 67.524 M111.406 67.328 C 111.406 67.497,110.910 67.995,110.305 68.433 C 109.700 68.872,109.322 69.231,109.465 69.231 C 109.907 69.231,111.816 67.440,111.605 67.224 C 111.495 67.112,111.406 67.159,111.406 67.328 M186.472 67.283 C 186.472 67.623,188.055 69.231,188.390 69.231 C 188.535 69.231,188.404 69.022,188.101 68.767 C 187.797 68.511,187.306 68.016,187.010 67.665 C 186.714 67.314,186.472 67.143,186.472 67.283 M267.909 67.585 C 267.906 67.774,268.262 68.133,268.699 68.381 C 269.135 68.630,269.493 68.922,269.494 69.032 C 269.495 69.141,269.705 69.227,269.960 69.222 C 270.251 69.217,270.039 68.977,269.392 68.580 C 268.823 68.230,268.258 67.787,268.136 67.593 C 267.957 67.311,267.912 67.310,267.909 67.585 M165.252 67.837 C 165.252 67.991,165.677 68.368,166.196 68.674 C 167.312 69.333,167.559 69.376,167.109 68.833 C 166.927 68.614,166.653 68.435,166.500 68.435 C 166.347 68.435,166.004 68.237,165.737 67.996 C 165.470 67.755,165.252 67.683,165.252 67.837 M242.175 67.890 C 242.175 68.193,243.223 69.332,243.368 69.187 C 243.417 69.138,243.168 68.763,242.816 68.354 C 242.463 67.945,242.175 67.736,242.175 67.890 M114.341 68.121 C 114.331 68.313,114.443 68.694,114.590 68.967 C 114.767 69.299,114.767 69.518,114.590 69.628 C 114.443 69.719,114.324 69.991,114.324 70.234 C 114.324 70.573,114.424 70.532,114.756 70.057 C 115.151 69.494,115.153 69.367,114.773 68.606 C 114.545 68.147,114.350 67.929,114.341 68.121 M147.415 68.568 C 147.345 68.932,147.391 69.231,147.517 69.231 C 147.643 69.231,147.745 68.932,147.745 68.568 C 147.745 68.203,147.700 67.905,147.644 67.905 C 147.588 67.905,147.485 68.203,147.415 68.568 M142.138 68.691 C 141.794 68.978,141.643 69.217,141.802 69.222 C 141.962 69.227,142.309 68.992,142.573 68.700 C 143.187 68.021,142.948 68.017,142.138 68.691 M158.355 68.546 C 158.355 68.752,158.206 68.982,158.024 69.055 C 157.826 69.135,157.879 69.197,158.156 69.210 C 158.451 69.223,158.621 69.037,158.621 68.700 C 158.621 68.408,158.561 68.170,158.488 68.170 C 158.415 68.170,158.355 68.339,158.355 68.546 M231.528 68.691 C 231.184 68.978,231.033 69.217,231.192 69.222 C 231.352 69.227,231.699 68.992,231.963 68.700 C 232.577 68.021,232.338 68.017,231.528 68.691 M257.825 68.390 C 257.825 68.734,258.552 69.300,258.852 69.190 C 258.990 69.139,258.815 68.884,258.464 68.622 C 258.112 68.359,257.825 68.255,257.825 68.390 M118.093 69.081 C 117.630 70.098,117.700 70.568,118.179 69.651 C 118.401 69.225,118.545 68.764,118.499 68.626 C 118.453 68.488,118.270 68.692,118.093 69.081 M172.149 68.833 C 171.692 69.094,171.620 69.215,171.917 69.221 C 172.155 69.227,172.497 69.052,172.679 68.833 C 173.083 68.346,173.000 68.346,172.149 68.833 M191.777 68.830 C 191.117 69.204,191.119 69.206,192.106 69.175 C 192.902 69.151,193.039 69.075,192.803 68.790 C 192.641 68.595,192.493 68.439,192.474 68.444 C 192.456 68.450,192.142 68.623,191.777 68.830 M274.801 68.855 C 274.175 69.202,274.170 69.223,274.706 69.227 C 275.019 69.229,275.344 69.052,275.427 68.833 C 275.511 68.614,275.554 68.447,275.522 68.461 C 275.490 68.475,275.166 68.653,274.801 68.855 M106.568 69.418 C 106.898 69.482,107.375 69.479,107.629 69.413 C 107.883 69.347,107.613 69.295,107.029 69.298 C 106.446 69.301,106.238 69.355,106.568 69.418 M253.081 70.060 C 253.064 70.444,253.229 70.906,253.448 71.088 C 253.874 71.441,254.007 71.097,253.607 70.676 C 253.475 70.538,253.310 70.186,253.240 69.894 C 253.139 69.476,253.105 69.511,253.081 70.060 M255.977 69.679 C 255.972 69.853,256.099 70.076,256.258 70.175 C 256.418 70.273,256.505 70.807,256.452 71.362 C 256.400 71.916,256.448 72.312,256.560 72.243 C 256.910 72.027,256.783 70.419,256.374 69.878 C 256.160 69.595,255.981 69.506,255.977 69.679 M288.599 70.548 C 288.228 71.241,288.340 72.215,288.800 72.307 C 288.986 72.344,289.016 72.313,288.866 72.239 C 288.495 72.055,288.522 71.000,288.908 70.615 C 289.081 70.442,289.150 70.229,289.062 70.141 C 288.974 70.053,288.766 70.236,288.599 70.548 M291.581 70.849 C 291.280 71.650,291.288 71.690,291.673 71.306 C 291.904 71.074,292.052 70.680,292.002 70.428 C 291.938 70.114,291.807 70.245,291.581 70.849 M117.149 71.552 L 116.694 72.546 117.227 71.883 C 117.686 71.312,117.949 70.557,117.688 70.557 C 117.642 70.557,117.400 71.005,117.149 71.552 M32.427 78.203 C 32.162 78.371,32.108 94.050,32.161 155.719 L 32.228 233.024 34.416 233.101 L 36.605 233.178 36.605 234.926 C 36.605 237.089,37.209 238.193,38.821 238.973 C 40.537 239.804,100.850 239.843,102.476 239.014 C 104.399 238.034,105.029 237.075,105.280 234.748 L 105.438 233.289 236.605 233.224 C 359.556 233.163,367.793 233.130,368.103 232.709 C 368.666 231.946,368.582 78.964,368.018 78.401 C 367.560 77.943,33.147 77.746,32.427 78.203 M367.573 78.468 C 367.838 78.636,367.892 94.262,367.839 155.719 L 367.772 232.759 236.340 232.892 C 164.052 232.965,104.894 233.055,104.877 233.091 C 104.861 233.127,104.785 233.932,104.709 234.881 C 104.559 236.743,104.112 237.658,102.992 238.392 C 102.137 238.952,41.273 239.270,39.249 238.724 C 37.736 238.317,37.034 237.183,36.870 234.881 L 36.737 233.024 34.615 232.891 L 32.493 232.759 32.427 155.656 C 32.363 82.388,32.383 78.548,32.824 78.432 C 33.656 78.215,367.231 78.251,367.573 78.468 M34.284 80.016 C 34.020 80.123,33.952 95.516,33.952 155.739 L 33.952 231.327 35.345 231.247 L 36.737 231.167 36.815 229.119 C 36.887 227.211,36.953 227.006,37.774 226.135 L 38.657 225.199 70.760 225.199 L 102.863 225.199 103.673 226.122 C 104.491 227.054,104.717 227.800,104.840 229.973 L 104.907 231.167 235.611 231.234 L 366.314 231.300 366.247 155.637 L 366.180 79.973 200.398 79.928 C 109.218 79.903,34.466 79.943,34.284 80.016 M365.915 155.570 L 365.915 230.902 235.676 230.902 L 105.438 230.902 105.284 229.310 C 105.115 227.556,104.617 226.437,103.566 225.451 L 102.875 224.801 71.796 224.722 C 54.702 224.679,40.186 224.719,39.539 224.812 C 37.428 225.115,36.605 226.259,36.605 228.886 L 36.605 231.034 35.729 231.034 C 35.248 231.034,34.711 230.891,34.536 230.716 C 34.060 230.240,34.073 80.474,34.549 80.282 C 34.731 80.208,109.363 80.168,200.398 80.193 L 365.915 80.239 365.915 155.570 M39.939 86.889 C 39.388 87.440,39.290 219.290,39.841 219.841 C 40.302 220.302,85.958 220.302,86.419 219.841 C 86.970 219.290,86.872 87.440,86.321 86.889 C 85.685 86.253,40.575 86.253,39.939 86.889 M86.311 87.422 C 86.647 88.298,86.491 219.238,86.154 219.576 C 85.693 220.037,40.567 220.037,40.106 219.576 C 39.643 219.112,39.643 87.784,40.106 87.321 C 40.657 86.770,86.099 86.870,86.311 87.422 M203.892 160.918 C 203.794 161.016,203.714 164.061,203.714 167.683 L 203.714 174.271 202.836 174.271 C 201.487 174.271,201.093 174.727,201.005 176.393 L 200.928 177.851 163.023 177.919 C 135.545 177.967,125.020 178.068,124.761 178.283 C 124.356 178.619,124.221 215.748,124.622 216.380 C 124.969 216.927,325.579 216.728,325.619 216.180 C 325.635 215.952,325.601 215.923,325.537 216.114 C 325.347 216.680,125.047 216.592,124.829 216.026 C 124.497 215.160,124.649 178.905,124.987 178.568 C 125.520 178.035,201.414 178.113,201.857 178.647 C 202.113 178.956,202.831 179.045,205.072 179.045 L 207.958 179.045 208.001 177.122 L 208.044 175.199 208.200 176.658 L 208.355 178.117 225.632 178.185 C 240.572 178.244,242.953 178.307,243.238 178.649 C 243.716 179.225,248.752 179.220,249.175 178.643 C 249.663 177.978,324.911 178.047,325.422 178.714 C 325.753 179.147,325.771 179.142,325.683 178.647 C 325.590 178.120,325.329 178.116,287.927 177.984 L 250.265 177.851 250.184 176.393 C 250.087 174.653,249.951 174.485,248.480 174.289 L 247.347 174.138 247.215 167.507 L 247.082 160.875 225.576 160.807 C 213.748 160.770,203.990 160.820,203.892 160.918 M246.994 167.639 C 247.018 171.286,247.048 174.479,247.060 174.735 C 247.076 175.070,246.844 175.222,246.220 175.282 L 245.358 175.365 245.358 168.982 L 245.358 162.599 225.448 162.599 L 205.538 162.599 205.592 168.899 L 205.646 175.199 204.907 175.286 C 203.832 175.414,203.840 175.468,203.921 167.931 L 203.996 161.008 225.473 161.008 L 246.950 161.008 246.994 167.639 M245.032 168.497 L 244.960 174.129 243.921 174.298 C 242.604 174.512,242.175 175.104,242.175 176.709 L 242.175 177.984 225.464 177.984 L 208.753 177.984 208.753 176.446 C 208.753 174.736,208.463 174.271,207.396 174.271 C 205.788 174.271,205.836 174.450,205.836 168.407 L 205.836 162.865 225.469 162.865 L 245.103 162.865 245.032 168.497 M126.989 180.658 C 126.398 181.002,126.257 213.684,126.844 214.271 C 127.090 214.517,149.284 214.574,225.451 214.523 L 323.740 214.457 225.464 214.324 L 127.188 214.191 127.188 197.480 L 127.188 180.769 225.464 180.636 L 323.740 180.503 225.597 180.445 C 159.308 180.406,127.303 180.475,126.989 180.658 M323.732 197.480 C 323.732 206.671,323.766 210.393,323.806 205.750 C 323.847 201.108,323.847 193.588,323.806 189.039 C 323.766 184.491,323.732 188.289,323.732 197.480 M179.333 193.075 C 178.750 193.811,178.526 194.364,178.554 194.998 C 178.593 195.862,178.598 195.865,178.709 195.117 C 178.839 194.239,179.459 193.184,180.239 192.515 C 180.530 192.265,180.630 192.056,180.460 192.051 C 180.290 192.046,179.783 192.507,179.333 193.075 M183.506 192.987 C 183.583 193.643,183.494 193.939,183.187 194.057 C 182.953 194.147,182.831 194.333,182.916 194.470 C 183.009 194.620,183.221 194.596,183.445 194.410 C 183.842 194.081,183.965 192.429,183.610 192.209 C 183.494 192.138,183.448 192.488,183.506 192.987 M184.798 192.786 C 184.327 193.278,184.096 193.795,184.116 194.312 C 184.147 195.065,184.154 195.069,184.315 194.430 C 184.544 193.523,184.896 193.019,185.669 192.491 C 186.101 192.196,186.186 192.042,185.918 192.042 C 185.694 192.042,185.190 192.377,184.798 192.786 M188.886 192.600 C 189.488 193.201,189.655 193.229,189.655 192.728 C 189.655 192.521,189.792 192.306,189.958 192.251 C 190.125 192.195,189.839 192.138,189.322 192.123 C 188.400 192.097,188.392 192.105,188.886 192.600 M191.989 192.361 C 192.164 192.536,192.322 193.043,192.338 193.488 C 192.357 193.977,192.419 194.105,192.495 193.812 C 192.671 193.129,192.358 192.042,191.984 192.042 C 191.746 192.042,191.748 192.119,191.989 192.361 M162.699 193.167 C 163.586 193.837,162.849 194.685,161.330 194.741 L 160.080 194.788 161.197 194.889 C 163.099 195.061,164.527 193.196,162.732 192.883 C 162.218 192.793,162.217 192.802,162.699 193.167 M208.636 193.327 C 207.645 193.886,206.104 195.508,206.102 195.995 C 206.101 196.199,206.461 195.868,206.902 195.260 C 207.419 194.546,208.194 193.925,209.090 193.506 C 209.853 193.149,210.239 192.863,209.947 192.872 C 209.655 192.880,209.065 193.085,208.636 193.327 M214.863 193.056 C 217.419 194.189,216.513 196.167,213.926 195.101 C 213.524 194.935,213.465 194.959,213.683 195.196 C 214.130 195.682,215.848 195.876,216.311 195.493 C 217.206 194.749,216.220 192.811,214.970 192.857 C 214.562 192.872,214.540 192.913,214.863 193.056 M153.342 193.679 C 153.280 194.722,153.601 194.960,155.068 194.960 L 156.499 194.960 156.499 199.852 C 156.499 202.542,156.588 204.799,156.698 204.867 C 156.807 204.935,156.837 202.704,156.764 199.909 L 156.631 194.828 155.183 194.695 C 153.916 194.579,153.712 194.479,153.552 193.899 C 153.449 193.527,153.357 193.430,153.342 193.679 M188.462 193.915 C 187.701 194.093,188.165 194.301,189.062 194.183 C 189.246 194.159,189.468 194.324,189.554 194.550 C 189.720 194.982,191.890 195.156,192.137 194.756 C 192.206 194.644,191.777 194.599,191.183 194.656 C 190.353 194.735,190.006 194.639,189.680 194.243 C 189.353 193.844,189.078 193.770,188.462 193.915 M262.978 193.930 C 262.588 194.561,262.376 196.052,262.691 195.948 C 262.859 195.893,263.038 195.499,263.087 195.072 C 263.137 194.646,263.300 194.148,263.451 193.966 C 263.641 193.736,263.638 193.634,263.443 193.634 C 263.288 193.634,263.079 193.767,262.978 193.930 M181.841 194.584 C 181.154 195.631,181.471 196.029,182.949 195.975 L 184.218 195.929 183.090 195.827 C 181.884 195.718,181.822 195.630,182.222 194.580 C 182.552 193.712,182.411 193.713,181.841 194.584 M212.003 194.878 C 212.258 194.945,212.676 194.945,212.931 194.878 C 213.186 194.811,212.977 194.756,212.467 194.756 C 211.956 194.756,211.747 194.811,212.003 194.878 M159.682 199.320 C 159.682 201.717,159.567 203.979,159.428 204.347 C 159.222 204.888,159.247 204.986,159.560 204.866 C 159.936 204.722,160.186 194.960,159.814 194.960 C 159.741 194.960,159.682 196.922,159.682 199.320 M186.822 195.358 C 186.870 195.837,187.077 195.890,188.929 195.907 L 190.983 195.924 189.010 195.829 C 187.431 195.753,187.010 195.644,186.903 195.281 C 186.803 194.946,186.782 194.966,186.822 195.358 M209.773 196.032 C 208.040 197.855,208.446 201.679,210.471 202.601 C 210.863 202.780,211.141 202.801,211.141 202.652 C 211.141 202.512,210.871 202.330,210.541 202.247 C 208.184 201.655,208.518 196.846,211.024 195.307 C 211.367 195.096,211.415 194.986,211.166 194.976 C 210.961 194.967,210.334 195.443,209.773 196.032 M172.480 195.939 C 172.735 196.006,173.153 196.006,173.408 195.939 C 173.664 195.872,173.455 195.818,172.944 195.818 C 172.434 195.818,172.225 195.872,172.480 195.939 M272.881 195.944 C 273.211 196.007,273.688 196.005,273.942 195.938 C 274.196 195.872,273.926 195.820,273.342 195.823 C 272.759 195.826,272.551 195.880,272.881 195.944 M164.721 196.123 C 164.721 196.348,166.070 196.465,166.202 196.251 C 166.280 196.125,165.979 196.021,165.533 196.021 C 165.087 196.021,164.721 196.067,164.721 196.123 M168.387 196.359 C 169.126 197.254,168.678 198.532,167.593 198.622 C 166.712 198.696,165.513 199.469,166.281 199.469 C 166.444 199.469,166.578 199.350,166.578 199.204 C 166.578 199.058,167.053 198.939,167.634 198.939 C 168.525 198.939,168.715 198.840,168.849 198.308 C 169.090 197.347,168.880 196.210,168.435 196.065 C 168.100 195.955,168.092 196.002,168.387 196.359 M169.603 196.590 C 169.105 197.152,169.105 197.156,169.629 196.864 C 170.790 196.219,170.993 196.030,170.532 196.025 C 170.299 196.023,169.881 196.277,169.603 196.590 M175.274 196.554 C 175.754 196.847,176.253 197.353,176.385 197.681 C 176.613 198.247,176.625 198.249,176.641 197.729 C 176.658 197.172,175.380 196.020,174.745 196.022 C 174.557 196.023,174.795 196.262,175.274 196.554 M177.068 196.514 C 176.837 197.242,177.163 197.862,177.873 198.040 C 178.484 198.193,178.501 198.276,178.573 201.530 C 178.627 203.972,178.738 204.882,178.985 204.932 C 179.171 204.969,179.201 204.939,179.052 204.865 C 178.888 204.784,178.780 203.419,178.780 201.430 C 178.780 198.154,178.775 198.128,178.117 197.878 C 177.401 197.606,177.172 196.444,177.785 196.197 C 177.990 196.114,177.946 196.055,177.670 196.042 C 177.425 196.031,177.154 196.243,177.068 196.514 M194.716 196.877 C 192.341 199.199,193.301 205.040,196.058 205.040 C 196.252 205.040,195.984 204.750,195.463 204.397 C 192.836 202.612,192.893 198.289,195.566 196.576 C 196.054 196.264,196.242 196.028,196.005 196.026 C 195.778 196.023,195.197 196.406,194.716 196.877 M200.253 196.671 C 200.671 197.116,200.823 197.531,200.735 197.989 C 200.665 198.357,200.709 198.595,200.834 198.517 C 201.415 198.159,200.568 196.021,199.845 196.021 C 199.733 196.021,199.917 196.314,200.253 196.671 M219.485 196.304 C 219.204 196.759,219.456 196.804,220.011 196.397 C 220.442 196.083,220.455 196.021,220.093 196.021 C 219.855 196.021,219.581 196.149,219.485 196.304 M224.484 196.515 C 225.725 197.334,226.052 198.018,225.952 199.590 C 225.903 200.372,225.952 200.956,226.061 200.888 C 227.149 200.213,225.467 196.017,224.111 196.023 C 223.907 196.024,224.075 196.245,224.484 196.515 M227.438 196.364 C 227.133 197.158,227.452 204.863,227.792 204.932 C 227.978 204.969,228.008 204.939,227.858 204.865 C 227.437 204.657,227.495 196.368,227.918 196.197 C 228.177 196.092,228.176 196.059,227.909 196.042 C 227.723 196.031,227.510 196.175,227.438 196.364 M230.295 196.429 C 229.855 196.927,230.219 196.916,230.886 196.411 C 231.248 196.137,231.288 196.024,231.019 196.031 C 230.809 196.037,230.483 196.216,230.295 196.429 M234.754 196.650 C 235.115 196.996,235.462 197.233,235.524 197.178 C 235.667 197.051,234.577 196.021,234.300 196.021 C 234.188 196.021,234.392 196.304,234.754 196.650 M239.114 196.304 C 238.833 196.759,239.084 196.804,239.640 196.397 C 240.070 196.083,240.084 196.021,239.722 196.021 C 239.483 196.021,239.210 196.149,239.114 196.304 M244.039 196.477 C 244.400 196.728,244.900 197.176,245.150 197.472 C 245.401 197.768,245.610 197.867,245.615 197.693 C 245.624 197.361,244.022 196.021,243.616 196.021 C 243.488 196.021,243.678 196.226,244.039 196.477 M247.010 200.442 C 247.064 203.766,247.166 204.880,247.420 204.932 C 247.606 204.969,247.636 204.939,247.487 204.865 C 247.066 204.657,247.123 196.368,247.546 196.197 C 247.742 196.118,247.685 196.055,247.407 196.042 C 246.972 196.023,246.942 196.352,247.010 200.442 M249.534 196.492 C 249.638 196.763,249.751 196.764,250.097 196.501 C 250.336 196.320,250.568 196.150,250.614 196.123 C 250.660 196.097,250.407 196.093,250.051 196.115 C 249.646 196.139,249.453 196.280,249.534 196.492 M252.718 196.675 C 252.872 197.477,253.042 197.504,253.877 196.857 C 254.225 196.587,254.688 196.298,254.907 196.214 C 255.207 196.100,255.182 196.058,254.804 196.042 C 254.528 196.031,254.151 196.229,253.966 196.482 C 253.646 196.919,253.602 196.918,253.109 196.472 C 252.605 196.016,252.594 196.022,252.718 196.675 M259.597 196.571 C 261.093 197.529,261.868 203.739,260.610 204.687 C 260.097 205.074,260.097 205.084,260.593 204.997 C 261.603 204.819,261.877 199.469,260.961 197.838 C 260.372 196.792,259.611 196.021,259.171 196.026 C 258.926 196.028,259.103 196.254,259.597 196.571 M267.838 196.306 C 268.367 196.867,268.232 197.589,267.573 197.730 C 267.245 197.800,266.737 197.908,266.446 197.970 C 266.109 198.041,266.211 198.093,266.726 198.112 C 268.193 198.168,269.180 196.461,267.905 196.075 C 267.583 195.978,267.571 196.023,267.838 196.306 M275.909 196.626 C 278.619 198.242,278.276 202.982,275.336 204.548 C 274.565 204.958,274.510 205.040,275.004 205.040 C 275.330 205.040,275.597 204.940,275.597 204.817 C 275.597 204.695,275.878 204.466,276.221 204.310 C 278.927 203.077,278.167 195.951,275.339 196.033 C 275.116 196.039,275.373 196.306,275.909 196.626 M281.524 196.322 C 281.875 196.526,282.097 196.524,282.307 196.314 C 282.520 196.100,282.388 196.023,281.817 196.029 C 281.131 196.036,281.095 196.072,281.524 196.322 M192.414 200.531 C 192.414 202.792,192.455 203.717,192.505 202.586 C 192.555 201.456,192.555 199.605,192.505 198.475 C 192.455 197.344,192.414 198.269,192.414 200.531 M205.612 197.577 C 205.229 198.856,205.239 199.657,205.649 200.613 C 205.930 201.269,205.970 201.073,205.984 198.955 C 206.003 196.187,206.015 196.232,205.612 197.577 M218.352 197.538 C 218.033 197.934,217.774 198.441,217.776 198.665 C 217.779 198.947,217.880 198.899,218.107 198.507 C 218.288 198.197,218.588 197.689,218.776 197.380 C 219.248 196.600,219.045 196.676,218.352 197.538 M269.146 197.496 C 268.881 197.860,268.718 198.364,268.784 198.615 C 268.886 199.002,268.909 198.994,268.935 198.558 C 268.952 198.276,269.225 197.769,269.542 197.431 C 269.859 197.093,270.009 196.821,269.874 196.825 C 269.739 196.830,269.412 197.132,269.146 197.496 M212.401 197.542 C 213.021 197.598,214.035 197.598,214.655 197.542 C 215.275 197.486,214.768 197.440,213.528 197.440 C 212.288 197.440,211.781 197.486,212.401 197.542 M210.787 197.790 C 210.546 198.030,210.563 199.144,210.809 199.296 C 210.918 199.364,211.008 199.012,211.008 198.516 C 211.008 198.019,210.998 197.613,210.986 197.613 C 210.974 197.613,210.884 197.692,210.787 197.790 M216.114 197.898 C 216.335 198.132,216.446 199.156,216.446 200.963 C 216.446 203.875,216.168 204.417,214.456 204.845 C 214.020 204.955,214.043 204.982,214.589 204.999 C 216.277 205.054,216.737 204.118,216.654 200.800 C 216.594 198.400,216.498 197.764,216.180 197.668 C 215.859 197.570,215.846 197.614,216.114 197.898 M235.715 198.011 C 236.208 199.232,236.142 204.334,235.628 204.723 C 235.169 205.070,235.171 205.083,235.676 204.994 C 236.414 204.864,236.630 198.869,235.928 198.005 C 235.502 197.483,235.501 197.483,235.715 198.011 M237.500 198.002 C 237.230 198.705,237.526 198.937,237.840 198.267 C 238.011 197.901,238.037 197.613,237.898 197.613 C 237.761 197.613,237.582 197.788,237.500 198.002 M262.135 197.987 C 262.507 198.265,262.601 198.751,262.609 200.427 C 262.614 201.598,262.766 202.785,262.953 203.123 C 263.236 203.633,263.273 203.328,263.192 201.133 C 263.076 198.015,263.070 197.992,262.290 197.795 C 261.730 197.654,261.716 197.672,262.135 197.987 M170.993 198.310 C 170.576 198.536,170.009 198.662,169.732 198.589 C 169.456 198.517,169.297 198.566,169.379 198.698 C 169.598 199.053,170.322 198.989,171.184 198.539 C 172.150 198.036,172.875 198.036,173.380 198.541 C 173.734 198.895,173.621 198.944,172.366 198.985 C 170.990 199.031,170.984 199.034,172.113 199.135 C 173.784 199.283,174.210 199.074,173.602 198.403 C 173.038 197.779,172.038 197.743,170.993 198.310 M181.780 198.087 C 181.571 198.220,181.437 199.420,181.382 201.642 C 181.317 204.303,181.368 204.939,181.631 204.720 C 181.862 204.528,181.963 203.493,181.963 201.309 L 181.963 198.174 183.090 198.072 L 184.218 197.971 183.156 197.928 C 182.573 197.905,181.954 197.976,181.780 198.087 M186.875 198.195 C 186.662 198.798,186.596 204.996,186.804 204.867 C 186.913 204.799,187.003 203.258,187.003 201.443 L 187.003 198.143 188.188 198.143 L 189.374 198.143 189.460 201.260 L 189.547 204.377 189.535 201.194 L 189.523 198.011 188.260 197.930 C 187.401 197.875,186.958 197.959,186.875 198.195 M197.454 198.081 C 196.312 198.843,196.286 202.918,197.423 202.918 C 197.570 202.918,197.557 202.772,197.392 202.573 C 195.993 200.888,197.247 197.500,198.907 198.480 C 199.978 199.112,200.315 199.056,199.337 198.408 C 198.500 197.854,197.939 197.757,197.454 198.081 M221.220 198.276 C 220.992 198.551,220.982 198.674,221.188 198.674 C 221.351 198.674,221.485 198.554,221.485 198.408 C 221.485 198.006,222.438 198.091,222.799 198.526 C 223.067 198.848,222.916 198.924,221.837 199.008 L 220.557 199.109 221.950 199.156 C 223.433 199.207,223.635 199.021,222.857 198.317 C 222.254 197.771,221.651 197.756,221.220 198.276 M231.081 198.492 C 230.567 199.039,230.504 199.399,230.504 201.794 C 230.504 204.068,230.432 204.527,230.040 204.771 C 229.615 205.035,229.621 205.053,230.106 204.980 C 230.594 204.907,230.643 204.668,230.712 201.997 C 230.843 196.984,232.626 196.365,232.626 201.333 C 232.626 204.441,232.741 205.040,233.336 205.040 C 233.666 205.040,233.661 204.976,233.308 204.623 C 232.980 204.295,232.891 203.590,232.891 201.317 C 232.891 198.731,232.837 198.398,232.378 198.153 C 231.707 197.793,231.747 197.783,231.081 198.492 M240.828 198.342 C 240.529 198.737,240.532 198.757,240.848 198.475 C 241.344 198.033,242.037 198.055,242.428 198.526 C 242.695 198.848,242.544 198.924,241.465 199.008 L 240.186 199.109 241.578 199.156 C 243.062 199.207,243.263 199.021,242.486 198.317 C 241.860 197.750,241.269 197.759,240.828 198.342 M255.438 198.276 C 254.955 198.552,254.896 198.657,255.223 198.664 C 255.470 198.670,255.752 198.543,255.851 198.383 C 255.950 198.223,256.426 198.139,256.909 198.195 C 257.392 198.251,257.729 198.203,257.658 198.088 C 257.451 197.753,256.161 197.862,255.438 198.276 M272.016 198.408 C 271.730 198.725,271.663 198.939,271.851 198.939 C 272.024 198.939,272.234 198.760,272.318 198.541 C 272.884 197.065,274.394 198.524,274.394 200.548 C 274.394 201.394,274.484 201.945,274.594 201.772 C 275.836 199.818,273.500 196.769,272.016 198.408 M245.619 199.523 C 245.548 200.355,245.587 200.939,245.706 200.820 C 245.824 200.702,245.882 200.021,245.834 199.308 L 245.747 198.011 245.619 199.523 M252.576 198.572 C 252.397 198.764,252.072 198.852,251.853 198.768 C 250.683 198.319,250.133 199.348,250.133 201.982 C 250.133 204.077,250.057 204.530,249.668 204.771 C 249.244 205.035,249.250 205.053,249.735 204.980 C 250.218 204.908,250.272 204.667,250.342 202.273 C 250.423 199.467,250.734 198.802,251.843 199.061 C 252.127 199.128,252.485 199.081,252.639 198.956 C 252.792 198.832,253.156 198.683,253.448 198.625 C 253.974 198.521,253.974 198.518,253.440 198.372 C 253.144 198.290,252.756 198.380,252.576 198.572 M284.509 198.631 C 284.421 198.773,284.105 198.825,283.807 198.747 C 282.593 198.430,281.963 199.581,281.963 202.115 C 281.963 203.541,281.843 204.523,281.645 204.721 C 281.408 204.958,281.405 205.040,281.635 205.040 C 282.222 205.040,282.493 204.006,282.493 201.774 C 282.493 199.301,282.781 198.754,283.933 199.043 C 284.525 199.192,285.120 198.824,284.801 198.506 C 284.728 198.433,284.597 198.489,284.509 198.631 M256.499 198.939 L 255.040 199.118 256.417 199.161 C 257.174 199.185,257.867 199.085,257.958 198.939 C 258.048 198.793,258.085 198.693,258.040 198.717 C 257.994 198.741,257.301 198.841,256.499 198.939 M169.297 200.080 C 168.823 200.547,168.435 201.107,168.437 201.326 C 168.438 201.554,168.652 201.400,168.938 200.966 C 169.213 200.549,169.780 199.983,170.197 199.708 C 170.614 199.433,170.776 199.213,170.557 199.220 C 170.338 199.227,169.771 199.614,169.297 200.080 M253.748 199.846 C 253.329 200.189,253.030 200.573,253.084 200.699 C 253.139 200.825,253.582 200.540,254.070 200.066 C 255.092 199.073,254.875 198.924,253.748 199.846 M268.347 199.381 C 268.067 199.661,268.141 202.073,268.435 202.255 C 268.601 202.357,268.700 201.815,268.700 200.811 C 268.700 199.190,268.668 199.060,268.347 199.381 M212.158 199.663 L 213.043 199.772 212.954 201.345 C 212.905 202.211,212.954 202.919,213.064 202.918 C 213.173 202.918,213.263 202.142,213.263 201.194 L 213.263 199.469 212.268 199.512 L 211.273 199.554 212.158 199.663 M271.420 200.663 C 271.423 201.247,271.477 201.454,271.540 201.124 C 271.604 200.794,271.601 200.317,271.535 200.063 C 271.469 199.810,271.417 200.080,271.420 200.663 M171.805 201.531 C 171.546 201.817,171.465 202.139,171.596 202.352 C 171.753 202.605,171.861 202.510,171.986 202.015 C 172.124 201.466,172.319 201.326,172.949 201.326 C 173.790 201.326,174.061 201.942,173.342 202.218 C 173.123 202.302,172.944 202.498,172.944 202.655 C 172.944 202.811,173.198 202.702,173.509 202.412 C 173.837 202.107,174.007 201.714,173.915 201.474 C 173.698 200.909,172.334 200.946,171.805 201.531 M221.817 201.256 C 222.510 201.311,223.644 201.311,224.337 201.256 C 225.030 201.201,224.463 201.157,223.077 201.157 C 221.691 201.157,221.124 201.201,221.817 201.256 M240.226 201.260 C 240.158 201.369,240.897 201.426,241.868 201.386 C 244.945 201.258,245.306 201.147,242.788 201.103 C 241.447 201.080,240.294 201.151,240.226 201.260 M256.120 201.478 C 255.890 201.707,255.703 202.032,255.703 202.200 C 255.703 202.368,255.889 202.240,256.116 201.916 C 256.580 201.254,257.825 201.100,257.825 201.705 C 257.825 201.913,257.510 202.331,257.126 202.633 C 256.742 202.936,256.542 203.183,256.682 203.183 C 257.163 203.183,258.159 201.889,257.999 201.472 C 257.795 200.939,256.655 200.943,256.120 201.478 M252.520 201.974 C 252.520 202.184,252.639 202.430,252.785 202.520 C 252.931 202.610,253.050 202.438,253.050 202.138 C 253.050 201.837,252.931 201.592,252.785 201.592 C 252.639 201.592,252.520 201.764,252.520 201.974 M220.690 202.065 C 220.690 202.895,222.920 203.396,223.818 202.767 C 224.692 202.155,225.579 202.368,225.677 203.214 C 225.740 203.755,225.564 204.033,224.882 204.470 C 224.400 204.778,224.184 205.029,224.403 205.026 C 225.155 205.018,225.995 204.061,225.995 203.212 C 225.995 202.160,224.958 201.813,223.800 202.478 C 222.795 203.055,222.230 203.033,221.485 202.387 C 220.813 201.804,220.690 201.754,220.690 202.065 M199.056 202.511 C 198.444 202.975,198.734 203.050,199.438 202.611 C 200.113 202.189,200.796 202.509,200.796 203.248 C 200.796 203.842,200.195 204.552,199.440 204.852 C 199.154 204.965,199.164 205.003,199.490 205.019 C 200.113 205.050,201.061 203.909,201.061 203.128 C 201.061 202.126,199.998 201.799,199.056 202.511 M217.798 202.542 C 217.769 203.155,219.499 205.040,220.091 205.040 C 220.297 205.040,219.954 204.649,219.328 204.172 C 218.703 203.695,218.109 203.009,218.008 202.647 C 217.850 202.079,217.821 202.065,217.798 202.542 M243.353 202.511 C 243.070 202.726,242.540 202.921,242.175 202.945 C 241.529 202.989,241.527 202.993,242.124 203.107 C 242.461 203.171,243.035 203.028,243.400 202.789 C 244.444 202.105,245.226 202.348,245.224 203.357 C 245.224 203.818,245.313 204.139,245.423 204.071 C 245.802 203.837,245.631 202.447,245.204 202.283 C 244.520 202.021,243.901 202.097,243.353 202.511 M266.132 202.520 C 266.170 202.897,266.414 203.075,266.978 203.137 C 268.108 203.261,268.321 203.576,267.805 204.363 C 267.337 205.078,267.616 205.310,268.158 204.657 C 268.799 203.884,268.390 203.058,267.324 202.969 C 266.683 202.916,266.300 202.733,266.212 202.439 C 266.115 202.113,266.093 202.135,266.132 202.520 M168.449 202.831 C 168.432 203.547,169.654 205.042,170.249 205.033 C 170.553 205.028,170.464 204.886,169.965 204.577 C 169.567 204.329,169.066 203.706,168.852 203.191 C 168.554 202.475,168.459 202.390,168.449 202.831 M237.417 202.732 C 237.398 203.296,239.213 205.046,239.788 205.018 C 240.141 205.000,240.141 204.982,239.788 204.853 C 239.193 204.637,237.907 203.389,237.655 202.785 C 237.460 202.316,237.432 202.310,237.417 202.732 M273.210 202.807 C 272.796 203.037,272.702 203.177,272.960 203.179 C 273.187 203.181,273.605 203.008,273.888 202.794 C 274.532 202.307,274.096 202.315,273.210 202.807 M268.702 202.965 C 268.700 203.480,270.486 205.040,271.078 205.040 C 271.297 205.040,271.089 204.831,270.614 204.576 C 270.139 204.320,269.515 203.753,269.227 203.316 C 268.875 202.781,268.703 202.666,268.702 202.965 M253.069 203.468 C 253.047 203.973,254.128 205.040,254.659 205.038 C 254.868 205.037,254.685 204.802,254.250 204.516 C 253.816 204.230,253.377 203.783,253.274 203.523 C 253.124 203.143,253.084 203.132,253.069 203.468 M263.395 204.199 C 263.395 204.543,264.122 205.109,264.423 204.999 C 264.560 204.948,264.385 204.693,264.034 204.431 C 263.683 204.168,263.395 204.064,263.395 204.199 M208.753 204.642 C 208.935 204.861,209.337 205.039,209.648 205.038 C 210.137 205.037,210.111 204.984,209.452 204.640 C 208.494 204.141,208.338 204.141,208.753 204.642 M244.032 204.682 C 243.396 205.018,243.392 205.032,243.950 205.036 C 244.270 205.038,244.610 204.912,244.706 204.757 C 244.974 204.323,244.760 204.299,244.032 204.682 M257.825 204.776 C 257.519 204.975,257.591 205.022,258.137 204.981 C 258.528 204.951,258.790 204.833,258.719 204.718 C 258.549 204.444,258.311 204.460,257.825 204.776 M173.541 204.957 C 173.796 205.024,174.214 205.024,174.469 204.957 C 174.725 204.891,174.516 204.836,174.005 204.836 C 173.495 204.836,173.286 204.891,173.541 204.957 M39.530 226.818 C 38.516 227.226,38.470 227.445,38.466 231.867 C 38.460 237.275,38.448 237.257,41.949 237.263 L 44.430 237.268 44.504 233.440 C 44.547 231.170,44.696 229.469,44.868 229.262 C 45.087 228.997,45.053 228.912,44.727 228.912 C 44.350 228.912,44.297 229.388,44.297 232.759 L 44.297 236.605 41.976 236.596 C 38.642 236.584,38.727 236.704,38.727 232.000 C 38.727 228.470,38.775 228.068,39.257 227.586 C 39.962 226.882,101.307 226.734,102.008 227.435 C 102.306 227.733,102.387 228.753,102.387 232.209 L 102.387 236.605 100.028 236.605 C 98.176 236.605,97.637 236.519,97.517 236.207 C 97.433 235.988,97.068 235.809,96.705 235.809 C 96.085 235.809,96.041 235.713,95.945 234.151 L 95.844 232.493 95.866 234.218 C 95.888 235.885,95.912 235.944,96.602 236.024 C 97.101 236.082,97.340 236.281,97.397 236.687 C 97.532 237.635,101.572 237.647,102.517 236.703 C 103.085 236.135,103.106 227.945,102.541 227.173 C 102.110 226.583,40.969 226.239,39.530 226.818 M46.419 232.427 L 46.552 235.942 47.973 236.023 C 49.171 236.091,49.421 236.195,49.565 236.686 C 49.658 237.006,49.794 235.970,49.867 234.384 L 50.000 231.500 50.928 231.201 C 52.116 230.818,52.527 228.912,51.422 228.912 C 50.956 228.912,50.893 228.983,51.141 229.231 C 51.933 230.023,51.054 231.262,50.073 230.737 C 49.525 230.444,49.458 229.699,49.934 229.205 C 50.202 228.927,50.164 228.879,49.735 228.955 C 48.919 229.100,48.835 230.699,49.628 230.992 C 50.128 231.177,50.151 231.236,49.777 231.379 C 49.417 231.517,49.337 231.938,49.337 233.679 L 49.337 235.809 48.011 235.809 L 46.684 235.809 46.684 232.361 C 46.684 230.464,46.595 228.912,46.485 228.912 C 46.376 228.912,46.346 230.493,46.419 232.427 M74.447 229.089 C 74.350 229.187,74.271 230.231,74.271 231.410 L 74.271 233.554 72.348 233.554 C 70.433 233.554,70.424 233.558,70.338 234.305 L 70.252 235.057 72.262 234.969 L 74.272 234.881 74.271 235.743 L 74.271 236.605 72.546 236.605 C 71.191 236.605,70.822 236.690,70.822 237.003 C 70.822 237.436,74.087 237.594,74.721 237.190 C 75.147 236.919,75.332 228.911,74.912 228.912 C 74.754 228.912,74.545 228.992,74.447 229.089 M76.316 229.219 C 76.484 229.421,76.659 230.121,76.706 230.774 L 76.790 231.963 78.183 232.043 L 79.576 232.123 79.576 230.836 C 79.576 230.128,79.725 229.394,79.907 229.205 C 80.175 228.927,80.137 228.879,79.708 228.956 C 79.270 229.034,79.164 229.292,79.098 230.440 C 79.017 231.828,79.016 231.830,78.117 231.830 C 77.217 231.830,77.216 231.828,77.136 230.440 C 77.070 229.303,76.961 229.032,76.534 228.951 C 76.115 228.871,76.072 228.924,76.316 229.219 M81.127 229.262 C 81.299 229.469,81.447 231.170,81.491 233.440 C 81.563 237.184,81.578 237.270,82.163 237.353 C 82.937 237.463,83.226 236.737,82.658 236.110 C 81.849 235.216,82.083 233.136,83.103 232.148 C 84.092 231.189,86.854 230.869,87.164 231.677 C 87.244 231.885,87.506 232.130,87.746 232.222 C 88.034 232.333,87.958 232.149,87.527 231.688 C 86.612 230.709,83.661 230.799,82.700 231.835 L 82.095 232.487 82.026 231.296 C 81.920 229.502,81.731 228.912,81.262 228.912 C 80.940 228.912,80.907 228.997,81.127 229.262 M93.899 230.349 C 93.899 231.149,93.587 231.264,91.867 231.098 C 90.316 230.947,89.125 231.168,89.125 231.605 C 89.125 231.768,88.909 232.094,88.646 232.330 C 88.034 232.878,87.888 236.020,88.498 235.513 C 88.697 235.348,88.859 234.983,88.859 234.700 C 88.859 234.223,88.901 234.216,89.449 234.600 C 89.773 234.827,90.400 234.999,90.842 234.982 C 91.603 234.952,91.610 234.942,90.981 234.783 C 89.241 234.343,88.498 232.760,89.541 231.717 C 90.010 231.248,92.436 231.130,92.704 231.562 C 92.945 231.953,94.164 231.063,94.164 230.496 C 94.164 230.233,94.314 229.957,94.496 229.884 C 94.694 229.804,94.641 229.742,94.363 229.729 C 94.044 229.715,93.899 229.908,93.899 230.349 M95.730 230.430 C 95.853 230.891,96.155 231.206,96.567 231.303 C 97.344 231.487,97.571 232.266,96.898 232.440 C 96.519 232.539,96.544 232.571,97.016 232.595 C 98.022 232.647,97.844 231.333,96.817 231.127 C 96.201 231.004,96.021 230.826,96.021 230.338 C 96.021 229.992,95.912 229.708,95.779 229.708 C 95.645 229.708,95.623 230.030,95.730 230.430 M52.728 231.228 C 52.342 231.319,52.260 231.746,52.187 234.036 L 52.101 236.737 52.045 234.019 C 52.005 232.051,51.898 231.300,51.658 231.299 C 51.219 231.298,51.350 236.904,51.796 237.180 C 52.390 237.547,52.520 237.063,52.520 234.476 C 52.520 231.401,52.536 231.382,55.153 231.329 C 57.639 231.279,58.090 231.767,58.090 234.507 C 58.090 236.882,58.232 237.401,58.882 237.401 C 59.484 237.401,60.084 236.721,59.695 236.480 C 59.224 236.189,59.335 231.579,59.818 231.394 C 60.595 231.096,61.008 231.817,61.008 233.472 C 61.008 237.188,63.006 236.865,63.183 233.120 C 63.253 231.636,63.327 231.432,63.793 231.432 C 64.285 231.432,64.329 231.635,64.400 234.214 C 64.485 237.317,64.722 237.886,65.390 236.594 C 65.831 235.742,66.140 235.305,66.753 234.669 C 66.987 234.426,66.917 234.161,66.459 233.554 C 65.260 231.964,65.369 231.072,66.722 231.411 C 67.114 231.510,67.431 231.831,67.531 232.232 C 67.744 233.079,67.900 233.059,68.664 232.093 C 69.008 231.657,69.520 231.300,69.799 231.300 C 70.373 231.300,70.825 232.139,70.339 232.301 C 70.167 232.358,70.027 232.511,70.027 232.640 C 70.027 232.769,70.206 232.806,70.424 232.722 C 70.951 232.520,70.936 231.400,70.403 231.195 C 69.671 230.915,69.267 231.018,68.692 231.631 C 68.176 232.181,68.107 232.193,67.803 231.782 C 67.355 231.174,66.217 230.925,65.542 231.287 C 64.977 231.589,64.769 232.361,65.252 232.361 C 65.398 232.361,65.517 232.544,65.517 232.767 C 65.517 232.990,65.696 233.242,65.915 233.326 C 66.561 233.574,66.372 234.651,65.517 235.587 L 64.721 236.458 64.721 233.897 C 64.721 231.156,64.492 230.742,63.234 231.208 C 62.452 231.497,62.343 231.826,62.338 233.886 C 62.335 235.417,62.253 235.809,61.936 235.809 C 61.616 235.809,61.538 235.396,61.538 233.680 C 61.538 231.307,61.032 230.719,59.443 231.245 C 58.674 231.500,58.320 233.503,58.849 234.602 C 59.382 235.708,59.382 236.605,58.849 236.605 C 58.409 236.605,58.355 236.376,58.355 234.496 C 58.355 231.296,56.646 230.304,52.728 231.228 M92.549 232.381 C 92.285 232.548,92.428 232.619,93.037 232.622 L 93.899 232.626 93.899 234.615 C 93.899 235.710,93.804 236.605,93.687 236.605 C 93.571 236.605,93.524 236.187,93.583 235.677 C 93.711 234.587,92.819 233.434,91.844 233.426 C 91.492 233.424,91.247 233.258,91.247 233.024 C 91.247 232.805,91.067 232.626,90.847 232.626 C 90.513 232.626,90.501 232.714,90.778 233.156 C 90.960 233.448,91.358 233.687,91.662 233.687 C 92.761 233.687,93.916 235.705,93.103 236.207 C 92.412 236.634,92.838 237.401,93.767 237.401 C 94.712 237.401,95.049 236.800,94.444 236.194 C 94.306 236.055,94.156 235.179,94.112 234.247 C 94.028 232.469,93.468 231.800,92.549 232.381 M84.203 233.252 C 83.670 235.376,85.101 236.994,86.222 235.536 C 86.821 234.757,86.855 234.059,86.340 233.156 C 85.980 232.528,85.960 232.580,85.951 234.151 C 85.941 235.900,85.579 236.280,84.729 235.430 C 84.296 234.997,84.218 233.535,84.615 233.289 C 84.956 233.079,84.960 232.626,84.620 232.626 C 84.477 232.626,84.289 232.908,84.203 233.252 M69.549 233.475 C 69.144 233.880,69.158 234.231,69.601 234.816 C 69.914 235.228,69.954 235.159,69.954 234.219 C 69.954 233.014,69.974 233.050,69.549 233.475 M76.713 235.345 L 76.790 237.268 78.117 237.268 L 79.443 237.268 79.521 235.345 C 79.570 234.136,79.496 233.422,79.322 233.422 C 79.160 233.422,79.045 234.085,79.045 235.013 L 79.045 236.605 78.117 236.605 L 77.188 236.605 77.188 235.013 C 77.188 234.085,77.073 233.422,76.911 233.422 C 76.737 233.422,76.664 234.136,76.713 235.345 M56.284 235.080 L 56.233 236.605 55.305 236.605 C 54.657 236.605,54.377 236.725,54.377 237.003 C 54.377 237.524,56.190 237.557,56.389 237.039 C 56.465 236.841,56.484 235.975,56.431 235.116 L 56.334 233.554 56.284 235.080 M73.873 234.218 C 73.873 234.520,73.477 234.634,72.215 234.694 C 70.612 234.771,70.113 234.485,70.745 233.852 C 71.125 233.473,73.873 233.794,73.873 234.218 M67.639 235.878 C 67.639 236.108,67.729 236.345,67.838 236.407 C 67.948 236.468,67.900 236.486,67.732 236.447 C 67.563 236.408,67.356 236.446,67.270 236.532 C 67.012 236.790,67.668 237.401,68.202 237.401 C 68.868 237.401,68.849 236.557,68.170 235.942 C 67.714 235.529,67.639 235.520,67.639 235.878 M88.350 236.273 C 88.201 236.529,88.076 236.592,88.072 236.414 C 88.058 235.879,87.268 236.356,87.268 236.898 C 87.268 237.626,88.182 237.532,88.693 236.752 C 89.024 236.247,89.397 236.082,90.381 236.004 L 91.645 235.905 90.133 235.857 C 88.939 235.819,88.564 235.907,88.350 236.273 " stroke="none" fill="#cbcbcb" fill-rule="evenodd"></path></g></svg> \ No newline at end of file
diff --git a/docs/report/trex_performance_tests/overview.rst b/docs/report/trex_performance_tests/overview.rst
deleted file mode 100644
index 8ad8850ea8..0000000000
--- a/docs/report/trex_performance_tests/overview.rst
+++ /dev/null
@@ -1,83 +0,0 @@
-Overview
-========
-
-TRex performance test results are reported for a range of processors.
-For description of physical testbeds used for TRex performance tests
-please refer to :ref:`tested_physical_topologies`.
-
-Logical Topology
-----------------
-
-CSIT TRex performance tests are executed on physical testbeds described
-in :ref:`tested_physical_topologies`. Logical topology use 1 nic that has
-loopback connected ports. See figure below.
-
-.. only:: latex
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_tmp/src/trex_performance_tests/}}
- \includegraphics[width=0.90\textwidth]{logical-TRex-nic2nic}
- \label{fig:logical-TRex-nic2nic}
- \end{figure}
-
-.. only:: html
-
- .. figure:: logical-TRex-nic2nic.svg
- :alt: logical-TRex-nic2nic
- :align: center
-
-
-Performance Tests Coverage
---------------------------
-
-Performance tests measure following metrics for tested TRex
-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%.
-
-- Two-way Packet Latency: measured both east-west and west-east at different
- offered packet loads:
-
- - 90% of discovered PDR throughput.
- - 50% of discovered PDR throughput.
- - 10% of discovered PDR throughput.
- - Minimal offered load.
-
-|csit-release| includes tests using the following TRex traffic profiles
-(corresponding to data plane functionality when DUT is used)
-performance tested across a range of NIC drivers and NIC models:
-
-+-----------------------+----------------------------------------------+
-| Traffic profile | Corresponding dataplane functionality |
-+=======================+==============================================+
-| IPv4 Base | IPv4 routing. |
-+-----------------------+----------------------------------------------+
-| IPv4 Scale | IPv4 routing with 2M entries. |
-+-----------------------+----------------------------------------------+
-| IPv6 Base | IPv6 routing. |
-+-----------------------+----------------------------------------------+
-| IPv6 Scale | IPv6 routing with 2M entries. |
-+-----------------------+----------------------------------------------+
-| L2BD Scale | L2 Bridge-Domain switching of untagged |
-| | Ethernet frames. |
-+-----------------------+----------------------------------------------+
-
-
-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/trex_performance_tests/packet_latency/2n-skx-x710.rst b/docs/report/trex_performance_tests/packet_latency/2n-skx-x710.rst
deleted file mode 100644
index 7bad4c4eae..0000000000
--- a/docs/report/trex_performance_tests/packet_latency/2n-skx-x710.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>
-
-2n-skx-x710
-~~~~~~~~~~~
-
-CSIT source code for the test cases used for plots can be found in
-`CSIT git repository <https://git.fd.io/csit/tree/tests/trex/perf?h=rls2206>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-ip4routing-base-scale
--------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-10ge2p1x710-64b--ethip4-ip4base-tg" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/trex/hdrh-lat-percentile-2n-skx-10ge2p1x710-64b--ethip4-ip4base-tg.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/trex/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-10ge2p1x710-64b--ethip4-ip4base-tg}
- \label{fig:hdrh-lat-percentile-2n-skx-10ge2p1x710-64b--ethip4-ip4base-tg}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-10ge2p1x710-64b--ethip4-ip4scale2m-tg" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/trex/hdrh-lat-percentile-2n-skx-10ge2p1x710-64b--ethip4-ip4scale2m-tg.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/trex/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-10ge2p1x710-64b--ethip4-ip4scale2m-tg}
- \label{fig:hdrh-lat-percentile-2n-skx-10ge2p1x710-64b--ethip4-ip4scale2m-tg}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-78b-ip6routing-base-scale
--------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-10ge2p1x710-78b--ethip6-ip6base-tg" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/trex/hdrh-lat-percentile-2n-skx-10ge2p1x710-78b--ethip6-ip6base-tg.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/trex/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-10ge2p1x710-78b--ethip6-ip6base-tg}
- \label{fig:hdrh-lat-percentile-2n-skx-10ge2p1x710-78b--ethip6-ip6base-tg}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-10ge2p1x710-78b--ethip6-ip6scale2m-tg" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/trex/hdrh-lat-percentile-2n-skx-10ge2p1x710-78b--ethip6-ip6scale2m-tg.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/trex/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-10ge2p1x710-78b--ethip6-ip6scale2m-tg}
- \label{fig:hdrh-lat-percentile-2n-skx-10ge2p1x710-78b--ethip6-ip6scale2m-tg}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-l2switching-scale
----------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-10ge2p1x710-64b--eth-l2bdscale1mmaclrn-tg" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/trex/hdrh-lat-percentile-2n-skx-10ge2p1x710-64b--eth-l2bdscale1mmaclrn-tg.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/trex/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{hdrh-lat-percentile-2n-skx-10ge2p1x710-64b--eth-l2bdscale1mmaclrn-tg}
- \label{fig:hdrh-lat-percentile-2n-skx-10ge2p1x710-64b--eth-l2bdscale1mmaclrn-tg}
- \end{figure}
diff --git a/docs/report/trex_performance_tests/packet_latency/index.rst b/docs/report/trex_performance_tests/packet_latency/index.rst
deleted file mode 100644
index a4e0bdfd62..0000000000
--- a/docs/report/trex_performance_tests/packet_latency/index.rst
+++ /dev/null
@@ -1,42 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-Packet Latency
-==============
-
-TRex 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: 2n-skx.
-
-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.
-
-For more details, see :ref:`latency_methodology`.
-
-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 are stored in
- `build logs from FD.io trex performance job 2n-skx`_.
-
-.. toctree::
- :maxdepth: 3
-
- 2n-skx-x710
diff --git a/docs/report/trex_performance_tests/packet_throughput_graphs/2n-skx-x710.rst b/docs/report/trex_performance_tests/packet_throughput_graphs/2n-skx-x710.rst
deleted file mode 100644
index ba1c375275..0000000000
--- a/docs/report/trex_performance_tests/packet_throughput_graphs/2n-skx-x710.rst
+++ /dev/null
@@ -1,258 +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/trex/perf?h=rls2206>`_.
-
-.. raw:: latex
-
- \clearpage
-
-64b-ip4routing-base-scale
--------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/trex/2n-skx-x710-64b--ip4-base-scale-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/trex/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-x710-64b--ip4-base-scale-ndr}
- \label{fig:2n-skx-x710-64b--ip4-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/trex/2n-skx-x710-64b--ip4-base-scale-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/trex/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-x710-64b--ip4-base-scale-pdr}
- \label{fig:2n-skx-x710-64b--ip4-base-scale-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-ip4routing-[udp|tcp]-stf-cps
---------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/trex/2n-skx-x710-64b--ip4routing-stf-cps-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/trex/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-x710-64b--ip4routing-stf-cps-ndr}
- \label{fig:2n-skx-x710-64b--ip4routing-stf-cps-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/trex/2n-skx-x710-64b--ip4routing-stf-cps-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/trex/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-x710-64b--ip4routing-stf-cps-pdr}
- \label{fig:2n-skx-x710-64b--ip4routing-stf-cps-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-ip4routing-[udp|tcp]-stf-pps
---------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/trex/2n-skx-x710-64b--ip4routing-stf-pps-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/trex/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-x710-64b--ip4routing-stf-pps-ndr}
- \label{fig:2n-skx-x710-64b--ip4routing-stf-pps-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="06" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/trex/2n-skx-x710-64b--ip4routing-stf-pps-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/trex/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-x710-64b--ip4routing-stf-pps-pdr}
- \label{fig:2n-skx-x710-64b--ip4routing-stf-pps-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-78b-ip6routing-base-scale
--------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="07" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/trex/2n-skx-x710-78b--ip6-base-scale-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/trex/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-x710-78b--ip6-base-scale-ndr}
- \label{fig:2n-skx-x710-78b--ip6-base-scale-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="08" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/trex/2n-skx-x710-78b--ip6-base-scale-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/trex/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-x710-78b--ip6-base-scale-pdr}
- \label{fig:2n-skx-x710-78b--ip6-base-scale-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-l2switching-scale
----------------------
-
-.. raw:: html
-
- <center>
- <iframe id="09" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/trex/2n-skx-x710-64b--l2-scale-ndr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/trex/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-x710-64b--l2-scale-ndr}
- \label{fig:2n-skx-x710-64b--l2-scale-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="10" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/trex/2n-skx-x710-64b--l2-scale-pdr.html"></iframe>
- <p><br></p>
- </center>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/trex/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-x710-64b--l2-scale-pdr}
- \label{fig:2n-skx-x710-64b--l2-scale-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
diff --git a/docs/report/trex_performance_tests/packet_throughput_graphs/index.rst b/docs/report/trex_performance_tests/packet_throughput_graphs/index.rst
deleted file mode 100644
index f1138c74ac..0000000000
--- a/docs/report/trex_performance_tests/packet_throughput_graphs/index.rst
+++ /dev/null
@@ -1,55 +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:
-2n-skx. 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 are stored in
- `build logs from FD.io trex performance job 2n-skx`_.
- Required per test case data set size is **10** and for TRex tests
- this is the actual size, as all scheduled test executions completed
- successfully.
-
-.. toctree::
- :maxdepth: 3
-
- 2n-skx-x710
diff --git a/docs/report/trex_performance_tests/test_environment.rst b/docs/report/trex_performance_tests/test_environment.rst
deleted file mode 100644
index 06b6d733a5..0000000000
--- a/docs/report/trex_performance_tests/test_environment.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-.. raw:: latex
-
- \clearpage
-
-.. include:: ../introduction/test_environment_intro.rst
-
-.. include:: ../introduction/test_environment_changes_tg.rst
-
-
-SUT Settings - TRex
--------------------
-
-.. include:: ../introduction/test_environment_tg.rst
diff --git a/docs/report/trex_performance_tests/throughput_trending.rst b/docs/report/trex_performance_tests/throughput_trending.rst
deleted file mode 100644
index 9106cb4bdf..0000000000
--- a/docs/report/trex_performance_tests/throughput_trending.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-Throughput Trending
--------------------
-
-CSIT provides continuous performance trending for master branch:
-
-#. `TRex Trending Graphs <https://s3-docs.fd.io/csit/master/trending/ndrpdr_trending/trex.html>`_:
- per TRex test case throughput trend, trend compliance and summary of
- detected anomalies. We expect TRex to hit the curently used bps or pps limit,
- so no anomalies here (unless we change those limits in CSIT).
-
-#. `TRex Latency Graphs <https://s3-docs.fd.io/csit/master/trending/ndrpdr_latency_trending/trex.html>`_:
- per TRex build NDRPDR latency measurements against the trendline.
- We have seen in past that the latency numbers can depend on TRex version,
- NIC firmware, or driver used.
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 acccffc3c0..0000000000
--- a/docs/report/vpp_device_tests/csit_release_notes.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-Release Notes
-=============
-
-Changes in |csit-release|
--------------------------
-
-#. TEST FRAMEWORK
-
- - No updates
-
-Known Issues
-------------
-
-List of known issues in |csit-release| for VPP functional tests in VPP Device:
-
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| # | JiraID | Issue Description |
-+====+=========================================+===========================================================================================================+
-| | | |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
diff --git a/docs/report/vpp_device_tests/index.rst b/docs/report/vpp_device_tests/index.rst
deleted file mode 100644
index 841ea98359..0000000000
--- a/docs/report/vpp_device_tests/index.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-VPP Device
-==========
-
-.. toctree::
-
- overview
- csit_release_notes
- test_environment
diff --git a/docs/report/vpp_device_tests/overview.rst b/docs/report/vpp_device_tests/overview.rst
deleted file mode 100644
index a596ae97ff..0000000000
--- a/docs/report/vpp_device_tests/overview.rst
+++ /dev/null
@@ -1,173 +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 (classify) | Ingress Access Control List security for L2 |
-| | Bridge-Domain MAC switching, IPv4 routing, |
-| | IPv6 routing. |
-+-----------------------+----------------------------------------------+
-| ACL (acl_plugin) | Ingress and Egress Access Control List |
-| | security in stateless and stateful mode for |
-| | L2 Bridge-Domain MAC switching, IPv4 |
-| | routing, IPv6 routing. |
-+-----------------------+----------------------------------------------+
-| ADL | ADL address allow-list and block-list |
-| | filtering for IPv4 and IPv6 routing. |
-+-----------------------+----------------------------------------------+
-| GENEVE | GENEVE tunnels for IPv4 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. |
-+-----------------------+----------------------------------------------+
-| MACIP (acl_plugin) | Ingress Access Control List security for L2 |
-| | Bridge-Domain MAC switching based on mix |
-| | of MAC and IP address matches. |
-+-----------------------+----------------------------------------------+
-| 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 2fe4adb439..0000000000
--- a/docs/report/vpp_device_tests/test_environment.rst
+++ /dev/null
@@ -1,581 +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: E810-2CQDA2 2p100GbE 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
-(Docker container)` 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 (Docker container)` 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 (Continuous System Integration and Testing)` environment including
-:abbr:`CSIT (Continuous System Integration and Testing)` 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 (Docker container)` 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 (Docker container)` acts as an :abbr:`SUT (System Under Test)`.
-Any :abbr:`DUT (Device Under Test)` or :abbr:`TG (Traffic Generator)`
-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 (Virtual Functions)` for all whitelisted PCI
- device.
-
-Service is considered active even when all of its processes exited successfully.
-Stopping service will automatically remove :abbr:`VFs (Virtual Functions)`.
-
-::
-
- [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 (Virtual Functions)` initialization (useful for e.g. excluding
- management network interfaces).
-- **pci_whitelist**: PCI addresses to be included for
- :abbr:`VFs (Virtual Functions)` 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 devices are linked to running containers and mutex is exited.
-Selected VF network device automatically disappear 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 virtual 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 instead of root.
-
-Maintainability
-~~~~~~~~~~~~~~~
-
-.. note::
-
- Docker image distribution: Create jenkins jobs with full pipeline 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/fdio.infra.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_2n-icx_testbeds.rst b/docs/report/vpp_performance_tests/comparisons/2n-clx_vs_2n-icx_testbeds.rst
deleted file mode 100644
index 81f63e963c..0000000000
--- a/docs/report/vpp_performance_tests/comparisons/2n-clx_vs_2n-icx_testbeds.rst
+++ /dev/null
@@ -1,55 +0,0 @@
-2n-Icx 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 Cascadelake (2n-
-clx) and 2-Node Icelake (2n-icx) physical testbed types, in 1-core,
-2-core and 4-core configurations.
-
-.. note::
-
- Test results are stored in
- `build logs from FD.io vpp performance job 2n-icx`_ and
- `build logs from FD.io 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-clx-2n-icx-1c-ndr.html>`_
- - `HTML 2c NDR comparison <performance-compare-testbeds-2n-clx-2n-icx-2c-ndr.html>`_
- - `ASCII 1c NDR comparison <../../_static/vpp/performance-compare-testbeds-2n-clx-2n-icx-1c-ndr.txt>`_
- - `ASCII 2c NDR comparison <../../_static/vpp/performance-compare-testbeds-2n-clx-2n-icx-2c-ndr.txt>`_
- - `CSV 1c NDR comparison <../../_static/vpp/performance-compare-testbeds-2n-clx-2n-icx-1c-ndr-csv.csv>`_
- - `CSV 2c NDR comparison <../../_static/vpp/performance-compare-testbeds-2n-clx-2n-icx-2c-ndr-csv.csv>`_
-
-PDR Comparison
-~~~~~~~~~~~~~~
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1c PDR comparison <performance-compare-testbeds-2n-clx-2n-icx-1c-pdr.html>`_
- - `HTML 2c PDR comparison <performance-compare-testbeds-2n-clx-2n-icx-2c-pdr.html>`_
- - `ASCII 1c PDR comparison <../../_static/vpp/performance-compare-testbeds-2n-clx-2n-icx-1c-pdr.txt>`_
- - `ASCII 2c PDR comparison <../../_static/vpp/performance-compare-testbeds-2n-clx-2n-icx-2c-pdr.txt>`_
- - `CSV 1c PDR comparison <../../_static/vpp/performance-compare-testbeds-2n-clx-2n-icx-1c-pdr-csv.csv>`_
- - `CSV 2c PDR comparison <../../_static/vpp/performance-compare-testbeds-2n-clx-2n-icx-2c-pdr-csv.csv>`_
-
-MRR Comparison
-~~~~~~~~~~~~~~
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1c MRR comparison <performance-compare-testbeds-2n-clx-2n-icx-1c-mrr.html>`_
- - `HTML 2c MRR comparison <performance-compare-testbeds-2n-clx-2n-icx-2c-mrr.html>`_
- - `HTML 4c MRR comparison <performance-compare-testbeds-2n-clx-2n-icx-4c-mrr.html>`_
- - `ASCII 1c MRR comparison <../../_static/vpp/performance-compare-testbeds-2n-clx-2n-icx-1c-mrr.txt>`_
- - `ASCII 2c MRR comparison <../../_static/vpp/performance-compare-testbeds-2n-clx-2n-icx-2c-mrr.txt>`_
- - `ASCII 4c MRR comparison <../../_static/vpp/performance-compare-testbeds-2n-clx-2n-icx-4c-mrr.txt>`_
- - `CSV 1c MRR comparison <../../_static/vpp/performance-compare-testbeds-2n-clx-2n-icx-1c-mrr-csv.csv>`_
- - `CSV 2c MRR comparison <../../_static/vpp/performance-compare-testbeds-2n-clx-2n-icx-2c-mrr-csv.csv>`_
- - `CSV 4c MRR comparison <../../_static/vpp/performance-compare-testbeds-2n-clx-2n-icx-4c-mrr-csv.csv>`_
diff --git a/docs/report/vpp_performance_tests/comparisons/2n-icx_vs_2n-skx_testbeds.rst b/docs/report/vpp_performance_tests/comparisons/2n-icx_vs_2n-skx_testbeds.rst
deleted file mode 100644
index d1cc872954..0000000000
--- a/docs/report/vpp_performance_tests/comparisons/2n-icx_vs_2n-skx_testbeds.rst
+++ /dev/null
@@ -1,55 +0,0 @@
-2n-Icx vs 2n-Skx Testbeds
--------------------------
-
-Relative comparison of |vpp-release| packet throughput (NDR, PDR and
-MRR) is calculated for the same tests executed on 2-Node Cascadelake (2n-
-skx) and 2-Node Icelake (2n-icx) physical testbed types, in 1-core,
-2-core and 4-core configurations.
-
-.. note::
-
- Test results are stored in
- `build logs from FD.io vpp performance job 2n-icx`_ and
- `build logs from FD.io 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-testbeds-2n-skx-2n-icx-1c-ndr.html>`_
- - `HTML 2c NDR comparison <performance-compare-testbeds-2n-skx-2n-icx-2c-ndr.html>`_
- - `ASCII 1c NDR comparison <../../_static/vpp/performance-compare-testbeds-2n-skx-2n-icx-1c-ndr.txt>`_
- - `ASCII 2c NDR comparison <../../_static/vpp/performance-compare-testbeds-2n-skx-2n-icx-2c-ndr.txt>`_
- - `CSV 1c NDR comparison <../../_static/vpp/performance-compare-testbeds-2n-skx-2n-icx-1c-ndr-csv.csv>`_
- - `CSV 2c NDR comparison <../../_static/vpp/performance-compare-testbeds-2n-skx-2n-icx-2c-ndr-csv.csv>`_
-
-PDR Comparison
-~~~~~~~~~~~~~~
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1c PDR comparison <performance-compare-testbeds-2n-skx-2n-icx-1c-pdr.html>`_
- - `HTML 2c PDR comparison <performance-compare-testbeds-2n-skx-2n-icx-2c-pdr.html>`_
- - `ASCII 1c PDR comparison <../../_static/vpp/performance-compare-testbeds-2n-skx-2n-icx-1c-pdr.txt>`_
- - `ASCII 2c PDR comparison <../../_static/vpp/performance-compare-testbeds-2n-skx-2n-icx-2c-pdr.txt>`_
- - `CSV 1c PDR comparison <../../_static/vpp/performance-compare-testbeds-2n-skx-2n-icx-1c-pdr-csv.csv>`_
- - `CSV 2c PDR comparison <../../_static/vpp/performance-compare-testbeds-2n-skx-2n-icx-2c-pdr-csv.csv>`_
-
-MRR Comparison
-~~~~~~~~~~~~~~
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1c MRR comparison <performance-compare-testbeds-2n-skx-2n-icx-1c-mrr.html>`_
- - `HTML 2c MRR comparison <performance-compare-testbeds-2n-skx-2n-icx-2c-mrr.html>`_
- - `HTML 4c MRR comparison <performance-compare-testbeds-2n-skx-2n-icx-4c-mrr.html>`_
- - `ASCII 1c MRR comparison <../../_static/vpp/performance-compare-testbeds-2n-skx-2n-icx-1c-mrr.txt>`_
- - `ASCII 2c MRR comparison <../../_static/vpp/performance-compare-testbeds-2n-skx-2n-icx-2c-mrr.txt>`_
- - `ASCII 4c MRR comparison <../../_static/vpp/performance-compare-testbeds-2n-skx-2n-icx-4c-mrr.txt>`_
- - `CSV 1c MRR comparison <../../_static/vpp/performance-compare-testbeds-2n-skx-2n-icx-1c-mrr-csv.csv>`_
- - `CSV 2c MRR comparison <../../_static/vpp/performance-compare-testbeds-2n-skx-2n-icx-2c-mrr-csv.csv>`_
- - `CSV 4c MRR comparison <../../_static/vpp/performance-compare-testbeds-2n-skx-2n-icx-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 89145ff823..0000000000
--- a/docs/report/vpp_performance_tests/comparisons/2n-skx_vs_2n-clx_testbeds.rst
+++ /dev/null
@@ -1,54 +0,0 @@
-2n-Clx vs 2n-Skx 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 are stored in
- `build logs from FD.io vpp performance job 2n-skx`_ and
- `build logs from FD.io 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 f929d1bfaf..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 are stored in
- `build logs from FD.io vpp performance job 3n-skx`_ and
- `build logs from FD.io 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-icx_testbeds.rst b/docs/report/vpp_performance_tests/comparisons/3n-skx_vs_3n-icx_testbeds.rst
deleted file mode 100644
index 593924ea19..0000000000
--- a/docs/report/vpp_performance_tests/comparisons/3n-skx_vs_3n-icx_testbeds.rst
+++ /dev/null
@@ -1,58 +0,0 @@
-
-.. _vpp_compare_topologies_3n-skx_vs_3n-icx:
-
-3n-Icx vs 3n-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 3-Node Icelake (3n-icx) physical testbed types, in 1-core,
-2-core and 4-core configurations.
-
-.. note::
-
- Test results are stored in
- `build logs from FD.io vpp performance job 3n-skx`_ and
- `build logs from FD.io vpp performance job 3n-icx`_
- 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-skx-3n-icx-1c-ndr.html>`_
- - `HTML 2c NDR comparison <performance-compare-testbeds-3n-skx-3n-icx-2c-ndr.html>`_
- - `ASCII 1c NDR comparison <../../_static/vpp/performance-compare-testbeds-3n-skx-3n-icx-1c-ndr.txt>`_
- - `ASCII 2c NDR comparison <../../_static/vpp/performance-compare-testbeds-3n-skx-3n-icx-2c-ndr.txt>`_
- - `CSV 1c NDR comparison <../../_static/vpp/performance-compare-testbeds-3n-skx-3n-icx-1c-ndr-csv.csv>`_
- - `CSV 2c NDR comparison <../../_static/vpp/performance-compare-testbeds-3n-skx-3n-icx-2c-ndr-csv.csv>`_
-
-PDR Comparison
-~~~~~~~~~~~~~~
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1c PDR comparison <performance-compare-testbeds-3n-skx-3n-icx-1c-pdr.html>`_
- - `HTML 2c PDR comparison <performance-compare-testbeds-3n-skx-3n-icx-2c-pdr.html>`_
- - `ASCII 1c PDR comparison <../../_static/vpp/performance-compare-testbeds-3n-skx-3n-icx-1c-pdr.txt>`_
- - `ASCII 2c PDR comparison <../../_static/vpp/performance-compare-testbeds-3n-skx-3n-icx-2c-pdr.txt>`_
- - `CSV 1c PDR comparison <../../_static/vpp/performance-compare-testbeds-3n-skx-3n-icx-1c-pdr-csv.csv>`_
- - `CSV 2c PDR comparison <../../_static/vpp/performance-compare-testbeds-3n-skx-3n-icx-2c-pdr-csv.csv>`_
-
-MRR Comparison
-~~~~~~~~~~~~~~
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1c MRR comparison <performance-compare-testbeds-3n-skx-3n-icx-1c-mrr.html>`_
- - `HTML 2c MRR comparison <performance-compare-testbeds-3n-skx-3n-icx-2c-mrr.html>`_
- - `HTML 4c MRR comparison <performance-compare-testbeds-3n-skx-3n-icx-4c-mrr.html>`_
- - `ASCII 1c MRR comparison <../../_static/vpp/performance-compare-testbeds-3n-skx-3n-icx-1c-mrr.txt>`_
- - `ASCII 2c MRR comparison <../../_static/vpp/performance-compare-testbeds-3n-skx-3n-icx-2c-mrr.txt>`_
- - `ASCII 4c MRR comparison <../../_static/vpp/performance-compare-testbeds-3n-skx-3n-icx-4c-mrr.txt>`_
- - `CSV 1c MRR comparison <../../_static/vpp/performance-compare-testbeds-3n-skx-3n-icx-1c-mrr-csv.csv>`_
- - `CSV 2c MRR comparison <../../_static/vpp/performance-compare-testbeds-3n-skx-3n-icx-2c-mrr-csv.csv>`_
- - `CSV 4c MRR comparison <../../_static/vpp/performance-compare-testbeds-3n-skx-3n-icx-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 9418bd1988..0000000000
--- a/docs/report/vpp_performance_tests/comparisons/current_vs_previous_release.rst
+++ /dev/null
@@ -1,695 +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), 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 are stored in
-
- - `build logs from FD.io vpp performance job 2n-icx`_,
- - `build logs from FD.io vpp performance job 3n-icx`_,
- - `build logs from FD.io vpp performance job 2n-skx`_,
- - `build logs from FD.io vpp performance job 3n-skx`_,
- - `build logs from FD.io vpp performance job 2n-clx`_,
- - `build logs from FD.io vpp performance job 2n-zn2`_,
- - `build logs from FD.io vpp performance job 2n-dnv`_,
- - `build logs from FD.io vpp performance job 3n-dnv`_,
- - `build logs from FD.io vpp performance job 3n-tsh`_,
- - `build logs from FD.io vpp performance job 2n-tx2`_,
- - `build logs from FD.io vpp performance job 2n-aws`_,
-
- with RF result files csit-vpp-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
-
-2n-icx-xxv710
-~~~~~~~~~~~~~
-
-NDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c NDR comparison <performance-changes-2n-icx-2t1c-ndr.html>`_
- - `HTML 4t2c NDR comparison <performance-changes-2n-icx-4t2c-ndr.html>`_
- - `ASCII 2t1c NDR comparison <../../_static/vpp/performance-changes-2n-icx-2t1c-ndr.txt>`_
- - `ASCII 4t2c NDR comparison <../../_static/vpp/performance-changes-2n-icx-4t2c-ndr.txt>`_
- - `CSV 2t1c NDR comparison <../../_static/vpp/performance-changes-2n-icx-2t1c-ndr-csv.csv>`_
- - `CSV 4t2c NDR comparison <../../_static/vpp/performance-changes-2n-icx-4t2c-ndr-csv.csv>`_
-
-PDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c PDR comparison <performance-changes-2n-icx-2t1c-pdr.html>`_
- - `HTML 4t2c PDR comparison <performance-changes-2n-icx-4t2c-pdr.html>`_
- - `ASCII 2t1c PDR comparison <../../_static/vpp/performance-changes-2n-icx-2t1c-pdr.txt>`_
- - `ASCII 4t2c PDR comparison <../../_static/vpp/performance-changes-2n-icx-4t2c-pdr.txt>`_
- - `CSV 2t1c PDR comparison <../../_static/vpp/performance-changes-2n-icx-2t1c-pdr-csv.csv>`_
- - `CSV 4t2c PDR comparison <../../_static/vpp/performance-changes-2n-icx-4t2c-pdr-csv.csv>`_
-
-MRR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c MRR comparison <performance-changes-2n-icx-2t1c-mrr.html>`_
- - `HTML 4t2c MRR comparison <performance-changes-2n-icx-4t2c-mrr.html>`_
- - `HTML 8t4c MRR comparison <performance-changes-2n-icx-8t4c-mrr.html>`_
- - `ASCII 2t1c MRR comparison <../../_static/vpp/performance-changes-2n-icx-2t1c-mrr.txt>`_
- - `ASCII 4t2c MRR comparison <../../_static/vpp/performance-changes-2n-icx-4t2c-mrr.txt>`_
- - `ASCII 8t4c MRR comparison <../../_static/vpp/performance-changes-2n-icx-8t4c-mrr.txt>`_
- - `CSV 2t1c MRR comparison <../../_static/vpp/performance-changes-2n-icx-2t1c-mrr-csv.csv>`_
- - `CSV 4t2c MRR comparison <../../_static/vpp/performance-changes-2n-icx-4t2c-mrr-csv.csv>`_
- - `CSV 8t4c MRR comparison <../../_static/vpp/performance-changes-2n-icx-8t4c-mrr-csv.csv>`_
-
-Latency Comparison
-``````````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c PDR50, direction1, average value comparison <latency-changes-2n-icx-xxv710-2t1c-pdr50-d1-avg.html>`_
- - `HTML 2t1c PDR90, direction1, average value comparison <latency-changes-2n-icx-xxv710-2t1c-pdr90-d1-avg.html>`_
- - `HTML 2t1c PDR90, direction1, max value comparison <latency-changes-2n-icx-xxv710-2t1c-pdr90-d1-max.html>`_
- - `ASCII 2t1c PDR50, direction1, average value comparison <../../_static/vpp/latency-changes-2n-icx-xxv710-2t1c-pdr50-d1-avg.txt>`_
- - `ASCII 2t1c PDR90, direction1, average value comparison <../../_static/vpp/latency-changes-2n-icx-xxv710-2t1c-pdr90-d1-avg.txt>`_
- - `ASCII 2t1c PDR90, direction1, max value comparison <../../_static/vpp/latency-changes-2n-icx-xxv710-2t1c-pdr90-d1-max.txt>`_
- - `CSV 2t1c PDR50, direction1, average value comparison <../../_static/vpp/latency-changes-2n-icx-xxv710-2t1c-pdr50-d1-avg-csv.csv>`_
- - `CSV 2t1c PDR90, direction1, average value comparison <../../_static/vpp/latency-changes-2n-icx-xxv710-2t1c-pdr90-d1-avg-csv.csv>`_
- - `CSV 2t1c PDR90, direction1, max value comparison <../../_static/vpp/latency-changes-2n-icx-xxv710-2t1c-pdr90-d1-max-csv.csv>`_
-
-3n-icx-xxv710
-~~~~~~~~~~~~~
-
-NDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c NDR comparison <performance-changes-3n-icx-2t1c-ndr.html>`_
- - `HTML 4t2c NDR comparison <performance-changes-3n-icx-4t2c-ndr.html>`_
- - `ASCII 2t1c NDR comparison <../../_static/vpp/performance-changes-3n-icx-2t1c-ndr.txt>`_
- - `ASCII 4t2c NDR comparison <../../_static/vpp/performance-changes-3n-icx-4t2c-ndr.txt>`_
- - `CSV 2t1c NDR comparison <../../_static/vpp/performance-changes-3n-icx-2t1c-ndr-csv.csv>`_
- - `CSV 4t2c NDR comparison <../../_static/vpp/performance-changes-3n-icx-4t2c-ndr-csv.csv>`_
-
-PDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c PDR comparison <performance-changes-3n-icx-2t1c-pdr.html>`_
- - `HTML 4t2c PDR comparison <performance-changes-3n-icx-4t2c-pdr.html>`_
- - `ASCII 2t1c PDR comparison <../../_static/vpp/performance-changes-3n-icx-2t1c-pdr.txt>`_
- - `ASCII 4t2c PDR comparison <../../_static/vpp/performance-changes-3n-icx-4t2c-pdr.txt>`_
- - `CSV 2t1c PDR comparison <../../_static/vpp/performance-changes-3n-icx-2t1c-pdr-csv.csv>`_
- - `CSV 4t2c PDR comparison <../../_static/vpp/performance-changes-3n-icx-4t2c-pdr-csv.csv>`_
-
-MRR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c MRR comparison <performance-changes-3n-icx-2t1c-mrr.html>`_
- - `HTML 4t2c MRR comparison <performance-changes-3n-icx-4t2c-mrr.html>`_
- - `HTML 8t4c MRR comparison <performance-changes-3n-icx-8t4c-mrr.html>`_
- - `ASCII 2t1c MRR comparison <../../_static/vpp/performance-changes-3n-icx-2t1c-mrr.txt>`_
- - `ASCII 4t2c MRR comparison <../../_static/vpp/performance-changes-3n-icx-4t2c-mrr.txt>`_
- - `ASCII 8t4c MRR comparison <../../_static/vpp/performance-changes-3n-icx-8t4c-mrr.txt>`_
- - `CSV 2t1c MRR comparison <../../_static/vpp/performance-changes-3n-icx-2t1c-mrr-csv.csv>`_
- - `CSV 4t2c MRR comparison <../../_static/vpp/performance-changes-3n-icx-4t2c-mrr-csv.csv>`_
- - `CSV 8t4c MRR comparison <../../_static/vpp/performance-changes-3n-icx-8t4c-mrr-csv.csv>`_
-
-Latency Comparison
-``````````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c PDR50, direction1, average value comparison <latency-changes-3n-icx-xxv710-2t1c-pdr50-d1-avg.html>`_
- - `HTML 2t1c PDR90, direction1, average value comparison <latency-changes-3n-icx-xxv710-2t1c-pdr90-d1-avg.html>`_
- - `HTML 2t1c PDR90, direction1, max value comparison <latency-changes-3n-icx-xxv710-2t1c-pdr90-d1-max.html>`_
- - `ASCII 2t1c PDR50, direction1, average value comparison <../../_static/vpp/latency-changes-3n-icx-xxv710-2t1c-pdr50-d1-avg.txt>`_
- - `ASCII 2t1c PDR90, direction1, average value comparison <../../_static/vpp/latency-changes-3n-icx-xxv710-2t1c-pdr90-d1-avg.txt>`_
- - `ASCII 2t1c PDR90, direction1, max value comparison <../../_static/vpp/latency-changes-3n-icx-xxv710-2t1c-pdr90-d1-max.txt>`_
- - `CSV 2t1c PDR50, direction1, average value comparison <../../_static/vpp/latency-changes-3n-icx-xxv710-2t1c-pdr50-d1-avg-csv.csv>`_
- - `CSV 2t1c PDR90, direction1, average value comparison <../../_static/vpp/latency-changes-3n-icx-xxv710-2t1c-pdr90-d1-avg-csv.csv>`_
- - `CSV 2t1c PDR90, direction1, max value comparison <../../_static/vpp/latency-changes-3n-icx-xxv710-2t1c-pdr90-d1-max-csv.csv>`_
-
-2n-skx-xxv710
-~~~~~~~~~~~~~
-
-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>`_
-
-Latency Comparison
-``````````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c PDR50, direction1, average value comparison <latency-changes-2n-skx-xxv710-2t1c-pdr50-d1-avg.html>`_
- - `HTML 2t1c PDR90, direction1, average value comparison <latency-changes-2n-skx-xxv710-2t1c-pdr90-d1-avg.html>`_
- - `HTML 2t1c PDR90, direction1, max value comparison <latency-changes-2n-skx-xxv710-2t1c-pdr90-d1-max.html>`_
- - `ASCII 2t1c PDR50, direction1, average value comparison <../../_static/vpp/latency-changes-2n-skx-xxv710-2t1c-pdr50-d1-avg.txt>`_
- - `ASCII 2t1c PDR90, direction1, average value comparison <../../_static/vpp/latency-changes-2n-skx-xxv710-2t1c-pdr90-d1-avg.txt>`_
- - `ASCII 2t1c PDR90, direction1, max value comparison <../../_static/vpp/latency-changes-2n-skx-xxv710-2t1c-pdr90-d1-max.txt>`_
- - `CSV 2t1c PDR50, direction1, average value comparison <../../_static/vpp/latency-changes-2n-skx-xxv710-2t1c-pdr50-d1-avg-csv.csv>`_
- - `CSV 2t1c PDR90, direction1, average value comparison <../../_static/vpp/latency-changes-2n-skx-xxv710-2t1c-pdr90-d1-avg-csv.csv>`_
- - `CSV 2t1c PDR90, direction1, max value comparison <../../_static/vpp/latency-changes-2n-skx-xxv710-2t1c-pdr90-d1-max-csv.csv>`_
-
-3n-skx-xxv710
-~~~~~~~~~~~~~
-
-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>`_
-
-Latency Comparison
-``````````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c PDR50, direction1, average value comparison <latency-changes-3n-skx-xxv710-2t1c-pdr50-d1-avg.html>`_
- - `HTML 2t1c PDR90, direction1, average value comparison <latency-changes-3n-skx-xxv710-2t1c-pdr90-d1-avg.html>`_
- - `HTML 2t1c PDR90, direction1, max value comparison <latency-changes-3n-skx-xxv710-2t1c-pdr90-d1-max.html>`_
- - `ASCII 2t1c PDR50, direction1, average value comparison <../../_static/vpp/latency-changes-3n-skx-xxv710-2t1c-pdr50-d1-avg.txt>`_
- - `ASCII 2t1c PDR90, direction1, average value comparison <../../_static/vpp/latency-changes-3n-skx-xxv710-2t1c-pdr90-d1-avg.txt>`_
- - `ASCII 2t1c PDR90, direction1, max value comparison <../../_static/vpp/latency-changes-3n-skx-xxv710-2t1c-pdr90-d1-max.txt>`_
- - `CSV 2t1c PDR50, direction1, average value comparison <../../_static/vpp/latency-changes-3n-skx-xxv710-2t1c-pdr50-d1-avg-csv.csv>`_
- - `CSV 2t1c PDR90, direction1, average value comparison <../../_static/vpp/latency-changes-3n-skx-xxv710-2t1c-pdr90-d1-avg-csv.csv>`_
- - `CSV 2t1c PDR90, direction1, max value comparison <../../_static/vpp/latency-changes-3n-skx-xxv710-2t1c-pdr90-d1-max-csv.csv>`_
-
-Hoststack
-`````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML Hoststack comparison <performance-changes-3n-skx-hoststack.html>`_
- - `ASCII Hoststack comparison <../../_static/vpp/performance-changes-3n-skx-hoststack.txt>`_
- - `CSV Hoststack comparison <../../_static/vpp/performance-changes-3n-skx-hoststack-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>`_
-
-Latency Comparison
-``````````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c PDR50, direction1, average value comparison <latency-changes-2n-clx-xxv710-2t1c-pdr50-d1-avg.html>`_
- - `HTML 2t1c PDR90, direction1, average value comparison <latency-changes-2n-clx-xxv710-2t1c-pdr90-d1-avg.html>`_
- - `HTML 2t1c PDR90, direction1, max value comparison <latency-changes-2n-clx-xxv710-2t1c-pdr90-d1-max.html>`_
- - `ASCII 2t1c PDR50, direction1, average value comparison <../../_static/vpp/latency-changes-2n-clx-xxv710-2t1c-pdr50-d1-avg.txt>`_
- - `ASCII 2t1c PDR90, direction1, average value comparison <../../_static/vpp/latency-changes-2n-clx-xxv710-2t1c-pdr90-d1-avg.txt>`_
- - `ASCII 2t1c PDR90, direction1, max value comparison <../../_static/vpp/latency-changes-2n-clx-xxv710-2t1c-pdr90-d1-max.txt>`_
- - `CSV 2t1c PDR50, direction1, average value comparison <../../_static/vpp/latency-changes-2n-clx-xxv710-2t1c-pdr50-d1-avg-csv.csv>`_
- - `CSV 2t1c PDR90, direction1, average value comparison <../../_static/vpp/latency-changes-2n-clx-xxv710-2t1c-pdr90-d1-avg-csv.csv>`_
- - `CSV 2t1c PDR90, direction1, max value comparison <../../_static/vpp/latency-changes-2n-clx-xxv710-2t1c-pdr90-d1-max-csv.csv>`_
-
-VSAP
-````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML VSAP comparison <performance-changes-2n-clx-vsap.html>`_
- - `ASCII VSAP comparison <../../_static/vpp/performance-changes-2n-clx-vsap.txt>`_
- - `CSV VSAP comparison <../../_static/vpp/performance-changes-2n-clx-vsap-csv.csv>`_
-
-2n-clx-cx556a
-~~~~~~~~~~~~~
-
-NDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c NDR comparison <performance-changes-2n-clx-cx556a-2t1c-ndr.html>`_
- - `HTML 4t2c NDR comparison <performance-changes-2n-clx-cx556a-4t2c-ndr.html>`_
- - `ASCII 2t1c NDR comparison <../../_static/vpp/performance-changes-2n-clx-cx556a-2t1c-ndr.txt>`_
- - `ASCII 4t2c NDR comparison <../../_static/vpp/performance-changes-2n-clx-cx556a-4t2c-ndr.txt>`_
- - `CSV 2t1c NDR comparison <../../_static/vpp/performance-changes-2n-clx-cx556a-2t1c-ndr-csv.csv>`_
- - `CSV 4t2c NDR comparison <../../_static/vpp/performance-changes-2n-clx-cx556a-4t2c-ndr-csv.csv>`_
-
-PDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c PDR comparison <performance-changes-2n-clx-cx556a-2t1c-pdr.html>`_
- - `HTML 4t2c PDR comparison <performance-changes-2n-clx-cx556a-4t2c-pdr.html>`_
- - `ASCII 2t1c PDR comparison <../../_static/vpp/performance-changes-2n-clx-cx556a-2t1c-pdr.txt>`_
- - `ASCII 4t2c PDR comparison <../../_static/vpp/performance-changes-2n-clx-cx556a-4t2c-pdr.txt>`_
- - `CSV 2t1c PDR comparison <../../_static/vpp/performance-changes-2n-clx-cx556a-2t1c-pdr-csv.csv>`_
- - `CSV 4t2c PDR comparison <../../_static/vpp/performance-changes-2n-clx-cx556a-4t2c-pdr-csv.csv>`_
-
-MRR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c MRR comparison <performance-changes-2n-clx-cx556a-2t1c-mrr.html>`_
- - `HTML 4t2c MRR comparison <performance-changes-2n-clx-cx556a-4t2c-mrr.html>`_
- - `HTML 8t4c MRR comparison <performance-changes-2n-clx-cx556a-8t4c-mrr.html>`_
- - `ASCII 2t1c MRR comparison <../../_static/vpp/performance-changes-2n-clx-cx556a-2t1c-mrr.txt>`_
- - `ASCII 4t2c MRR comparison <../../_static/vpp/performance-changes-2n-clx-cx556a-4t2c-mrr.txt>`_
- - `ASCII 8t4c MRR comparison <../../_static/vpp/performance-changes-2n-clx-cx556a-8t4c-mrr.txt>`_
- - `CSV 2t1c MRR comparison <../../_static/vpp/performance-changes-2n-clx-cx556a-2t1c-mrr-csv.csv>`_
- - `CSV 4t2c MRR comparison <../../_static/vpp/performance-changes-2n-clx-cx556a-4t2c-mrr-csv.csv>`_
- - `CSV 8t4c MRR comparison <../../_static/vpp/performance-changes-2n-clx-cx556a-8t4c-mrr-csv.csv>`_
-
-Latency Comparison
-``````````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c PDR50, direction1, average value comparison <latency-changes-2n-clx-cx556a-2t1c-pdr50-d1-avg.html>`_
- - `HTML 2t1c PDR90, direction1, average value comparison <latency-changes-2n-clx-cx556a-2t1c-pdr90-d1-avg.html>`_
- - `HTML 2t1c PDR90, direction1, max value comparison <latency-changes-2n-clx-cx556a-2t1c-pdr90-d1-max.html>`_
- - `ASCII 2t1c PDR50, direction1, average value comparison <../../_static/vpp/latency-changes-2n-clx-cx556a-2t1c-pdr50-d1-avg.txt>`_
- - `ASCII 2t1c PDR90, direction1, average value comparison <../../_static/vpp/latency-changes-2n-clx-cx556a-2t1c-pdr90-d1-avg.txt>`_
- - `ASCII 2t1c PDR90, direction1, max value comparison <../../_static/vpp/latency-changes-2n-clx-cx556a-2t1c-pdr90-d1-max.txt>`_
- - `CSV 2t1c PDR50, direction1, average value comparison <../../_static/vpp/latency-changes-2n-clx-cx556a-2t1c-pdr50-d1-avg-csv.csv>`_
- - `CSV 2t1c PDR90, direction1, average value comparison <../../_static/vpp/latency-changes-2n-clx-cx556a-2t1c-pdr90-d1-avg-csv.csv>`_
- - `CSV 2t1c PDR90, direction1, max value comparison <../../_static/vpp/latency-changes-2n-clx-cx556a-2t1c-pdr90-d1-max-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>`_
-
-Latency Comparison
-``````````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c PDR50, direction1, average value comparison <latency-changes-2n-zn2-xxv710-2t1c-pdr50-d1-avg.html>`_
- - `HTML 2t1c PDR90, direction1, average value comparison <latency-changes-2n-zn2-xxv710-2t1c-pdr90-d1-avg.html>`_
- - `HTML 2t1c PDR90, direction1, max value comparison <latency-changes-2n-zn2-xxv710-2t1c-pdr90-d1-max.html>`_
- - `ASCII 2t1c PDR50, direction1, average value comparison <../../_static/vpp/latency-changes-2n-zn2-xxv710-2t1c-pdr50-d1-avg.txt>`_
- - `ASCII 2t1c PDR90, direction1, average value comparison <../../_static/vpp/latency-changes-2n-zn2-xxv710-2t1c-pdr90-d1-avg.txt>`_
- - `ASCII 2t1c PDR90, direction1, max value comparison <../../_static/vpp/latency-changes-2n-zn2-xxv710-2t1c-pdr90-d1-max.txt>`_
- - `CSV 2t1c PDR50, direction1, average value comparison <../../_static/vpp/latency-changes-2n-zn2-xxv710-2t1c-pdr50-d1-avg-csv.csv>`_
- - `CSV 2t1c PDR90, direction1, average value comparison <../../_static/vpp/latency-changes-2n-zn2-xxv710-2t1c-pdr90-d1-avg-csv.csv>`_
- - `CSV 2t1c PDR90, direction1, max value comparison <../../_static/vpp/latency-changes-2n-zn2-xxv710-2t1c-pdr90-d1-max-csv.csv>`_
-
-2n-dnv-x553
-~~~~~~~~~~~
-
-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-x553
-~~~~~~~~~~~
-
-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-x520
-~~~~~~~~~~~
-
-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>`_
-
-Latency Comparison
-``````````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1t1c PDR50, direction1, average value comparison <latency-changes-3n-tsh-x520-1t1c-pdr50-d1-avg.html>`_
- - `HTML 1t1c PDR90, direction1, average value comparison <latency-changes-3n-tsh-x520-1t1c-pdr90-d1-avg.html>`_
- - `HTML 1t1c PDR90, direction1, max value comparison <latency-changes-3n-tsh-x520-1t1c-pdr90-d1-max.html>`_
- - `ASCII 1t1c PDR50, direction1, average value comparison <../../_static/vpp/latency-changes-3n-tsh-x520-1t1c-pdr50-d1-avg.txt>`_
- - `ASCII 1t1c PDR90, direction1, average value comparison <../../_static/vpp/latency-changes-3n-tsh-x520-1t1c-pdr90-d1-avg.txt>`_
- - `ASCII 1t1c PDR90, direction1, max value comparison <../../_static/vpp/latency-changes-3n-tsh-x520-1t1c-pdr90-d1-max.txt>`_
- - `CSV 1t1c PDR50, direction1, average value comparison <../../_static/vpp/latency-changes-3n-tsh-x520-1t1c-pdr50-d1-avg-csv.csv>`_
- - `CSV 1t1c PDR90, direction1, average value comparison <../../_static/vpp/latency-changes-3n-tsh-x520-1t1c-pdr90-d1-avg-csv.csv>`_
- - `CSV 1t1c PDR90, direction1, max value comparison <../../_static/vpp/latency-changes-3n-tsh-x520-1t1c-pdr90-d1-max-csv.csv>`_
-
-2n-tx2-xl710
-~~~~~~~~~~~~
-
-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>`_
-
-Latency Comparison
-``````````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 1t1c PDR50, direction1, average value comparison <latency-changes-2n-tx2-xl710-1t1c-pdr50-d1-avg.html>`_
- - `HTML 1t1c PDR90, direction1, average value comparison <latency-changes-2n-tx2-xl710-1t1c-pdr90-d1-avg.html>`_
- - `HTML 1t1c PDR90, direction1, max value comparison <latency-changes-2n-tx2-xl710-1t1c-pdr90-d1-max.html>`_
- - `ASCII 1t1c PDR50, direction1, average value comparison <../../_static/vpp/latency-changes-2n-tx2-xl710-1t1c-pdr50-d1-avg.txt>`_
- - `ASCII 1t1c PDR90, direction1, average value comparison <../../_static/vpp/latency-changes-2n-tx2-xl710-1t1c-pdr90-d1-avg.txt>`_
- - `ASCII 1t1c PDR90, direction1, max value comparison <../../_static/vpp/latency-changes-2n-tx2-xl710-1t1c-pdr90-d1-max.txt>`_
- - `CSV 1t1c PDR50, direction1, average value comparison <../../_static/vpp/latency-changes-2n-tx2-xl710-1t1c-pdr50-d1-avg-csv.csv>`_
- - `CSV 1t1c PDR90, direction1, average value comparison <../../_static/vpp/latency-changes-2n-tx2-xl710-1t1c-pdr90-d1-avg-csv.csv>`_
- - `CSV 1t1c PDR90, direction1, max value comparison <../../_static/vpp/latency-changes-2n-tx2-xl710-1t1c-pdr90-d1-max-csv.csv>`_
-
-2n-aws-nitro50g
-~~~~~~~~~~~~~~~
-
-NDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c NDR comparison <performance-changes-2n-aws-2t1c-ndr.html>`_
- - `HTML 4t2c NDR comparison <performance-changes-2n-aws-4t2c-ndr.html>`_
- - `ASCII 2t1c NDR comparison <../../_static/vpp/performance-changes-2n-aws-2t1c-ndr.txt>`_
- - `ASCII 4t2c NDR comparison <../../_static/vpp/performance-changes-2n-aws-4t2c-ndr.txt>`_
- - `CSV 2t1c NDR comparison <../../_static/vpp/performance-changes-2n-aws-2t1c-ndr-csv.csv>`_
- - `CSV 4t2c NDR comparison <../../_static/vpp/performance-changes-2n-aws-4t2c-ndr-csv.csv>`_
-
-PDR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c PDR comparison <performance-changes-2n-aws-2t1c-pdr.html>`_
- - `HTML 4t2c PDR comparison <performance-changes-2n-aws-4t2c-pdr.html>`_
- - `ASCII 2t1c PDR comparison <../../_static/vpp/performance-changes-2n-aws-2t1c-pdr.txt>`_
- - `ASCII 4t2c PDR comparison <../../_static/vpp/performance-changes-2n-aws-4t2c-pdr.txt>`_
- - `CSV 2t1c PDR comparison <../../_static/vpp/performance-changes-2n-aws-2t1c-pdr-csv.csv>`_
- - `CSV 4t2c PDR comparison <../../_static/vpp/performance-changes-2n-aws-4t2c-pdr-csv.csv>`_
-
-MRR Comparison
-``````````````
-
-Comparison tables in HTML, ASCII and CSV formats:
-
- - `HTML 2t1c MRR comparison <performance-changes-2n-aws-2t1c-mrr.html>`_
- - `HTML 4t2c MRR comparison <performance-changes-2n-aws-4t2c-mrr.html>`_
- - `ASCII 2t1c MRR comparison <../../_static/vpp/performance-changes-2n-aws-2t1c-mrr.txt>`_
- - `ASCII 4t2c MRR comparison <../../_static/vpp/performance-changes-2n-aws-4t2c-mrr.txt>`_
- - `CSV 2t1c MRR comparison <../../_static/vpp/performance-changes-2n-aws-2t1c-mrr-csv.csv>`_
- - `CSV 4t2c MRR comparison <../../_static/vpp/performance-changes-2n-aws-4t2c-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 3b84884e40..0000000000
--- a/docs/report/vpp_performance_tests/comparisons/index.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. _vpp_throughput_comparisons:
-
-Comparisons
-===========
-
-.. toctree::
-
- current_vs_previous_release
- 2n-clx_vs_2n-icx_testbeds
- 2n-icx_vs_2n-skx_testbeds
- 2n-skx_vs_2n-clx_testbeds
- 3n-skx_vs_3n-icx_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 5334753b97..0000000000
--- a/docs/report/vpp_performance_tests/comparisons/nic_comparison.rst
+++ /dev/null
@@ -1,112 +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 3n-skx, 2n-skx testbeds.
-
-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 are stored in
-
- - `build logs from FD.io vpp performance job 3n-skx`_,
- - `build logs from FD.io 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 97639c9d0f..0000000000
--- a/docs/report/vpp_performance_tests/comparisons/soak_vs_ndr.rst
+++ /dev/null
@@ -1,37 +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 are stored in
- `build logs from FD.io vpp performance job 2n-icx`_,
- `build logs from FD.io vpp performance job 2n-skx`_,
- `build logs from FD.io 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-icx
-~~~~~~
-
- - `ASCII Soak vs NDR comparison <../../_static/vpp/soak-vs-ndr-2n-icx.txt>`_
- - `CSV Soak vs NDR comparison <../../_static/vpp/soak-vs-ndr-2n-icx.csv>`_
-
-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 aac124144c..0000000000
--- a/docs/report/vpp_performance_tests/csit_release_notes.rst
+++ /dev/null
@@ -1,172 +0,0 @@
-.. _vpp_performance_tests_release_notes:
-
-Release Notes
-=============
-
-Changes in |csit-release|
--------------------------
-
-#. VPP PERFORMANCE TESTS
-
- - **Reduction of tests**: Removed certain test variations executed
- iteratively for the report (as well as in daily and weekly
- trending) due to physical testbeds overload.
-
-#. TEST FRAMEWORK
-
- - **Removed ASTF PPS tests**: They provide no real benefit
- compared to TPUT tests. The ip4base variants renamed to TPUT.
-
- - **Changed TCP TPUT profiles**: The previous ones were found to be faulty.
- The new ones do not use bursts of packets to avoid CSIT-1830 and CSIT-1846.
-
- - **CSIT test environment** version has been updated to ver. 10, see
- :ref:`test_environment_versioning`.
-
- - **CSIT PAPI support**: Due to issues with PAPI performance, and
- deprecation of VAT, VPP CLI is used in CSIT for many VPP scale
- tests. See :ref:`vpp_known_issues`.
-
- - **General Code Housekeeping**: Ongoing code optimizations and bug
- fixes.
-
-#. PRESENTATION AND ANALYTICS LAYER
-
- - **Graphs improvements**: Updated Packet Latency graphs,
- see :ref:`latency_methodology`.
-
-.. raw:: latex
-
- \clearpage
-
-.. _vpp_known_issues:
-
-Known Issues
-------------
-
-New
-___
-
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| # | JiraID | Issue Description |
-+====+=========================================+===========================================================================================================+
-| 1 | `CSIT-1827 | 3n-icx, 3n-skx: all AVF crypto tests sporadically fail. 1518B with no traffic, IMIX with excessive |
-| | <https://jira.fd.io/browse/CSIT-1827>`_ | packet loss. |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| 2 | `CSIT-1830 | All testbeds: All TCP tput (and pps) tests are failing for small packets. |
-| | <https://jira.fd.io/browse/CSIT-1830>`_ | |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| 3 | `CSIT-1832 | 3n-alt: NDR 1 packet lost on random tests. |
-| | <https://jira.fd.io/browse/CSIT-1832>`_ | |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| 4 | `CSIT-1834 | 2n-icx, 2n-skx: sporadic AVF soak tests failing to find critical load with PLRsearch. |
-| | <https://jira.fd.io/browse/CSIT-1834>`_ | |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| 5 | `CSIT-1846 | 2n-skx, 2n-clx, 2n-icx: ALL 1518B TCP tput tests failing with big packet loss. |
-| | <https://jira.fd.io/browse/CSIT-1846>`_ | |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| 6 | `CSIT-1847 | 2n-skx: all 10vm-1t test failed with half of packets dropped. |
-| | <https://jira.fd.io/browse/CSIT-1847>`_ | |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| 7 | `CSIT-1849 | 2n-skx: UDP 16m tput tests fail to create all sessions. |
-| | <https://jira.fd.io/browse/CSIT-1849>`_ | |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-
-Previous
-________
-
-Issues reported in previous releases which still affect the current results.
-
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| # | JiraID | Issue Description |
-+====+=========================================+===========================================================================================================+
-| 1 | `CSIT-1799 | All NAT44-ED 16M scale tests fail while setting NAT44 address range. |
-| | <https://jira.fd.io/browse/CSIT-1799>`_ | |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| 2 | `CSIT-1800 | All Geneve L3 mode scale tests (1024 tunnels) are failing. |
-| | <https://jira.fd.io/browse/CSIT-1800>`_ | |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| 3 | `CSIT-1802 | AF-XDP - NDR tests failing from time to time. |
-| | <https://jira.fd.io/browse/CSIT-1802>`_ | |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| 4 | `CSIT-1803 | 3n-icx testbeds (Icelake): all IMIX aes128cbc-hmac512sha tests are failing due to excessive packet loss. |
-| | <https://jira.fd.io/browse/CSIT-1803>`_ | |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| 5 | `CSIT-1804 | 3n-tsh, 3n-alt testbed (Taishan, Altra): NDR tests failing from time to time. |
-| | <https://jira.fd.io/browse/CSIT-1804>`_ | |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| 6 | `CSIT-1812 | All IMIX NAT44DET 4m 16m scale tests fail due to not creating required session count. |
-| | <https://jira.fd.io/browse/CSIT-1812>`_ | |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| 7 | `CSIT-1782 | Multicore AVF tests are failing when trying to create interface. |
-| | <https://jira.fd.io/browse/CSIT-1782>`_ | Frequency is reduced by CSIT workaround, but occasional failures do still happen. |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| 8 | `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. |
-| +-----------------------------------------+ Currently, the time critical code uses VAT running large files with exec statements and CLI commands. |
-| | `VPP-1763 | Still, we needed to reduce the number of scale tests run to keep overall duration reasonable. |
-| | <https://jira.fd.io/browse/VPP-1763>`_ | More improvements needed to achieve sufficient configuration speed. |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| 9 | `CSIT-1785 | NAT44ED tests failing to establish all TCP sessions. |
-| | <https://jira.fd.io/browse/CSIT-1785>`_ | 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. |
-| | `VPP-1972 | CSIT removed the max scale NAT tests to avoid this issue. |
-| | <https://jira.fd.io/browse/VPP-1972>`_ | |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| 10 | `CSIT-1801 | 9000B payload frames not forwarded over tunnels due to violating supported Max Frame Size (VxLAN, LISP, |
-| | <https://jira.fd.io/browse/CSIT-1801>`_ | SRv6). |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| 11 | `CSIT-1808 | All tests with 9000B payload frames not forwarded over memif interfaces. |
-| | <https://jira.fd.io/browse/CSIT-1808>`_ | |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| 12 | `CSIT-1809 | All tests with 9000B payload frames not forwarded over vhostuser interfaces. |
-| | <https://jira.fd.io/browse/CSIT-1809>`_ | |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-
-Fixed
-_____
-
-Issues reported in previous releases which were fixed in this release:
-
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| # | JiraID | Issue Description |
-+====+=========================================+===========================================================================================================+
-| 1 | `CSIT-1810 | DPDK - performance regression with DPDK driver when Max Frame Size is set to less than 2023. |
-| | <https://jira.fd.io/browse/CSIT-1810>`_ | |
-| +-----------------------------------------+ |
-| | `VPP-1876 | Worse performance with DPDK driver when MTU is set to 2022 or less. |
-| | <https://jira.fd.io/browse/VPP-1876>`_ | |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| 2 | `CSIT-1811 | All 9000B NAT44DET 64k 1m scale tests fail due to bps rate set to high on TRex. |
-| | <https://jira.fd.io/browse/CSIT-1811>`_ | |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-| 3 | `CSIT-1791 | Performance regression in RDMA tests, due to CSIT environment changes. |
-| | <https://jira.fd.io/browse/CSIT-1791>`_ | Two symptoms: 1. 10-20% regression across most tests. 2. DUT performance cap just below 38 Mpps. |
-+----+-----------------------------------------+-----------------------------------------------------------------------------------------------------------+
-
-.. _vpp_rca:
-
-Root Cause Analysis for Performance Changes
--------------------------------------------
-
-List of RCAs in |csit-release| for VPP performance changes:
-
-+----+-----------------------------------------+-------------------------------------------------------------------------------------+
-| # | JiraID | Issue Description |
-+====+=========================================+=====================================================================================+
-| 1 | `CSIT-1851 | trending regression: various icelake tests around 2202-04-15 |
-| | <https://jira.fd.io/browse/CSIT-1851>`_ | Somewhat expected consequence of a VPP usability fix, |
-| | | the previous VPP compiler version was too new for the OS used. |
-+----+-----------------------------------------+-------------------------------------------------------------------------------------+
-| 2 | `VPP-2030 | regression: ip6base on ICX around 2022-03-23 |
-| | <https://jira.fd.io/browse/VPP-2030>`_ | "Loads blocked due to overlapping with a preceding store that cannot be forwarded." |
-| | | started happening in ip6-lookup graph node. |
-+----+-----------------------------------------+-------------------------------------------------------------------------------------+
-| 3 | `CSIT-1852 | 2n-zn2 mellanox performance cap |
-| | <https://jira.fd.io/browse/CSIT-1852>`_ | Old issue, only now distinguished from CSIT-1751. |
-| | | This testbed+nic combination is capped below 28 Mpps, cause not identified yet. |
-+----+-----------------------------------------+-------------------------------------------------------------------------------------+
-| 4 | `CSIT-1853 | trending regression: nat44ed cps around 2202-04-01 |
-| | <https://jira.fd.io/browse/CSIT-1853>`_ | VPP change added more computation to slow path (in order to support multiple VRFs). |
-| | | Not clear if the VPP implementation is optimized enough. |
-+----+-----------------------------------------+-------------------------------------------------------------------------------------+
diff --git a/docs/report/vpp_performance_tests/gso_testing/2n-clx.rst b/docs/report/vpp_performance_tests/gso_testing/2n-clx.rst
deleted file mode 100644
index a3e8b8cef9..0000000000
--- a/docs/report/vpp_performance_tests/gso_testing/2n-clx.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>
-
-2n-clx
-~~~~~~
-
-.. todo::
- Add introduction
-
-.. raw:: latex
-
- \clearpage
-
-1t1c
-----
-
-.. raw:: html
-
- <iframe id="ifrm01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-128kb-1t1c-ip4routing-iperf3.html"></iframe>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-128kb-1t1c-ip4routing-iperf3}
- \label{fig:2n-clx-128kb-1t1c-ip4routing-iperf3}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- 2t2c
- ----
-
- .. raw:: html
-
- <iframe id="ifrm02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-128kb-2t2c-ip4routing-iperf3.html"></iframe>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-128kb-2t2c-ip4routing-iperf3}
- \label{fig:2n-clx-128kb-2t2c-ip4routing-iperf3}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- 4t4c
- ----
-
- .. raw:: html
-
- <iframe id="ifrm03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-128kb-4t4c-ip4routing-iperf3.html"></iframe>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-128kb-4t4c-ip4routing-iperf3}
- \label{fig:2n-clx-128kb-4t4c-ip4routing-iperf3}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/gso_testing/2n-icx.rst b/docs/report/vpp_performance_tests/gso_testing/2n-icx.rst
deleted file mode 100644
index e2f6823d54..0000000000
--- a/docs/report/vpp_performance_tests/gso_testing/2n-icx.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>
-
-2n-icx
-~~~~~~
-
-.. todo::
- Add introduction
-
-.. raw:: latex
-
- \clearpage
-
-1t1c
-----
-
-.. raw:: html
-
- <iframe id="ifrm01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-icx-128kb-1t1c-ip4routing-iperf3.html"></iframe>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-icx-128kb-1t1c-ip4routing-iperf3}
- \label{fig:2n-icx-128kb-1t1c-ip4routing-iperf3}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- 2t2c
- ----
-
- .. raw:: html
-
- <iframe id="ifrm02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-icx-128kb-2t2c-ip4routing-iperf3.html"></iframe>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-icx-128kb-2t2c-ip4routing-iperf3}
- \label{fig:2n-icx-128kb-2t2c-ip4routing-iperf3}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- 4t4c
- ----
-
- .. raw:: html
-
- <iframe id="ifrm03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-icx-128kb-4t4c-ip4routing-iperf3.html"></iframe>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-icx-128kb-4t4c-ip4routing-iperf3}
- \label{fig:2n-icx-128kb-4t4c-ip4routing-iperf3}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/gso_testing/2n-skx.rst b/docs/report/vpp_performance_tests/gso_testing/2n-skx.rst
deleted file mode 100644
index 55d052537d..0000000000
--- a/docs/report/vpp_performance_tests/gso_testing/2n-skx.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>
-
-2n-skx
-~~~~~~
-
-.. todo::
- Add introduction
-
-.. raw:: latex
-
- \clearpage
-
-1t1c
-----
-
-.. raw:: html
-
- <iframe id="ifrm01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-128kb-1t1c-ip4routing-iperf3.html"></iframe>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-128kb-1t1c-ip4routing-iperf3}
- \label{fig:2n-skx-128kb-1t1c-ip4routing-iperf3}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- 2t2c
- ----
-
- .. raw:: html
-
- <iframe id="ifrm02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-128kb-2t2c-ip4routing-iperf3.html"></iframe>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-128kb-2t2c-ip4routing-iperf3}
- \label{fig:2n-skx-128kb-2t2c-ip4routing-iperf3}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- 4t4c
- ----
-
- .. raw:: html
-
- <iframe id="ifrm03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-128kb-4t4c-ip4routing-iperf3.html"></iframe>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-skx-128kb-4t4c-ip4routing-iperf3}
- \label{fig:2n-skx-128kb-4t4c-ip4routing-iperf3}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/gso_testing/2n-zn2.rst b/docs/report/vpp_performance_tests/gso_testing/2n-zn2.rst
deleted file mode 100644
index ab771cb460..0000000000
--- a/docs/report/vpp_performance_tests/gso_testing/2n-zn2.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>
-
-2n-zn2
-~~~~~~
-
-.. todo::
- Add introduction
-
-.. raw:: latex
-
- \clearpage
-
-1t1c
-----
-
-.. raw:: html
-
- <iframe id="ifrm01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-128kb-1t1c-ip4routing-iperf3.html"></iframe>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-128kb-1t1c-ip4routing-iperf3}
- \label{fig:2n-zn2-128kb-1t1c-ip4routing-iperf3}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- 2t2c
- ----
-
- .. raw:: html
-
- <iframe id="ifrm02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-128kb-2t2c-ip4routing-iperf3.html"></iframe>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-128kb-2t2c-ip4routing-iperf3}
- \label{fig:2n-zn2-128kb-2t2c-ip4routing-iperf3}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- 4t4c
- ----
-
- .. raw:: html
-
- <iframe id="ifrm03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-128kb-4t4c-ip4routing-iperf3.html"></iframe>
-
- .. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-zn2-128kb-4t4c-ip4routing-iperf3}
- \label{fig:2n-zn2-128kb-4t4c-ip4routing-iperf3}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/gso_testing/index.rst b/docs/report/vpp_performance_tests/gso_testing/index.rst
deleted file mode 100644
index d7de0b5468..0000000000
--- a/docs/report/vpp_performance_tests/gso_testing/index.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-GSO Testing
-===========
-
-.. toctree::
-
- 2n-icx
- 2n-skx
- 2n-clx
- 2n-zn2
diff --git a/docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_aws.rst b/docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_aws.rst
deleted file mode 100644
index 1133b934db..0000000000
--- a/docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_aws.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-2n-aws
-======
-
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_icx.rst b/docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_icx.rst
deleted file mode 100644
index 4e6f59bd82..0000000000
--- a/docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/2n_icx.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-2n-icx
-======
-
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_alt.rst b/docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_alt.rst
deleted file mode 100644
index b92691a4db..0000000000
--- a/docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_alt.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-3n-alt
-======
-
diff --git a/docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_aws.rst b/docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_aws.rst
deleted file mode 100644
index 7c6b3bfe57..0000000000
--- a/docs/report/vpp_performance_tests/hdrh_packet_latency_by_percentile_graphs/3n_aws.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-3n-aws
-======
-
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 3691fb65c3..0000000000
--- a/docs/report/vpp_performance_tests/hoststack_testing/index.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-Hoststack Testing
-=================
-
-.. toctree::
-
- iperf3/tcp/index
- iperf3/udp/index
- quic/index
- vsap/index
diff --git a/docs/report/vpp_performance_tests/hoststack_testing/iperf3/tcp/index.rst b/docs/report/vpp_performance_tests/hoststack_testing/iperf3/tcp/index.rst
deleted file mode 100644
index b86cbeb516..0000000000
--- a/docs/report/vpp_performance_tests/hoststack_testing/iperf3/tcp/index.rst
+++ /dev/null
@@ -1,54 +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-2t1c-xxv710-ip4tcp-base-scale
------------------------------------
-
-.. raw:: html
-
- <iframe id="ifrm01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../../../_static/vpp/3n-skx-xxv710-1460b-2t1c-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-skx-xxv710-1460b-2t1c-eth-ip4tcp-ldpreload-iperf3-bps}
- \label{fig:3n-skx-xxv710-1460b-2t1c-eth-ip4tcp-ldpreload-iperf3-bps}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/hoststack_testing/iperf3/udp/index.rst b/docs/report/vpp_performance_tests/hoststack_testing/iperf3/udp/index.rst
deleted file mode 100644
index 3c89c32aed..0000000000
--- a/docs/report/vpp_performance_tests/hoststack_testing/iperf3/udp/index.rst
+++ /dev/null
@@ -1,54 +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>
-
-UDP/IP with iperf3
-~~~~~~~~~~~~~~~~~~
-
-.. todo::
- Add introduction
-
-.. raw:: latex
-
- \clearpage
-
-1460b-2t1c-xxv710-ip4udp-base-scale
------------------------------------
-
-.. raw:: html
-
- <iframe id="ifrm02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../../../_static/vpp/3n-skx-xxv710-1460b-2t1c-eth-ip4udp-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-skx-xxv710-1460b-2t1c-eth-ip4udp-ldpreload-iperf3-bps}
- \label{fig:3n-skx-xxv710-1460b-2t1c-eth-ip4udp-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 124911e8bc..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-2t1c-xxv710-base-scale
-----------------------------
-
-.. raw:: html
-
- <iframe id="ifrm01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../../_static/vpp/3n-skx-xxv710-1280b-2t1c-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-skx-xxv710-1280b-2t1c-eth-ip4udpquic-vppecho-bps}
- \label{fig:3n-skx-xxv710-1280b-2t1c-eth-ip4udpquic-vppecho-bps}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/hoststack_testing/vsap/index.rst b/docs/report/vpp_performance_tests/hoststack_testing/vsap/index.rst
deleted file mode 100644
index 322a687000..0000000000
--- a/docs/report/vpp_performance_tests/hoststack_testing/vsap/index.rst
+++ /dev/null
@@ -1,316 +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>
-
-.. raw:: latex
-
- \clearpage
-
-VSAP with ldpreload
-~~~~~~~~~~~~~~~~~~~
-
-2t1c-cx556a-rdma-base-cps
--------------------------
-
-.. raw:: html
-
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../../_static/vpp/2n-clx-cx556a-0B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps.html"></iframe>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-0B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps}
- \label{fig:2n-clx-cx556a-0B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <iframe id="02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../../_static/vpp/2n-clx-cx556a-64B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps.html"></iframe>
-
-.. 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-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps}
- \label{fig:2n-clx-cx556a-64B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <iframe id="03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../../_static/vpp/2n-clx-cx556a-1024B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps.html"></iframe>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-1024B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps}
- \label{fig:2n-clx-cx556a-1024B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../../_static/vpp/2n-clx-cx556a-2048B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps.html"></iframe>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-2048B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps}
- \label{fig:2n-clx-cx556a-2048B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2t1c-cx556a-rdma-base-rps
--------------------------
-
-.. raw:: html
-
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../../_static/vpp/2n-clx-cx556a-0B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps.html"></iframe>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-0B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps}
- \label{fig:2n-clx-cx556a-0B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../../_static/vpp/2n-clx-cx556a-64B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps.html"></iframe>
-
-.. 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-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps}
- \label{fig:2n-clx-cx556a-64B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <iframe id="13" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../../_static/vpp/2n-clx-cx556a-1024B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps.html"></iframe>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-1024B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps}
- \label{fig:2n-clx-cx556a-1024B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <iframe id="14" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../../_static/vpp/2n-clx-cx556a-2048B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps.html"></iframe>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-cx556a-2048B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps}
- \label{fig:2n-clx-cx556a-2048B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2t1c-e810cq-base-cps
---------------------
-
-.. raw:: html
-
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../../_static/vpp/2n-clx-e810cq-0B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps.html"></iframe>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-e810cq-0B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps}
- \label{fig:2n-clx-e810cq-0B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <iframe id="22" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../../_static/vpp/2n-clx-e810cq-64B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps.html"></iframe>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-e810cq-64B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps}
- \label{fig:2n-clx-e810cq-64B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <iframe id="23" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../../_static/vpp/2n-clx-e810cq-1024B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps.html"></iframe>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-e810cq-1024B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps}
- \label{fig:2n-clx-e810cq-1024B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <iframe id="24" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../../_static/vpp/2n-clx-e810cq-2048B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps.html"></iframe>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-e810cq-2048B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps}
- \label{fig:2n-clx-e810cq-2048B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2t1c-e810cq-base-rps
---------------------
-
-.. raw:: html
-
- <iframe id="31" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../../_static/vpp/2n-clx-e810cq-0B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps.html"></iframe>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-e810cq-0B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps}
- \label{fig:2n-clx-e810cq-0B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <iframe id="32" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../../_static/vpp/2n-clx-e810cq-64B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps.html"></iframe>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-e810cq-64B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps}
- \label{fig:2n-clx-e810cq-64B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <iframe id="33" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../../_static/vpp/2n-clx-e810cq-1024B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps.html"></iframe>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-e810cq-1024B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps}
- \label{fig:2n-clx-e810cq-1024B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <iframe id="34" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../../_static/vpp/2n-clx-e810cq-2048B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps.html"></iframe>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{2n-clx-e810cq-2048B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps}
- \label{fig:2n-clx-e810cq-2048B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps}
- \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 e54549ed32..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
- gso_testing/index
- comparisons/index
- throughput_trending
- test_environment
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 584189ab84..0000000000
--- a/docs/report/vpp_performance_tests/nf_service_density/cnf_service_chains.rst
+++ /dev/null
@@ -1,688 +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 are stored in
- `build logs from FD.io vpp performance job 2n-icx`_,
- `build logs from FD.io vpp performance job 2n-skx`_ and
- `build logs from FD.io vpp performance job 2n-clx`_
- with RF result files csit-vpp-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
-
-.. raw:: latex
-
- \clearpage
-
-2n-icx-xxv710-mrr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-2t1c-base-csc-mrr}
- \label{fig:l2bd-2n-icx-xxv710-imix-2t1c-base-csc-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-4t2c-base-csc-mrr}
- \label{fig:l2bd-2n-icx-xxv710-imix-4t2c-base-csc-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-8t4c-base-csc-mrr}
- \label{fig:l2bd-2n-icx-xxv710-imix-8t4c-base-csc-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2n-icx-xxv710-ndr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx07" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-2t1c-base-csc-ndr}
- \label{fig:l2bd-2n-icx-xxv710-imix-2t1c-base-csc-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx08" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-4t2c-base-csc-ndr}
- \label{fig:l2bd-2n-icx-xxv710-imix-4t2c-base-csc-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx09" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-8t4c-base-csc-ndr}
- \label{fig:l2bd-2n-icx-xxv710-imix-8t4c-base-csc-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2n-icx-xxv710-pdr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx13" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-2t1c-base-csc-pdr}
- \label{fig:l2bd-2n-icx-xxv710-imix-2t1c-base-csc-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx14" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-4t2c-base-csc-pdr}
- \label{fig:l2bd-2n-icx-xxv710-imix-4t2c-base-csc-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx15" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-8t4c-base-csc-pdr}
- \label{fig:l2bd-2n-icx-xxv710-imix-8t4c-base-csc-pdr}
- \end{figure}
-
-.. 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 67eabcdf33..0000000000
--- a/docs/report/vpp_performance_tests/nf_service_density/cnf_service_chains_ipsec.rst
+++ /dev/null
@@ -1,611 +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 are stored in
- `build logs from FD.io 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}
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 c6adc58f94..0000000000
--- a/docs/report/vpp_performance_tests/nf_service_density/cnf_service_pipelines.rst
+++ /dev/null
@@ -1,688 +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 are stored in
- `build logs from FD.io vpp performance job 2n-icx`_,
- `build logs from FD.io vpp performance job 2n-skx`_ and
- `build logs from FD.io vpp performance job 2n-clx`_
- with RF result files csit-vpp-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
-
-.. raw:: latex
-
- \clearpage
-
-2n-icx-xxv710-mrr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-2t1c-base-csp-mrr}
- \label{fig:l2bd-2n-icx-xxv710-imix-2t1c-base-csp-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-4t2c-base-csp-mrr}
- \label{fig:l2bd-2n-icx-xxv710-imix-4t2c-base-csp-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-8t4c-base-csp-mrr}
- \label{fig:l2bd-2n-icx-xxv710-imix-8t4c-base-csp-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2n-icx-xxv710-ndr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx07" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-2t1c-base-csp-ndr}
- \label{fig:l2bd-2n-icx-xxv710-imix-2t1c-base-csp-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx08" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-4t2c-base-csp-ndr}
- \label{fig:l2bd-2n-icx-xxv710-imix-4t2c-base-csp-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx09" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-8t4c-base-csp-ndr}
- \label{fig:l2bd-2n-icx-xxv710-imix-8t4c-base-csp-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2n-icx-xxv710-pdr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx13" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-2t1c-base-csp-pdr}
- \label{fig:l2bd-2n-icx-xxv710-imix-2t1c-base-csp-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx14" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-4t2c-base-csp-pdr}
- \label{fig:l2bd-2n-icx-xxv710-imix-4t2c-base-csp-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx15" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-8t4c-base-csp-pdr}
- \label{fig:l2bd-2n-icx-xxv710-imix-8t4c-base-csp-pdr}
- \end{figure}
-
-.. 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 5c3d01212a..0000000000
--- a/docs/report/vpp_performance_tests/nf_service_density/vnf_service_chains.rst
+++ /dev/null
@@ -1,687 +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 are stored in
- `build logs from FD.io vpp performance job 2n-icx`_,
- `build logs from FD.io vpp performance job 2n-skx`_ and
- `build logs from FD.io vpp performance job 2n-clx`_
- with RF result files csit-vpp-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
-
-.. raw:: latex
-
- \clearpage
-
-2n-icx-xxv710-mrr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-2t1c-base-vsc-mrr}
- \label{fig:l2bd-2n-icx-xxv710-imix-2t1c-base-vsc-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-4t2c-base-vsc-mrr}
- \label{fig:l2bd-2n-icx-xxv710-imix-4t2c-base-vsc-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-8t4c-base-vsc-mrr}
- \label{fig:l2bd-2n-icx-xxv710-imix-8t4c-base-vsc-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2n-icx-xxv710-ndr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx07" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-2t1c-base-vsc-ndr}
- \label{fig:l2bd-2n-icx-xxv710-imix-2t1c-base-vsc-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx08" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-4t2c-base-vsc-ndr}
- \label{fig:l2bd-2n-icx-xxv710-imix-4t2c-base-vsc-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx09" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-8t4c-base-vsc-ndr}
- \label{fig:l2bd-2n-icx-xxv710-imix-8t4c-base-vsc-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2n-icx-xxv710-pdr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx13" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-2t1c-base-vsc-pdr}
- \label{fig:l2bd-2n-icx-xxv710-imix-2t1c-base-vsc-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx14" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-4t2c-base-vsc-pdr}
- \label{fig:l2bd-2n-icx-xxv710-imix-4t2c-base-vsc-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx15" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-8t4c-base-vsc-pdr}
- \label{fig:l2bd-2n-icx-xxv710-imix-8t4c-base-vsc-pdr}
- \end{figure}
-
-.. 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 0dfa650c90..0000000000
--- a/docs/report/vpp_performance_tests/nf_service_density/vnf_service_chains_vxlan.rst
+++ /dev/null
@@ -1,684 +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 are stored in
- `build logs from FD.io vpp performance job 2n-icx`_,
- `build logs from FD.io vpp performance job 2n-skx`_ and
- `build logs from FD.io vpp performance job 2n-clx`_ with RF
- result files csit-vpp-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
-
-.. raw:: latex
-
- \clearpage
-
-2n-icx-xxv710-mrr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-2t1c-base-vsc-vxlan-mrr}
- \label{fig:l2bd-2n-icx-xxv710-imix-2t1c-base-vsc-vxlan-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-4t2c-base-vsc-vxlan-mrr}
- \label{fig:l2bd-2n-icx-xxv710-imix-4t2c-base-vsc-vxlan-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-8t4c-base-vsc-vxlan-mrr}
- \label{fig:l2bd-2n-icx-xxv710-imix-8t4c-base-vsc-vxlan-mrr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2n-icx-xxv710-ndr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx07" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-2t1c-base-vsc-vxlan-ndr}
- \label{fig:l2bd-2n-icx-xxv710-imix-2t1c-base-vsc-vxlan-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx08" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-4t2c-base-vsc-vxlan-ndr}
- \label{fig:l2bd-2n-icx-xxv710-imix-4t2c-base-vsc-vxlan-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx09" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-8t4c-base-vsc-vxlan-ndr}
- \label{fig:l2bd-2n-icx-xxv710-imix-8t4c-base-vsc-vxlan-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2n-icx-xxv710-pdr
-~~~~~~~~~~~~~~~~~
-
-imix-2t1c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx13" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-2t1c-base-vsc-vxlan-pdr}
- \label{fig:l2bd-2n-icx-xxv710-imix-2t1c-base-vsc-vxlan-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx14" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-4t2c-base-vsc-vxlan-pdr}
- \label{fig:l2bd-2n-icx-xxv710-imix-4t2c-base-vsc-vxlan-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-eth-l2bd
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx15" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-icx-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-icx-xxv710-imix-8t4c-base-vsc-vxlan-pdr}
- \label{fig:l2bd-2n-icx-xxv710-imix-8t4c-base-vsc-vxlan-pdr}
- \end{figure}
-
-.. 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 9647edeabd..0000000000
--- a/docs/report/vpp_performance_tests/overview.rst
+++ /dev/null
@@ -1,378 +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. |
-+-----------------------+----------------------------------------------+
-| GENEVE | GENEVE tunnels for IPv4 routing. |
-+-----------------------+----------------------------------------------+
-| 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-cx556a.rst b/docs/report/vpp_performance_tests/packet_latency/container_memif-2n-clx-cx556a.rst
deleted file mode 100644
index 4b7b8e3699..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/container_memif-2n-clx-cx556a.rst
+++ /dev/null
@@ -1,112 +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
-------------------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-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-100ge2p1cx556a-64b-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2memif-1dcr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-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-100ge2p1cx556a-64b-2t1c-rdma-eth-l2bdbasemaclrn-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-eth-l2bdbasemaclrn-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-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-100ge2p1cx556a-64b-2t1c-rdma-eth-l2xcbase-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-eth-l2xcbase-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-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-100ge2p1cx556a-64b-2t1c-rdma-ethip4-ip4base-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-ethip4-ip4base-eth-2memif-1dcr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/container_memif-2n-clx-e810cq.rst b/docs/report/vpp_performance_tests/packet_latency/container_memif-2n-clx-e810cq.rst
deleted file mode 100644
index 2fbf9812da..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/container_memif-2n-clx-e810cq.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-clx-e810cq
-~~~~~~~~~~~~~
-
-64b-2t1c-memif-base-rdma
-------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-eth-l2xcbase-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-eth-l2xcbase-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="5" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="6" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-ethip4-ip4base-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-ethip4-ip4base-eth-2memif-1dcr}
- \end{figure}
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 4d5fcee18b..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/container_memif-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,154 +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-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-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-icx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/container_memif-2n-icx-xxv710.rst
deleted file mode 100644
index 05becfd316..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/container_memif-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,154 +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-icx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-memif-base-avf
------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-memif-base-dpdk
-------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="5" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="6" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-icx-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 3a032f4d45..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/container_memif-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,154 +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-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-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-tx2-xl710.rst b/docs/report/vpp_performance_tests/packet_latency/container_memif-2n-tx2-xl710.rst
deleted file mode 100644
index 748d1401ab..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/container_memif-2n-tx2-xl710.rst
+++ /dev/null
@@ -1,91 +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-memif-base-dpdk
-------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-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-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-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-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2xcbase-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-eth-l2xcbase-eth-2memif-1dcr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-tx2-40ge2p1xl710-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-2n-tx2-40ge2p1xl710-64b-1t1c-ethip4-ip4base-eth-2memif-1dcr}
- \label{fig:hdrh-lat-percentile-2n-tx2-40ge2p1xl710-64b-1t1c-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 476728fa44..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/container_memif-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,154 +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-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-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-tsh-x520.rst b/docs/report/vpp_performance_tests/packet_latency/container_memif-3n-tsh-x520.rst
deleted file mode 100644
index fdcb560ee9..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/container_memif-3n-tsh-x520.rst
+++ /dev/null
@@ -1,112 +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-memif-base-ixgbe
--------------------------
-
-.. 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 23c740c667..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/container_memif.rst
+++ /dev/null
@@ -1,23 +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=rls2206>`_.
-
-.. toctree::
-
- container_memif-2n-icx-xxv710
- container_memif-2n-skx-xxv710
- container_memif-2n-clx-xxv710
- container_memif-2n-clx-cx556a
- container_memif-2n-clx-e810cq
- container_memif-2n-tx2-xl710
- 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 40274b0d06..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/index.rst
+++ /dev/null
@@ -1,63 +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: 2n-icx, 3n-icx, 2n-aws, 2n-skx, 3n-skx,
-2n-clx, 2n-zn2, 3n-alt, 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.
-
-For more details, see :ref:`latency_methodology`.
-
-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 are stored in
- `build logs from FD.io vpp performance job 2n-icx`_,
- `build logs from FD.io vpp performance job 3n-icx`_,
- `build logs from FD.io vpp performance job 2n-aws`_,
- `build logs from FD.io vpp performance job 2n-skx`_,
- `build logs from FD.io vpp performance job 3n-skx`_,
- `build logs from FD.io vpp performance job 2n-clx`_,
- `build logs from FD.io vpp performance job 2n-zn2`_,
- `build logs from FD.io vpp performance job 3n-alt`_,
- `build logs from FD.io vpp performance job 3n-tsh`_ and
- `build logs from FD.io 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-cx556a.rst b/docs/report/vpp_performance_tests/packet_latency/ip4-2n-clx-cx556a.rst
deleted file mode 100644
index 75a4f51731..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip4-2n-clx-cx556a.rst
+++ /dev/null
@@ -1,175 +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-scale-rdma
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-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-100ge2p1cx556a-64b-2t1c-rdma-ethip4-ip4base}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-ethip4-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="13" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-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-100ge2p1cx556a-64b-2t1c-rdma-ethip4-ip4scale20k}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-ethip4-ip4scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="14" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-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-100ge2p1cx556a-64b-2t1c-rdma-ethip4-ip4scale20k-rnd}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-ethip4-ip4scale20k-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4routing-features-rdma
----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-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-100ge2p1cx556a-64b-2t1c-rdma-ethip4udp-ip4base-iacl50sf-10kflows}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-ethip4udp-ip4base-iacl50sf-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-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-100ge2p1cx556a-64b-2t1c-rdma-ethip4udp-ip4base-iacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-ethip4udp-ip4base-iacl50sl-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-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-100ge2p1cx556a-64b-2t1c-rdma-ethip4udp-ip4base-oacl50sf-10kflows}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-ethip4udp-ip4base-oacl50sf-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-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-100ge2p1cx556a-64b-2t1c-rdma-ethip4udp-ip4base-oacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-ethip4udp-ip4base-oacl50sl-10kflows}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip4-2n-clx-e810cq.rst b/docs/report/vpp_performance_tests/packet_latency/ip4-2n-clx-e810cq.rst
deleted file mode 100644
index 00b5ca09a5..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip4-2n-clx-e810cq.rst
+++ /dev/null
@@ -1,322 +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-e810cq
-~~~~~~~~~~~~~
-
-64b-2t1c-ip4routing-base-scale-avf
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-avf-ethip4-ip4base}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-avf-ethip4-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-avf-ethip4-ip4scale20k}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-avf-ethip4-ip4scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-avf-ethip4-ip4scale20k-rnd}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-avf-ethip4-ip4scale20k-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4routing-features-avf
---------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="5" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="6" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="7" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4routing-base-scale-dpdk
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="8" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-ethip4-ip4base}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-ethip4-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="9" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-ethip4-ip4scale20k}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-ethip4-ip4scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="10" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-ethip4-ip4scale20k-rnd}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-ethip4-ip4scale20k-rnd}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- 64b-2t1c-ip4routing-features-dpdk
- ---------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-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-100ge2p1e810cq-64b-2t1c-ethip4udp-ip4base-iacl50sf-10kflows}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-ethip4udp-ip4base-iacl50sf-10kflows}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-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-100ge2p1e810cq-64b-2t1c-ethip4udp-ip4base-iacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-ethip4udp-ip4base-iacl50sl-10kflows}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="13" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-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-100ge2p1e810cq-64b-2t1c-ethip4udp-ip4base-oacl50sf-10kflows}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-ethip4udp-ip4base-oacl50sf-10kflows}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="14" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-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-100ge2p1e810cq-64b-2t1c-ethip4udp-ip4base-oacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-ethip4udp-ip4base-oacl50sl-10kflows}
- \end{figure}
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 72a8953540..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip4-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,380 +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-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-base-scale-af-xdp
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-af-xdp-ethip4-ip4base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-af-xdp-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-af-xdp-ethip4-ip4base}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-af-xdp-ethip4-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-af-xdp-ethip4-ip4scale20k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-af-xdp-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-af-xdp-ethip4-ip4scale20k}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-af-xdp-ethip4-ip4scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-af-xdp-ethip4-ip4scale20k-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-af-xdp-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-af-xdp-ethip4-ip4scale20k-rnd}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-af-xdp-ethip4-ip4scale20k-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
-
-64b-2t1c-ip4routing-base-scale-dpdk
------------------------------------
-
-.. 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}
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip4-2n-icx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/ip4-2n-icx-xxv710.rst
deleted file mode 100644
index 9a0ba5dedf..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip4-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,372 +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-icx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-ip4routing-base-scale-avf
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="5" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k-rnd}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale20k-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="6" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k-rnd}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale200k-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="7" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m-rnd}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4scale2m-rnd}
- \end{figure}
-
-64b-2t1c-ip4routing-base-scale-dpdk
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="8" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="9" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale20k}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale20k-rnd}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-ethip4-ip4scale20k-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4routing-base-scale-af-xdp
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="15" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-af-xdp-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-icx-25ge2p1xxv710-64b-2t1c-af-xdp-ethip4-ip4base}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-af-xdp-ethip4-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="16" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-af-xdp-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-icx-25ge2p1xxv710-64b-2t1c-af-xdp-ethip4-ip4scale20k}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-af-xdp-ethip4-ip4scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="17" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-af-xdp-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-icx-25ge2p1xxv710-64b-2t1c-af-xdp-ethip4-ip4scale20k-rnd}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-af-xdp-ethip4-ip4scale20k-rnd}
- \end{figure}
-
-64b-2t1c-ip4routing-features-avf
---------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="18" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sf-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="19" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="20" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sf-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="21" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-ip4base-oacl50sl-10kflows}
- \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 e25ac366bc..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip4-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,483 +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-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-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
-
-64b-2t1c-ip4routing-base-scale-af-xdp
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-af-xdp-ethip4-ip4base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-af-xdp-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-af-xdp-ethip4-ip4base}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-af-xdp-ethip4-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-af-xdp-ethip4-ip4scale20k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-af-xdp-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-af-xdp-ethip4-ip4scale20k}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-af-xdp-ethip4-ip4scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-..
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-af-xdp-ethip4-ip4scale200k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-af-xdp-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-af-xdp-ethip4-ip4scale200k}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-af-xdp-ethip4-ip4scale200k}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-af-xdp-ethip4-ip4scale2m" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-af-xdp-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-af-xdp-ethip4-ip4scale2m}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-af-xdp-ethip4-ip4scale2m}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-af-xdp-ethip4-ip4scale20k-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-af-xdp-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-af-xdp-ethip4-ip4scale20k-rnd}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-af-xdp-ethip4-ip4scale20k-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-..
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-af-xdp-ethip4-ip4scale200k-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-af-xdp-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-af-xdp-ethip4-ip4scale200k-rnd}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-af-xdp-ethip4-ip4scale200k-rnd}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-af-xdp-ethip4-ip4scale2m-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-af-xdp-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-af-xdp-ethip4-ip4scale2m-rnd}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-af-xdp-ethip4-ip4scale2m-rnd}
- \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-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}
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 1a8562aa50..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip4-2n-tx2-xl710.rst
+++ /dev/null
@@ -1,197 +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-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
-
-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 97cd47b5a8..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip4-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,420 +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-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
-
-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}
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip4-3n-alt-xl710.rst b/docs/report/vpp_performance_tests/packet_latency/ip4-3n-alt-xl710.rst
deleted file mode 100644
index eb16800383..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip4-3n-alt-xl710.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-alt-xl710
-~~~~~~~~~~~~
-
-64b-1t1c-ip4routing-base-scale
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-alt-40ge2p1xl710-64b-1t1c-ethip4-ip4base}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-3n-alt-40ge2p1xl710-64b-1t1c-ethip4-ip4scale20k}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4-ip4scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-3n-alt-40ge2p1xl710-64b-1t1c-ethip4-ip4scale200k}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4-ip4scale200k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-1t1c-ip4routing-features
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-3n-alt-40ge2p1xl710-64b-1t1c-ethip4-ip4base-iacldstbase}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4-ip4base-iacldstbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="5" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-3n-alt-40ge2p1xl710-64b-1t1c-ethip4udp-ip4base-iacl50sf-10kflows}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4udp-ip4base-iacl50sf-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="6" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-3n-alt-40ge2p1xl710-64b-1t1c-ethip4udp-ip4base-iacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4udp-ip4base-iacl50sl-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="7" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-3n-alt-40ge2p1xl710-64b-1t1c-ethip4udp-ip4base-oacl50sf-10kflows}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4udp-ip4base-oacl50sf-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="8" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-3n-alt-40ge2p1xl710-64b-1t1c-ethip4udp-ip4base-oacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4udp-ip4base-oacl50sl-10kflows}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip4-3n-icx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/ip4-3n-icx-xxv710.rst
deleted file mode 100644
index 2d71bd16d2..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip4-3n-icx-xxv710.rst
+++ /dev/null
@@ -1,74 +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-icx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-ip4routing-base-avf
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4routing-base-dpdk
------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-icx-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-icx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-64b-2t1c-ethip4-ip4base}
- \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 4394554637..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip4-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,74 +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-avf
-----------------------------
-
-.. 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
-
-64b-2t1c-ip4routing-base-dpdk
------------------------------
-
-.. 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}
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 87bbe61988..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip4-3n-tsh-x520.rst
+++ /dev/null
@@ -1,176 +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-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 9d135b274c..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip4.rst
+++ /dev/null
@@ -1,24 +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=rls2206>`_.
-
-.. toctree::
-
- ip4-2n-icx-xxv710
- ip4-3n-icx-xxv710
- ip4-2n-skx-xxv710
- ip4-3n-skx-xxv710
- ip4-2n-clx-xxv710
- ip4-2n-clx-cx556a
- ip4-2n-clx-e810cq
- ip4-2n-zn2-xxv710
- ip4-3n-alt-xl710
- ip4-3n-tsh-x520
- ip4-2n-tx2-xl710
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip4_tunnels-2n-icx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/ip4_tunnels-2n-icx-xxv710.rst
deleted file mode 100644
index 5425080d87..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip4_tunnels-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,131 +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-icx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-ethip4--ethip4udpgeneve-avf
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4--ethip4udpgeneve-1tun-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-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4--ethip4udpgeneve-1tun-ip4base}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4--ethip4udpgeneve-1tun-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4--ethip4udpgeneve-4tun-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-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4--ethip4udpgeneve-4tun-ip4base}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4--ethip4udpgeneve-4tun-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4--ethip4udpgeneve-16tun-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-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4--ethip4udpgeneve-16tun-ip4base}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4--ethip4udpgeneve-16tun-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4--ethip4udpgeneve-64tun-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-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4--ethip4udpgeneve-64tun-ip4base}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4--ethip4udpgeneve-64tun-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="5" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4--ethip4udpgeneve-256tun-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-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4--ethip4udpgeneve-256tun-ip4base}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4--ethip4udpgeneve-256tun-ip4base}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip4_tunnels-3n-alt-xl710.rst b/docs/report/vpp_performance_tests/packet_latency/ip4_tunnels-3n-alt-xl710.rst
deleted file mode 100644
index 241fab6a21..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip4_tunnels-3n-alt-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-alt-xl710
-~~~~~~~~~~~~
-
-64b-1t1c-ip4tunnel-base
------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-alt-40ge2p1xl710-64b-1t1c-ethip4vxlan-l2xcbase}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4vxlan-l2xcbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-alt-40ge2p1xl710-64b-1t1c-ethip4vxlan-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4vxlan-l2bdbasemaclrn}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip4_tunnels-3n-icx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/ip4_tunnels-3n-icx-xxv710.rst
deleted file mode 100644
index 918720749a..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip4_tunnels-3n-icx-xxv710.rst
+++ /dev/null
@@ -1,153 +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-icx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-ip4tunnel-base-avf
----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4gtpusw-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-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4gtpusw-ip4base}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4gtpusw-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4vxlan-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4vxlan-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4vxlan-l2xcbase}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4vxlan-l2xcbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4tunnel-base-dpdk
-----------------------------
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-icx-25ge2p1xxv710-64b-2t1c-ethip4gtpusw-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-icx-25ge2p1xxv710-64b-2t1c-ethip4gtpusw-ip4base}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-64b-2t1c-ethip4gtpusw-ip4base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="5" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-icx-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-icx-25ge2p1xxv710-64b-2t1c-ethip4vxlan-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-64b-2t1c-ethip4vxlan-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="6" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-icx-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-icx-25ge2p1xxv710-64b-2t1c-ethip4vxlan-l2xcbase}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-64b-2t1c--ethip4vxlan-l2xcbase}
- \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 cfc6cb1c2c..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip4_tunnels-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,154 +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="3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4gtpusw-ip4base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4gtpusw-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]{3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4gtpusw-ip4base}
- \label{fig:3n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4gtpusw-ip4base}
- \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}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="3n-skx-25ge2p1xxv710-64b-2t1c-ethip4gtpusw-ip4base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-skx-25ge2p1xxv710-64b-2t1c-ethip4gtpusw-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]{3n-skx-25ge2p1xxv710-64b-2t1c-ethip4gtpusw-ip4base}
- \label{fig:3n-skx-25ge2p1xxv710-64b-2t1c-ethip4gtpusw-ip4base}
- \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 4ffd9e3473..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip4_tunnels-3n-tsh-x520.rst
+++ /dev/null
@@ -1,112 +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-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 b809460d7d..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip4_tunnels.rst
+++ /dev/null
@@ -1,20 +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=rls2206>`_.
-
-.. toctree::
-
- ip4_tunnels-3n-icx-xxv710
- ip4_tunnels-3n-skx-xxv710
- ip4_tunnels-3n-alt-xl710
- ip4_tunnels-3n-tsh-x520
-
-..
- ip4_tunnels-2n-icx-xxv710
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip6-2n-clx-cx556a.rst b/docs/report/vpp_performance_tests/packet_latency/ip6-2n-clx-cx556a.rst
deleted file mode 100644
index e8fefc4685..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip6-2n-clx-cx556a.rst
+++ /dev/null
@@ -1,91 +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
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1cx556a-78b-2t1c-rdma-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-100ge2p1cx556a-78b-2t1c-rdma-ethip6-ip6base}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1cx556a-78b-2t1c-rdma-ethip6-ip6base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="5" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1cx556a-78b-2t1c-rdma-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-100ge2p1cx556a-78b-2t1c-rdma-ethip6-ip6scale20k}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1cx556a-78b-2t1c-rdma-ethip6-ip6scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="6" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1cx556a-78b-2t1c-rdma-ethip6-ip6scale20k-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-100ge2p1cx556a-78b-2t1c-rdma-ethip6-ip6scale20k-rnd}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1cx556a-78b-2t1c-rdma-ethip6-ip6scale20k-rnd}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip6-2n-clx-e810cq.rst b/docs/report/vpp_performance_tests/packet_latency/ip6-2n-clx-e810cq.rst
deleted file mode 100644
index cafc5d4539..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip6-2n-clx-e810cq.rst
+++ /dev/null
@@ -1,154 +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-e810cq
-~~~~~~~~~~~~~
-
-78b-2t1c-ip6routing-base-scale-avf
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-78b-2t1c-avf-ethip6-ip6base}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-78b-2t1c-avf-ethip6-ip6base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-78b-2t1c-avf-ethip6-ip6scale20k}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-78b-2t1c-avf-ethip6-ip6scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-78b-2t1c-avf-ethip6-ip6scale20k-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-100ge2p1e810cq-78b-2t1c-avf-ethip6-ip6scale20k-rnd}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-78b-2t1c-avf-ethip6-ip6scale20k-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-78b-2t1c-ip6routing-base-scale-dpdk
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-78b-2t1c-ethip6-ip6base}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-78b-2t1c-ethip6-ip6base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="5" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-78b-2t1c-ethip6-ip6scale20k}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-78b-2t1c-ethip6-ip6scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="6" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-78b-2t1c-ethip6-ip6scale20k-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-100ge2p1e810cq-78b-2t1c-ethip6-ip6scale20k-rnd}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-78b-2t1c-ethip6-ip6scale20k-rnd}
- \end{figure}
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 bb2bf1806d..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip6-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,400 +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-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
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale20k-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale20k-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-78b-2t1c-avf-ethip6-ip6scale20k-rnd}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale20k-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale200k-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale200k-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-78b-2t1c-avf-ethip6-ip6scale200k-rnd}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale200k-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale2m-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale2m-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-78b-2t1c-avf-ethip6-ip6scale2m-rnd}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale2m-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-78b-2t1c-ip6routing-base-scale-af-xdp
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-af-xdp-ethip6-ip6base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-af-xdp-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-af-xdp-ethip6-ip6base}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-af-xdp-ethip6-ip6base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-af-xdp-ethip6-ip6scale20k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-af-xdp-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-af-xdp-ethip6-ip6scale20k}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-af-xdp-ethip6-ip6scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-..
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-af-xdp-ethip6-ip6scale200k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-af-xdp-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-af-xdp-ethip6-ip6scale200k}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-af-xdp-ethip6-ip6scale200k}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-af-xdp-ethip6-ip6scale2m" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-af-xdp-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-af-xdp-ethip6-ip6scale2m}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-af-xdp-ethip6-ip6scale2m}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-af-xdp-ethip6-ip6scale20k-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-af-xdp-ethip6-ip6scale20k-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-78b-2t1c-af-xdp-ethip6-ip6scale20k-rnd}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-af-xdp-ethip6-ip6scale20k-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-..
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-af-xdp-ethip6-ip6scale200k-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-af-xdp-ethip6-ip6scale200k-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-78b-2t1c-af-xdp-ethip6-ip6scale200k-rnd}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-af-xdp-ethip6-ip6scale200k-rnd}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-af-xdp-ethip6-ip6scale2m-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-af-xdp-ethip6-ip6scale2m-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-78b-2t1c-af-xdp-ethip6-ip6scale2m-rnd}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-af-xdp-ethip6-ip6scale2m-rnd}
- \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-ip6scale20k-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale20k-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-78b-2t1c-ethip6-ip6scale20k-rnd}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale20k-rnd}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip6-2n-icx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/ip6-2n-icx-xxv710.rst
deleted file mode 100644
index 0aba897e4f..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip6-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,217 +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-icx-xxv710
-~~~~~~~~~~~~~
-
-78b-2t1c-ip6routing-base-scale-avf
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6base}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale20k}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="5" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale20k-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-icx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale20k-rnd}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale20k-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-78b-2t1c-ip6routing-base-scale-dpdk
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="8" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-78b-2t1c-ethip6-ip6base}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-78b-2t1c-ethip6-ip6base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="9" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale20k}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale20k-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-icx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale20k-rnd}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale20k-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-78b-2t1c-ip6routing-base-scale-af-xdp
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="15" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-25ge2p1xxv710-78b-2t1c-af-xdp-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-icx-25ge2p1xxv710-78b-2t1c-af-xdp-ethip6-ip6base}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-78b-2t1c-af-xdp-ethip6-ip6base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="16" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-25ge2p1xxv710-78b-2t1c-af-xdp-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-icx-25ge2p1xxv710-78b-2t1c-af-xdp-ethip6-ip6scale20k}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-78b-2t1c-af-xdp-ethip6-ip6scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="17" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-25ge2p1xxv710-78b-2t1c-af-xdp-ethip6-ip6scale20k-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-icx-25ge2p1xxv710-78b-2t1c-af-xdp-ethip6-ip6scale20k-rnd}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-78b-2t1c-af-xdp-ethip6-ip6scale20k-rnd}
- \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 5092fae388..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip6-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,318 +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-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
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale20k-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale20k-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-78b-2t1c-avf-ethip6-ip6scale20k-rnd}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale20k-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale200k-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale200k-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-78b-2t1c-avf-ethip6-ip6scale200k-rnd}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale200k-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale2m-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale2m-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-78b-2t1c-avf-ethip6-ip6scale2m-rnd}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale2m-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-78b-2t1c-ip6routing-base-scale-af-xdp
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-af-xdp-ethip6-ip6base" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-af-xdp-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-af-xdp-ethip6-ip6base}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-af-xdp-ethip6-ip6base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-af-xdp-ethip6-ip6scale20k" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-af-xdp-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-af-xdp-ethip6-ip6scale20k}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-af-xdp-ethip6-ip6scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-af-xdp-ethip6-ip6scale20k-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-af-xdp-ethip6-ip6scale20k-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-78b-2t1c-af-xdp-ethip6-ip6scale20k-rnd}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-af-xdp-ethip6-ip6scale20k-rnd}
- \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-ip6scale20k-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale20k-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-78b-2t1c-ethip6-ip6scale20k-rnd}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale20k-rnd}
- \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 ae896b8d76..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip6-2n-tx2-xl710.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>
-
-2n-tx2-xl710
-~~~~~~~~~~~~
-
-78b-1t1c-ip6routing-base-scale-dpdk
------------------------------------
-
-.. 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}
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 6197807128..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip6-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,339 +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-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
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale20k-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale20k-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-78b-2t1c-avf-ethip6-ip6scale20k-rnd}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale20k-rnd}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-..
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale200k-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale200k-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-78b-2t1c-avf-ethip6-ip6scale200k-rnd}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale200k-rnd}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale2m-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale2m-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-78b-2t1c-avf-ethip6-ip6scale2m-rnd}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6scale2m-rnd}
- \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}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale20k-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale20k-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-78b-2t1c-ethip6-ip6scale20k-rnd}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale20k-rnd}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale200k-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale200k-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-78b-2t1c-ethip6-ip6scale200k-rnd}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale200k-rnd}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale2m-rnd" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale2m-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-78b-2t1c-ethip6-ip6scale2m-rnd}
- \label{fig:hdrh-lat-percentile-2n-zn2-25ge2p1xxv710-78b-2t1c-ethip6-ip6scale2m-rnd}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip6-3n-alt-xl710.rst b/docs/report/vpp_performance_tests/packet_latency/ip6-3n-alt-xl710.rst
deleted file mode 100644
index c78a44b1c6..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip6-3n-alt-xl710.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-alt-xl710
-~~~~~~~~~~~~
-
-78b-1t1c-ip6routing-base-scale
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-alt-40ge2p1xl710-78b-1t1c-ethip6-ip6base}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-78b-1t1c-ethip6-ip6base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-3n-alt-40ge2p1xl710-78b-1t1c-ethip6-ip6scale20k}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-78b-1t1c-ethip6-ip6scale20k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-3n-alt-40ge2p1xl710-78b-1t1c-ethip6-ip6scale200k}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-78b-1t1c-ethip6-ip6scale200k}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-3n-alt-40ge2p1xl710-78b-1t1c-ethip6-ip6base-iacldstbase}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-78b-1t1c-ethip6-ip6base-iacldstbase}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/ip6-3n-icx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/ip6-3n-icx-xxv710.rst
deleted file mode 100644
index 7707c97db5..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip6-3n-icx-xxv710.rst
+++ /dev/null
@@ -1,74 +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-icx-xxv710
-~~~~~~~~~~~~~
-
-78b-2t1c-ip6routing-base-avf
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-icx-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-icx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6base}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-78b-2t1c-avf-ethip6-ip6base}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-78b-2t1c-ip6routing-base-dpdk
------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-icx-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-icx-25ge2p1xxv710-78b-2t1c-ethip6-ip6base}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-78b-2t1c-ethip6-ip6base}
- \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 6a1640ab9c..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip6-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,74 +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-avf
-----------------------------
-
-.. 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
-
-78b-2t1c-ip6routing-base-dpdk
------------------------------
-
-.. 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}
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 0abcffe8de..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip6-3n-tsh-x520.rst
+++ /dev/null
@@ -1,51 +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-1t1c-ip6routing-base-scale-ixgbe
-------------------------------------
-
-.. 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}
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 02ba678ef9..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ip6.rst
+++ /dev/null
@@ -1,24 +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=rls2206>`_.
-
-.. toctree::
-
- ip6-2n-icx-xxv710
- ip6-3n-icx-xxv710
- ip6-2n-skx-xxv710
- ip6-3n-skx-xxv710
- ip6-2n-clx-xxv710
- ip6-2n-clx-cx556a
- ip6-2n-clx-e810cq
- ip6-2n-zn2-xxv710
- ip6-3n-alt-xl710
- ip6-3n-tsh-x520
- ip6-2n-tx2-xl710
diff --git a/docs/report/vpp_performance_tests/packet_latency/ipsec-3n-alt-xl710.rst b/docs/report/vpp_performance_tests/packet_latency/ipsec-3n-alt-xl710.rst
deleted file mode 100644
index 596b63e0f4..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ipsec-3n-alt-xl710.rst
+++ /dev/null
@@ -1,395 +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-alt-xl710
-~~~~~~~~~~~~
-
-1518b-1t1c-ipsec-ip4routing-base-scale
---------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-alt-40ge2p1xl710-1518b-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-1518b-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-40ge2p1xl710-1518b-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm.html"></iframe>
- <p><br></p>
- </center>
-
-.. 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-alt-40ge2p1xl710-1518b-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-1518b-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-alt-40ge2p1xl710-1518b-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-1518b-1t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="6" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-alt-40ge2p1xl710-1518b-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-1518b-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="7" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-40ge2p1xl710-1518b-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm.html"></iframe>
- <p><br></p>
- </center>
-
-.. 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-alt-40ge2p1xl710-1518b-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-1518b-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="8" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-alt-40ge2p1xl710-1518b-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-1518b-1t1c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="16" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-alt-40ge2p1xl710-1518b-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-1518b-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="17" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-40ge2p1xl710-1518b-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes128gcm.html"></iframe>
- <p><br></p>
- </center>
-
-.. 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-alt-40ge2p1xl710-1518b-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes128gcm}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-1518b-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes128gcm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="18" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-alt-40ge2p1xl710-1518b-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-1518b-1t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-1t1c-ipsec-ip4routing-base-scale
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto.html"></iframe>
- <p><br></p>
- </center>
-
-.. 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-alt-40ge2p1xl710-64b-1t1c-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="5" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto.html"></iframe>
- <p><br></p>
- </center>
-
-.. 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-alt-40ge2p1xl710-64b-1t1c-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="9" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4ipsec1000tnlsw-ip4base-policy-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-alt-40ge2p1xl710-64b-1t1c-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="10" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto.html"></iframe>
- <p><br></p>
- </center>
-
-.. 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-alt-40ge2p1xl710-64b-1t1c-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto.html"></iframe>
- <p><br></p>
- </center>
-
-.. 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-alt-40ge2p1xl710-64b-1t1c-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto.html"></iframe>
- <p><br></p>
- </center>
-
-.. 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-alt-40ge2p1xl710-64b-1t1c-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="13" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto.html"></iframe>
- <p><br></p>
- </center>
-
-.. 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-alt-40ge2p1xl710-64b-1t1c-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="14" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4ipsec1tnlsw-ip4base-policy-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-alt-40ge2p1xl710-64b-1t1c-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="15" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4ipsec40tnlsw-ip4base-policy-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-alt-40ge2p1xl710-64b-1t1c-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/ipsec-3n-icx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/ipsec-3n-icx-xxv710.rst
deleted file mode 100644
index 656a031317..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ipsec-3n-icx-xxv710.rst
+++ /dev/null
@@ -1,255 +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-icx-xxv710
-~~~~~~~~~~~~~
-
-1518b-2t1c-ipsec-ip4routing-scale-sw-avf
-----------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-icx-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-icx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-icx-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-icx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-icx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec40tnlsw-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-icx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-icx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec40tnlsw-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-icx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec40tnlsw-ip4base-int-aes256gcm}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec40tnlsw-ip4base-int-aes256gcm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-
-.. raw:: html
-
- <center>
- <iframe id="5" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-icx-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-icx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="6" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-icx-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-icx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="7" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-icx-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-icx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="8" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-icx-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-icx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-1518b-2t1c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-1518b-2t1c-ipsec-ip4routing-scale-sw-dpdk
------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="9" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-icx-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-icx-25ge2p1xxv710-1518b-2t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-1518b-2t1c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="10" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-icx-25ge2p1xxv710-1518b-2t1c-ethip4ipsec40tnlsw-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-icx-25ge2p1xxv710-1518b-2t1c-ethip4ipsec40tnlsw-ip4base-int-aes256gcm}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-1518b-2t1c-ethip4ipsec40tnlsw-ip4base-int-aes256gcm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-icx-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-icx-25ge2p1xxv710-1518b-2t1c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-1518b-2t1c-ethip4ipsec10000tnlsw-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 2deb4ff43f..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/ipsec.rst
+++ /dev/null
@@ -1,17 +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=rls2206>`_.
-
-.. toctree::
-
- ipsec-3n-icx-xxv710
- ipsec-3n-skx-xxv710
- ipsec-3n-alt-xl710
- ipsec-3n-tsh-x520
diff --git a/docs/report/vpp_performance_tests/packet_latency/l2-2n-clx-cx556a.rst b/docs/report/vpp_performance_tests/packet_latency/l2-2n-clx-cx556a.rst
deleted file mode 100644
index 04332fdcf7..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/l2-2n-clx-cx556a.rst
+++ /dev/null
@@ -1,192 +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-scale-rdma
-------------------------------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-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-100ge2p1cx556a-64b-2t1c-rdma-dot1q-l2xcbase}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-dot1q-l2xcbase}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-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-100ge2p1cx556a-64b-2t1c-rdma-dot1q-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-dot1q-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-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-100ge2p1cx556a-64b-2t1c-rdma-eth-l2patch}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-eth-l2patch}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-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-100ge2p1cx556a-64b-2t1c-rdma-eth-l2xcbase}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-eth-l2xcbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="5" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-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-100ge2p1cx556a-64b-2t1c-rdma-eth-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-eth-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="6" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-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-100ge2p1cx556a-64b-2t1c-rdma-eth-l2bdscale10kmaclrn}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-eth-l2bdscale10kmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="7" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-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-100ge2p1cx556a-64b-2t1c-rdma-eth-l2bdscale100kmaclrn}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-eth-l2bdscale100kmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="8" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-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-100ge2p1cx556a-64b-2t1c-rdma-eth-l2bdscale1mmaclrn}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-eth-l2bdscale1mmaclrn}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/l2-2n-clx-e810cq.rst b/docs/report/vpp_performance_tests/packet_latency/l2-2n-clx-e810cq.rst
deleted file mode 100644
index 669fb0a905..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/l2-2n-clx-e810cq.rst
+++ /dev/null
@@ -1,316 +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-e810cq
-~~~~~~~~~~~~~
-
-64b-2t1c-l2switching-base-scale-avf
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-avf-dot1q-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-avf-dot1q-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-avf-eth-l2patch}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-avf-eth-l2patch}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-avf-eth-l2xcbase}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-avf-eth-l2xcbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-avf-eth-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-avf-eth-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="5" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-avf-eth-l2bdscale10kmaclrn}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-avf-eth-l2bdscale10kmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="6" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-avf-eth-l2bdscale100kmaclrn}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-avf-eth-l2bdscale100kmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="7" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-avf-eth-l2bdscale1mmaclrn}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-avf-eth-l2bdscale1mmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-l2switching-base-scale-dpdk
-------------------------------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="8" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-dot1q-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-dot1q-l2bdbasemaclrn}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="10" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-eth-l2patch}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-eth-l2patch}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-eth-l2xcbase}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-eth-l2xcbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-eth-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-eth-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="13" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-eth-l2bdscale10kmaclrn}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-eth-l2bdscale10kmaclrn}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="14" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-eth-l2bdscale100kmaclrn}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-eth-l2bdscale100kmaclrn}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="9" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-eth-l2bdscale1mmaclrn}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-eth-l2bdscale1mmaclrn}
- \end{figure}
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 ff9e88c799..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/l2-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,336 +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-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-icx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/l2-2n-icx-xxv710.rst
deleted file mode 100644
index 1195134bc4..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/l2-2n-icx-xxv710.rst
+++ /dev/null
@@ -1,294 +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-icx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-l2switching-base-scale-avf
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-eth-l2patch}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-eth-l2patch}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="5" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale10kmaclrn}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale10kmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="6" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale100kmaclrn}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale100kmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="7" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale1mmaclrn}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdscale1mmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-l2switching-base-scale-dpdk
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="8" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-eth-l2patch}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-eth-l2patch}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="9" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="10" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale10kmaclrn}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale10kmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale100kmaclrn}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale100kmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="13" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-eth-l2bdscale1mmaclrn}
- \label{fig:hdrh-lat-percentile-2n-icx-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 b9d37df0c3..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/l2-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,274 +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-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-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 7a991c7860..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/l2-2n-tx2-xl710.rst
+++ /dev/null
@@ -1,278 +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-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 d839ac838d..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/l2-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,337 +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-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-alt-xl710.rst b/docs/report/vpp_performance_tests/packet_latency/l2-3n-alt-xl710.rst
deleted file mode 100644
index 292550ab1c..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/l2-3n-alt-xl710.rst
+++ /dev/null
@@ -1,254 +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-alt-xl710
-~~~~~~~~~~~~
-
-64b-1t1c-l2switching-base-scale
--------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-alt-40ge2p1xl710-64b-1t1c-dot1q-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-dot1q-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-alt-40ge2p1xl710-64b-1t1c-eth-l2xcbase}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-eth-l2xcbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-alt-40ge2p1xl710-64b-1t1c-eth-l2patch}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-eth-l2patch}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-alt-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="5" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-3n-alt-40ge2p1xl710-64b-1t1c-eth-l2bdscale10kmaclrn}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-eth-l2bdscale10kmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="6" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-3n-alt-40ge2p1xl710-64b-1t1c-eth-l2bdscale100kmaclrn}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-eth-l2bdscale100kmaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-1t1c-features-l2switching-base
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="7" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-3n-alt-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-iacl50sf-10kflows}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-iacl50sf-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="8" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-3n-alt-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-iacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-iacl50sl-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="9" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-3n-alt-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-oacl50sf-10kflows}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-oacl50sf-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="10" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-3n-alt-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-oacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-oacl50sl-10kflows}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-3n-alt-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/l2-3n-icx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/l2-3n-icx-xxv710.rst
deleted file mode 100644
index 21ab2dde4f..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/l2-3n-icx-xxv710.rst
+++ /dev/null
@@ -1,174 +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-icx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-l2switching-base-avf
------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-64b-2t1c-avf-dot1q-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-eth-l2patch}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-64b-2t1c-avf-eth-l2patch}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-l2switching-base-dpdk
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="5" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-icx-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-icx-25ge2p1xxv710-64b-2t1c-eth-l2patch}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-64b-2t1c-eth-l2patch}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="6" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-icx-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-icx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-64b-2t1c-eth-l2xcbase}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="7" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-icx-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-icx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn}
- \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 aa98a17aa4..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/l2-3n-skx-xxv710.rst
+++ /dev/null
@@ -1,174 +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="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
-
-64b-2t1c-l2switching-base-dpdk
-------------------------------
-
-.. 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}
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 dbd3a222c8..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/l2-3n-tsh-x520.rst
+++ /dev/null
@@ -1,277 +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-l2switching-base-scale-ixgbe
--------------------------------------
-
-.. 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 ce7d2a965c..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/l2.rst
+++ /dev/null
@@ -1,24 +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=rls2206>`_.
-
-.. toctree::
-
- l2-2n-icx-xxv710
- l2-3n-icx-xxv710
- l2-2n-skx-xxv710
- l2-3n-skx-xxv710
- l2-2n-clx-xxv710
- l2-2n-clx-cx556a
- l2-2n-clx-e810cq
- l2-2n-zn2-xxv710
- l2-3n-alt-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 a1015d2ae8..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/nat44-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,442 +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-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-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-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}
-
- .. raw:: latex
-
- \clearpage
-
- 64b-2t1c-ethip4tcp-nat44ed-tput-avf
- -----------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-tput" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-tput.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: 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-ethip4tcp-nat44ed-h1024-p63-s64512-tput}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-tput}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-tput" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-tput.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: 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-ethip4tcp-nat44ed-h4096-p63-s258048-tput}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-tput}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-tput" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-tput.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: 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-ethip4tcp-nat44ed-h16384-p63-s1032192-tput}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-tput}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-tput" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-tput.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: 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-ethip4tcp-nat44ed-h65536-p63-s4128768-tput}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-tput}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-tput" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-tput.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: 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-ethip4tcp-nat44ed-h262144-p63-s16515072-tput}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-tput}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- 64b-2t1c-ethip4tcp-nat44ed-tput-avf
- -----------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-tput" 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-tput.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: 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-tput}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-tput}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-tput" 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-tput.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: 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-tput}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-tput}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-tput" 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-tput.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: 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-tput}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-tput}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-tput" 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-tput.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: 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-tput}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-tput}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-tput" 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-tput.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: 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-tput}
- \label{fig:hdrh-lat-percentile-2n-clx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-tput}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/nat44-2n-icx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/nat44-2n-icx-xxv710.rst
deleted file mode 100644
index 18725acef2..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/nat44-2n-icx-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-icx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-ethip4udp-nat44det-avf
--------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h1024-p63-s64512}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h16384-p63-s1032192}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h16384-p63-s1032192}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h65536-p63-s4128758}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44det-h65536-p63-s4128758}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ethip4udp-nat44ed-udir-avf
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-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 141d3e9a00..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/nat44-2n-skx-xxv710.rst
+++ /dev/null
@@ -1,442 +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-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-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-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}
-
- .. raw:: latex
-
- \clearpage
-
- 64b-2t1c-ethip4tcp-nat44ed-tput-avf
- -----------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-tput" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-tput.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: 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-ethip4tcp-nat44ed-h1024-p63-s64512-tput}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-tput}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-tput" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-tput.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: 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-ethip4tcp-nat44ed-h4096-p63-s258048-tput}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4tcp-nat44ed-h4096-p63-s258048-tput}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-tput" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-tput.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: 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-ethip4tcp-nat44ed-h16384-p63-s1032192-tput}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-tput}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-tput" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-tput.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: 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-ethip4tcp-nat44ed-h65536-p63-s4128768-tput}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-tput}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-tput" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-tput.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: 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-ethip4tcp-nat44ed-h262144-p63-s16515072-tput}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-tput}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- 64b-2t1c-ethip4tcp-nat44ed-tput-avf
- -----------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-tput" 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-tput.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: 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-tput}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h1024-p63-s64512-tput}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-tput" 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-tput.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: 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-tput}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h4096-p63-s258048-tput}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-tput" 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-tput.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: 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-tput}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-tput}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-tput" 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-tput.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: 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-tput}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-tput}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-tput" 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-tput.html"></iframe>
- <p><br></p>
- </center>
-
- .. raw:: 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-tput}
- \label{fig:hdrh-lat-percentile-2n-skx-25ge2p1xxv710-64b-2t1c-avf-ethip4udp-nat44ed-h262144-p63-s16515072-tput}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/nat44-2n-zn2-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/nat44-2n-zn2-xxv710.rst
deleted file mode 100644
index 97caca3b3b..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/nat44-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,51 +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-ethip4udp-nat44det-avf
--------------------------------
-
-.. 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}
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 4b6b47a2b6..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/nat44.rst
+++ /dev/null
@@ -1,17 +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=rls2206>`_.
-
-.. toctree::
-
- nat44-2n-icx-xxv710
- nat44-2n-skx-xxv710
- nat44-2n-clx-xxv710
- nat44-2n-zn2-xxv710
diff --git a/docs/report/vpp_performance_tests/packet_latency/srv6-3n-icx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/srv6-3n-icx-xxv710.rst
deleted file mode 100644
index f25e291c70..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/srv6-3n-icx-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-icx-xxv710
-~~~~~~~~~~~~~
-
-78b-2t1c-srv6-ip6routing-base-avf
----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-icx-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-icx-25ge2p1xxv710-78b-2t1c-avf-ethip6ip6-ip6base-srv6enc1sid}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-78b-2t1c-avf-ethip6ip6-ip6base-srv6enc1sid}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-icx-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-icx-25ge2p1xxv710-78b-2t1c-avf-ethip6srhip6-ip6base-srv6enc2sids}
- \label{fig:hdrh-lat-percentile-3n-icx-25ge2p1xxv710-78b-2t1c-avf-ethip6srhip6-ip6base-srv6enc2sids}
- \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 22c10513a7..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 21e59f9e0d..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/srv6-3n-tsh-x520.rst
+++ /dev/null
@@ -1,153 +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-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 a614847238..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/srv6.rst
+++ /dev/null
@@ -1,16 +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=rls2206>`_.
-
-.. toctree::
-
- srv6-3n-icx-xxv710
- srv6-3n-skx-xxv710
- srv6-3n-tsh-x520
diff --git a/docs/report/vpp_performance_tests/packet_latency/vm_vhost-2n-clx-cx556a.rst b/docs/report/vpp_performance_tests/packet_latency/vm_vhost-2n-clx-cx556a.rst
deleted file mode 100644
index fa0805c84b..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/vm_vhost-2n-clx-cx556a.rst
+++ /dev/null
@@ -1,198 +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-testpmd
---------------------------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-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-100ge2p1cx556a-64b-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-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-100ge2p1cx556a-64b-2t1c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-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-100ge2p1cx556a-64b-2t1c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-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-100ge2p1cx556a-64b-2t1c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-vhost-base-rdma-vpp
-----------------------------
-
-..
- .. raw:: html
-
- <center>
- <iframe id="5" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-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-100ge2p1cx556a-64b-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="6" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-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-100ge2p1cx556a-64b-2t1c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="7" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-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-100ge2p1cx556a-64b-2t1c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
-..
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="8" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-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-100ge2p1cx556a-64b-2t1c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1cx556a-64b-2t1c-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_latency/vm_vhost-2n-clx-e810cq.rst b/docs/report/vpp_performance_tests/packet_latency/vm_vhost-2n-clx-e810cq.rst
deleted file mode 100644
index c8739e5fd4..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/vm_vhost-2n-clx-e810cq.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>
-
-2n-clx-e810cq
-~~~~~~~~~~~~~
-
-64b-2t1c-vhost-base
--------------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-clx-100ge2p1e810cq-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-100ge2p1e810cq-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-clx-100ge2p1e810cq-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
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 7b76613d38..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/vm_vhost-2n-clx-xxv710.rst
+++ /dev/null
@@ -1,203 +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-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-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-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-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-icx-xxv710.rst b/docs/report/vpp_performance_tests/packet_latency/vm_vhost-2n-icx-xxv710.rst
deleted file mode 100644
index a174a3a6e4..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/vm_vhost-2n-icx-xxv710.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>
-
-2n-icx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-vhost-base-avf-testpmd
--------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-icx-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="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-vhost-base-avf-vpp
----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-icx-25ge2p1xxv710-64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="5" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-icx-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="6" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-2n-icx-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-icx-25ge2p1xxv710-64b-2t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-2n-icx-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 acc73ac1d1..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/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-2t1c-vhost-base-avf-testpmd
--------------------------------
-
-.. 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-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-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-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 896ff6db3e..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/vm_vhost-2n-zn2-xxv710.rst
+++ /dev/null
@@ -1,202 +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-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-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-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-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-alt-xl710.rst b/docs/report/vpp_performance_tests/packet_latency/vm_vhost-3n-alt-xl710.rst
deleted file mode 100644
index 3f39dc2fb3..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/vm_vhost-3n-alt-xl710.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-alt-xl710
-~~~~~~~~~~~~
-
-64b-1t1c-vhost-base
--------------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-alt-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-alt-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-alt-40ge2p1xl710-64b-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/hdrh-lat-percentile-3n-alt-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-alt-40ge2p1xl710-64b-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4}
- \label{fig:hdrh-lat-percentile-3n-alt-40ge2p1xl710-64b-1t1c-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4}
- \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 ac6b1135ba..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/vm_vhost-3n-tsh-x520.rst
+++ /dev/null
@@ -1,112 +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="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 c55b8224ad..0000000000
--- a/docs/report/vpp_performance_tests/packet_latency/vm_vhost.rst
+++ /dev/null
@@ -1,23 +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=rls2206>`_.
-
-.. toctree::
-
- vm_vhost-2n-icx-xxv710
- vm_vhost-2n-skx-xxv710
- vm_vhost-2n-clx-xxv710
- vm_vhost-2n-clx-cx556a
- vm_vhost-2n-clx-e810cq
- vm_vhost-2n-zn2-xxv710
- vm_vhost-3n-alt-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-e810cq.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-2n-clx-e810cq.rst
deleted file mode 100644
index 1f87fc055e..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-2n-clx-e810cq.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-e810cq
-~~~~~~~~~~~~~
-
-64b-2t1c-memif-base
--------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-e810cq-64b-2t1c-memif-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-e810cq-64b-2t1c-memif-ndr}
- \label{fig:2n-clx-e810cq-64b-2t1c-memif-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-e810cq-64b-2t1c-memif-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-e810cq-64b-2t1c-memif-pdr}
- \label{fig:2n-clx-e810cq-64b-2t1c-memif-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-icx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-2n-icx-xxv710.rst
deleted file mode 100644
index 5b3844d61a..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-2n-icx-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-icx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-memif-base
--------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-icx-xxv710-64b-2t1c-memif-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-icx-xxv710-64b-2t1c-memif-base-ndr}
- \label{fig:2n-icx-xxv710-64b-2t1c-memif-base-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-icx-xxv710-64b-2t1c-memif-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-icx-xxv710-64b-2t1c-memif-base-pdr}
- \label{fig:2n-icx-xxv710-64b-2t1c-memif-base-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-tx2-xl710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-2n-tx2-xl710.rst
deleted file mode 100644
index fddd17604d..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif-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
-~~~~~~~~~~~~
-
-64b-1t1c-memif-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-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-tx2-xl710-64b-1t1c-memif-base-dpdk-ndr}
- \label{fig:2n-tx2-xl710-64b-1t1c-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-tx2-xl710-64b-1t1c-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-tx2-xl710-64b-1t1c-memif-base-dpdk-pdr}
- \label{fig:2n-tx2-xl710-64b-1t1c-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.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif.rst
deleted file mode 100644
index d4e6d37962..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/container_memif.rst
+++ /dev/null
@@ -1,27 +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=rls2206>`_.
-
-.. toctree::
-
- container_memif-2n-icx-xxv710
- container_memif-2n-skx-xxv710
- container_memif-2n-clx-xxv710
- container_memif-2n-clx-cx556a
- container_memif-2n-clx-e810cq
- container_memif-2n-tx2-xl710
- container_memif-2n-zn2-xxv710
- container_memif-2n-zn2-cx556a
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 6371e010c9..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/index.rst
+++ /dev/null
@@ -1,167 +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
-
-#. **Header 2**: testbeds and NIC models
-
- - section name format:
-
- - {**testbed_type**}-{**nic_model**}
-
- - **testbed_type**:
-
- - 2n-icx: 2-node Xeon Icelake
- - 3n-icx: 3-node Xeon Icelake
- - 2n-aws: 2-node AWS
- - 2n-skx: 2-node Xeon Skylake
- - 3n-skx: 3-node Xeon Skylake
- - 2n-clx: 2-node Xeon Cascade Lake
- - 2n-zn2: 2-node AMD Zen2
- - 3n-alt: 2-node Arm Altra
- - 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)
- - cx556a: cx556a-edat 2p100GE Mellanox ConnectX5
- - e810cq: E810-2CQDA2 2p100GE Intel Columbiaville
-
-#. **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 are stored in
- `build logs from FD.io vpp performance job 2n-icx`_,
- `build logs from FD.io vpp performance job 3n-icx`_,
- `build logs from FD.io vpp performance job 2n-aws`_,
- `build logs from FD.io vpp performance job 2n-skx`_,
- `build logs from FD.io vpp performance job 3n-skx`_,
- `build logs from FD.io vpp performance job 2n-clx`_,
- `build logs from FD.io vpp performance job 2n-zn2`_,
- `build logs from FD.io vpp performance job 3n-alt`_,
- `build logs from FD.io vpp performance job 3n-tsh`_,
- `build logs from FD.io vpp performance job 2n-tx2`_,
- `build logs from FD.io vpp performance job 2n-dnv`_ and
- `build logs from FD.io 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
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-aws-nitro50g.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-aws-nitro50g.rst
deleted file mode 100644
index 1001692e69..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-aws-nitro50g.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-aws-nitro50g
-~~~~~~~~~~~~~~~
-
-64b-2t1c-ip4routing-base-scale-ena
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-aws-nitro50g-64b-2t1c-ip4routing-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-aws-nitro50g-64b-2t1c-ip4routing-base-scale-ndr}
- \label{fig:2n-aws-nitro50g-64b-2t1c-ip4routing-base-scale-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-aws-nitro50g-64b-2t1c-ip4routing-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-aws-nitro50g-64b-2t1c-ip4routing-base-scale-pdr}
- \label{fig:2n-aws-nitro50g-64b-2t1c-ip4routing-base-scale-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-4t2c-ip4routing-base-scale-ena
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-aws-nitro50g-64b-4t2c-ip4routing-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-aws-nitro50g-64b-4t2c-ip4routing-base-scale-ndr}
- \label{fig:2n-aws-nitro50g-64b-4t2c-ip4routing-base-scale-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-aws-nitro50g-64b-4t2c-ip4routing-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-aws-nitro50g-64b-4t2c-ip4routing-base-scale-pdr}
- \label{fig:2n-aws-nitro50g-64b-4t2c-ip4routing-base-scale-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-1518b-2t1c-ip4routing-base-scale-ena
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="5" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-aws-nitro50g-1518b-2t1c-ip4routing-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-aws-nitro50g-1518b-2t1c-ip4routing-base-scale-ndr}
- \label{fig:2n-aws-nitro50g-1518b-2t1c-ip4routing-base-scale-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="6" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-aws-nitro50g-1518b-2t1c-ip4routing-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-aws-nitro50g-1518b-2t1c-ip4routing-base-scale-pdr}
- \label{fig:2n-aws-nitro50g-1518b-2t1c-ip4routing-base-scale-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-1518b-4t2c-ip4routing-base-scale-ena
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="7" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-aws-nitro50g-1518b-4t2c-ip4routing-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-aws-nitro50g-1518b-4t2c-ip4routing-base-scale-ndr}
- \label{fig:2n-aws-nitro50g-1518b-4t2c-ip4routing-base-scale-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="8" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-aws-nitro50g-1518b-4t2c-ip4routing-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-aws-nitro50g-1518b-4t2c-ip4routing-base-scale-pdr}
- \label{fig:2n-aws-nitro50g-1518b-4t2c-ip4routing-base-scale-pdr}
- \end{figure}
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 ef9e67ef73..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-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-ip4routing-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-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-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-e810cq.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-clx-e810cq.rst
deleted file mode 100644
index cb81a41eba..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-clx-e810cq.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-e810cq
-~~~~~~~~~~~~~
-
-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-e810cq-64b-2t1c-ip4-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-e810cq-64b-2t1c-ip4-base-scale-avf-ndr}
- \label{fig:2n-clx-e810cq-64b-2t1c-ip4-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-e810cq-64b-2t1c-ip4-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-e810cq-64b-2t1c-ip4-base-scale-avf-pdr}
- \label{fig:2n-clx-e810cq-64b-2t1c-ip4-base-scale-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4routing-features-avf
---------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="07" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-e810cq-64b-2t1c-ip4-features-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-e810cq-64b-2t1c-ip4-features-avf-ndr}
- \label{fig:2n-clx-e810cq-64b-2t1c-ip4-features-avf-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-e810cq-64b-2t1c-ip4-features-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-e810cq-64b-2t1c-ip4-features-avf-pdr}
- \label{fig:2n-clx-e810cq-64b-2t1c-ip4-features-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4routing-base-scale-dpdk
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-e810cq-64b-2t1c-ip4-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-e810cq-64b-2t1c-ip4-base-scale-dpdk-ndr}
- \label{fig:2n-clx-e810cq-64b-2t1c-ip4-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-clx-e810cq-64b-2t1c-ip4-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-e810cq-64b-2t1c-ip4-base-scale-dpdk-pdr}
- \label{fig:2n-clx-e810cq-64b-2t1c-ip4-base-scale-dpdk-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 a025f2438c..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,af_xdp]-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,af_xdp]-ndr}
- \label{fig:2n-clx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk,af_xdp]-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,af_xdp]-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,af_xdp]-pdr}
- \label{fig:2n-clx-x710-64b-2t1c-ip4routing-base-scale-[avf,dpdk,af_xdp]-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 caaa1a2ac3..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-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-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-base-scale-af-xdp
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-af_xdp-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-af_xdp-ndr}
- \label{fig:2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-af_xdp-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-af_xdp-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-af_xdp-pdr}
- \label{fig:2n-clx-xxv710-64b-2t1c-ip4routing-base-scale-af_xdp-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-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}
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 a0b9623af0..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-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-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,af_xdp]-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,af_xdp]-ndr}
- \label{fig:2n-dnv-x553-64b-1t1c-ip4routing-base-scale-[ixgbe,af_xdp]-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,af_xdp]-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,af_xdp]-pdr}
- \label{fig:2n-dnv-x553-64b-1t1c-ip4routing-base-scale-[ixgbe,af_xdp]-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-icx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-icx-xxv710.rst
deleted file mode 100644
index 7437c706e8..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-icx-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-icx-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-icx-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-icx-xxv710-64b-2t1c-ip4routing-base-scale-avf-ndr}
- \label{fig:2n-icx-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-icx-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-icx-xxv710-64b-2t1c-ip4routing-base-scale-avf-pdr}
- \label{fig:2n-icx-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/2n-icx-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-icx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-ndr}
- \label{fig:2n-icx-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-icx-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-icx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr}
- \label{fig:2n-icx-xxv710-64b-2t1c-ip4routing-base-scale-dpdk-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-ip4routing-base-scale-af_xdp
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11a" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-icx-xxv710-64b-2t1c-ip4routing-base-scale-af_xdp-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-icx-xxv710-64b-2t1c-ip4routing-base-scale-af_xdp-ndr}
- \label{fig:2n-icx-xxv710-64b-2t1c-ip4routing-base-scale-af_xdp-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12a" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-icx-xxv710-64b-2t1c-ip4routing-base-scale-af_xdp-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-icx-xxv710-64b-2t1c-ip4routing-base-scale-af_xdp-pdr}
- \label{fig:2n-icx-xxv710-64b-2t1c-ip4routing-base-scale-af_xdp-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-icx-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-icx-xxv710-64b-2t1c-features-ip4routing-base-avf-ndr}
- \label{fig:2n-icx-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-icx-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-icx-xxv710-64b-2t1c-features-ip4routing-base-avf-pdr}
- \label{fig:2n-icx-xxv710-64b-2t1c-features-ip4routing-base-avf-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 32989a236f..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,af_xdp]-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,af_xdp]-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,af_xdp]-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,af_xdp]-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 bd6b7cb76f..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-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-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
-
-64b-2t1c-ip4routing-base-scale-af-xdp
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-af_xdp-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-af_xdp-ndr}
- \label{fig:2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-af_xdp-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-af_xdp-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-af_xdp-pdr}
- \label{fig:2n-skx-xxv710-64b-2t1c-ip4routing-base-scale-af_xdp-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
-
-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}
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 46510506f6..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-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-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-ip4routing-base-scale-af-xdp
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-1t1c-ip4routing-base-scale-af_xdp-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-af_xdp-ndr}
- \label{fig:2n-tx2-xl710-64b-1t1c-ip4routing-base-scale-af_xdp-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-1t1c-ip4routing-base-scale-af_xdp-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-af_xdp-pdr}
- \label{fig:2n-tx2-xl710-64b-1t1c-ip4routing-base-scale-af_xdp-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 8224a887ab..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-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-ip4routing-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-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-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 a99996c85f..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-[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-[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-[avf,dpdk]-ndr}
- \label{fig:2n-zn2-x710-64b-2t1c-ip4routing-base-[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-[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-[avf,dpdk]-pdr}
- \label{fig:2n-zn2-x710-64b-2t1c-ip4routing-base-[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 9f0943a90e..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-2n-zn2-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>
-
-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-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-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}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-alt-xl710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-alt-xl710.rst
deleted file mode 100644
index c0e078b5d5..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-alt-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-alt-xl710
-~~~~~~~~~~~~
-
-64b-1t1c-ip4routing-base-scale
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-64b-1t1c-ip4-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]{3n-alt-xl710-64b-1t1c-ip4-base-scale-ndr}
- \label{fig:3n-alt-xl710-64b-1t1c-ip4-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/3n-alt-xl710-64b-1t1c-ip4-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]{3n-alt-xl710-64b-1t1c-ip4-base-scale-pdr}
- \label{fig:3n-alt-xl710-64b-1t1c-ip4-base-scale-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-1t1c-ip4routing-features
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-64b-1t1c-ip4-feature-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-alt-xl710-64b-1t1c-ip4-feature-ndr}
- \label{fig:3n-alt-xl710-64b-1t1c-ip4-feature-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-alt-xl710-64b-1t1c-ip4-feature-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-alt-xl710-64b-1t1c-ip4-feature-pdr}
- \label{fig:3n-alt-xl710-64b-1t1c-ip4-feature-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-aws-nitro50g.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-aws-nitro50g.rst
deleted file mode 100644
index f815c2c163..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-aws-nitro50g.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-aws-nitro50g
-~~~~~~~~~~~~~~~
-
-64b-2t1c-ip4routing-base-scale-ena
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-aws-nitro50g-64b-2t1c-ip4routing-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]{3n-aws-nitro50g-64b-2t1c-ip4routing-base-scale-ndr}
- \label{fig:3n-aws-nitro50g-64b-2t1c-ip4routing-base-scale-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-aws-nitro50g-64b-2t1c-ip4routing-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]{3n-aws-nitro50g-64b-2t1c-ip4routing-base-scale-pdr}
- \label{fig:3n-aws-nitro50g-64b-2t1c-ip4routing-base-scale-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-4t2c-ip4routing-base-scale-ena
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-aws-nitro50g-64b-4t2c-ip4routing-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]{3n-aws-nitro50g-64b-4t2c-ip4routing-base-scale-ndr}
- \label{fig:3n-aws-nitro50g-64b-4t2c-ip4routing-base-scale-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-aws-nitro50g-64b-4t2c-ip4routing-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]{3n-aws-nitro50g-64b-4t2c-ip4routing-base-scale-pdr}
- \label{fig:3n-aws-nitro50g-64b-4t2c-ip4routing-base-scale-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-1518b-2t1c-ip4routing-base-scale-ena
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="5" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-aws-nitro50g-1518b-2t1c-ip4routing-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]{3n-aws-nitro50g-1518b-2t1c-ip4routing-base-scale-ndr}
- \label{fig:3n-aws-nitro50g-1518b-2t1c-ip4routing-base-scale-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="6" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-aws-nitro50g-1518b-2t1c-ip4routing-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]{3n-aws-nitro50g-1518b-2t1c-ip4routing-base-scale-pdr}
- \label{fig:3n-aws-nitro50g-1518b-2t1c-ip4routing-base-scale-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-1518b-4t2c-ip4routing-base-scale-ena
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="7" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-aws-nitro50g-1518b-4t2c-ip4routing-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]{3n-aws-nitro50g-1518b-4t2c-ip4routing-base-scale-ndr}
- \label{fig:3n-aws-nitro50g-1518b-4t2c-ip4routing-base-scale-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="8" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-aws-nitro50g-1518b-4t2c-ip4routing-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]{3n-aws-nitro50g-1518b-4t2c-ip4routing-base-scale-pdr}
- \label{fig:3n-aws-nitro50g-1518b-4t2c-ip4routing-base-scale-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 cc4d68b793..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-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>
-
-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}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-icx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-icx-xxv710.rst
deleted file mode 100644
index d647680a21..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-3n-icx-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-icx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-ip4routing-base
-------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-64b-2t1c-ip4routing-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]{3n-icx-xxv710-64b-2t1c-ip4routing-base-ndr}
- \label{fig:3n-icx-xxv710-64b-2t1c-ip4routing-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/3n-icx-xxv710-64b-2t1c-ip4routing-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]{3n-icx-xxv710-64b-2t1c-ip4routing-base-pdr}
- \label{fig:3n-icx-xxv710-64b-2t1c-ip4routing-base-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 d64333f604..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-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 6ee0f19416..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-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
-~~~~~~~~~~~~~
-
-64b-2t1c-ip4routing-base-[avf,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-ip4routing-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]{3n-skx-xxv710-64b-2t1c-ip4routing-base-ndr}
- \label{fig:3n-skx-xxv710-64b-2t1c-ip4routing-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/3n-skx-xxv710-64b-2t1c-ip4routing-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]{3n-skx-xxv710-64b-2t1c-ip4routing-base-pdr}
- \label{fig:3n-skx-xxv710-64b-2t1c-ip4routing-base-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 9750e41a3a..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4-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
-~~~~~~~~~~~
-
-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 e974562b88..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4.rst
+++ /dev/null
@@ -1,38 +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=rls2206>`_.
-
-.. toctree::
-
- ip4-2n-icx-xxv710
- ip4-3n-icx-xxv710
- 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-clx-e810cq
- ip4-2n-zn2-xxv710
- ip4-2n-zn2-x710
- ip4-2n-zn2-cx556a
- ip4-3n-alt-xl710
- ip4-3n-tsh-x520
- ip4-2n-tx2-xl710
- ip4-2n-dnv-x553
- ip4-3n-dnv-x553
- ip4-2n-aws-nitro50g
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-2n-clx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-2n-clx-xxv710.rst
deleted file mode 100644
index 477ae118c2..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-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
-~~~~~~~~~~~~~
-
-64b-2t1c-ethip4--ethip4udpgeneve-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-ethip4--ethip4udpgeneve-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-ethip4--ethip4udpgeneve-avf-ndr}
- \label{fig:2n-clx-xxv710-64b-2t1c-ethip4--ethip4udpgeneve-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-ethip4--ethip4udpgeneve-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-ethip4--ethip4udpgeneve-avf-pdr}
- \label{fig:2n-clx-xxv710-64b-2t1c-ethip4--ethip4udpgeneve-avf-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-2n-icx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-2n-icx-xxv710.rst
deleted file mode 100644
index 246f21a9f9..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-2n-icx-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-icx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-ethip4--ethip4udpgeneve-avf
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-icx-xxv710-64b-2t1c-ethip4--ethip4udpgeneve-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-icx-xxv710-64b-2t1c-ethip4--ethip4udpgeneve-avf-ndr}
- \label{fig:2n-icx-xxv710-64b-2t1c-ethip4--ethip4udpgeneve-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-icx-xxv710-64b-2t1c-ethip4--ethip4udpgeneve-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-icx-xxv710-64b-2t1c-ethip4--ethip4udpgeneve-avf-pdr}
- \label{fig:2n-icx-xxv710-64b-2t1c-ethip4--ethip4udpgeneve-avf-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-2n-skx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-2n-skx-xxv710.rst
deleted file mode 100644
index e85274a0e1..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-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
-~~~~~~~~~~~~~
-
-64b-2t1c-ethip4--ethip4udpgeneve-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-ethip4--ethip4udpgeneve-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-ethip4--ethip4udpgeneve-avf-ndr}
- \label{fig:2n-skx-xxv710-64b-2t1c-ethip4--ethip4udpgeneve-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-ethip4--ethip4udpgeneve-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-ethip4--ethip4udpgeneve-avf-pdr}
- \label{fig:2n-skx-xxv710-64b-2t1c-ethip4--ethip4udpgeneve-avf-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-2n-zn2-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-2n-zn2-xxv710.rst
deleted file mode 100644
index 9d9d2f9116..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-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
-~~~~~~~~~~~~~
-
-64b-2t1c-ethip4--ethip4udpgeneve-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-ethip4--ethip4udpgeneve-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-ethip4--ethip4udpgeneve-avf-ndr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-ethip4--ethip4udpgeneve-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-ethip4--ethip4udpgeneve-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-ethip4--ethip4udpgeneve-avf-pdr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-ethip4--ethip4udpgeneve-avf-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-alt-xl710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-alt-xl710.rst
deleted file mode 100644
index 81b58a8bcf..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-alt-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-alt-xl710
-~~~~~~~~~~~~
-
-64b-1t1c-ip4tunnel-base
------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-64b-1t1c-ip4-tunnels-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-alt-xl710-64b-1t1c-ip4-tunnels-ndr}
- \label{fig:3n-alt-xl710-64b-1t1c-ip4-tunnels-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-alt-xl710-64b-1t1c-ip4-tunnels-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-alt-xl710-64b-1t1c-ip4-tunnels-pdr}
- \label{fig:3n-alt-xl710-64b-1t1c-ip4-tunnels-pdr}
- \end{figure}
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 04794dcb1c..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-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>
-
-3n-dnv-x553
-~~~~~~~~~~~
-
-64b-1t1c-ip4tunnel-base-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-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-ixgbe-ndr}
- \label{fig:3n-dnv-x553-64b-1t1c-ip4tunnel-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-64b-1t1c-ip4tunnel-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-ip4tunnel-base-ixgbe-pdr}
- \label{fig:3n-dnv-x553-64b-1t1c-ip4tunnel-base-ixgbe-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-icx-e810xxv.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-icx-e810xxv.rst
deleted file mode 100644
index 21e7565829..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-icx-e810xxv.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-icx-e810xxv
-~~~~~~~~~~~~~~
-
-64b-2t1c-ip4tunnel-gtpu
------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-e810xxv-64b-2t1c-ip4tunnel-gtpu-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-icx-e810xxv-64b-2t1c-ip4tunnel-gtpu-ndr}
- \label{fig:3n-icx-e810xxv-64b-2t1c-ip4tunnel-gtpu-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-icx-e810xxv-64b-2t1c-ip4tunnel-gtpu-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-icx-e810xxv-64b-2t1c-ip4tunnel-gtpu-pdr}
- \label{fig:3n-icx-e810xxv-64b-2t1c-ip4tunnel-gtpu-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-icx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-icx-xxv710.rst
deleted file mode 100644
index 3db2ac29b0..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-3n-icx-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-icx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-ip4tunnel-base
------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-64b-2t1c-ip4tunnel-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]{3n-icx-xxv710-64b-2t1c-ip4tunnel-base-ndr}
- \label{fig:3n-icx-xxv710-64b-2t1c-ip4tunnel-base-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-icx-xxv710-64b-2t1c-ip4tunnel-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]{3n-icx-xxv710-64b-2t1c-ip4tunnel-base-pdr}
- \label{fig:3n-icx-xxv710-64b-2t1c-ip4tunnel-base-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 30daa158b7..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-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
-~~~~~~~~~~~~~
-
-64b-2t1c-ip4tunnel-base
------------------------
-
-.. 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-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-ndr}
- \label{fig:3n-skx-xxv710-64b-2t1c-ip4tunnel-base-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-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-pdr}
- \label{fig:3n-skx-xxv710-64b-2t1c-ip4tunnel-base-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 d47b0039aa..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels-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
-~~~~~~~~~~~
-
-64b-1t1c-ip4tunnel-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-ip4tunnel-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-ip4tunnel-base-ixgbe-ndr}
- \label{fig:3n-tsh-x520-64b-1t1c-ip4tunnel-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-ip4tunnel-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-ip4tunnel-base-ixgbe-pdr}
- \label{fig:3n-tsh-x520-64b-1t1c-ip4tunnel-base-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 4083699f86..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip4_tunnels.rst
+++ /dev/null
@@ -1,29 +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=rls2206>`_.
-
-.. toctree::
-
- ip4_tunnels-2n-icx-xxv710
- ip4_tunnels-3n-icx-xxv710
- ip4_tunnels-3n-icx-e810xxv
- ip4_tunnels-2n-skx-xxv710
- ip4_tunnels-2n-clx-xxv710
- ip4_tunnels-2n-zn2-xxv710
- ip4_tunnels-3n-skx-xxv710
- ip4_tunnels-3n-alt-xl710
- ip4_tunnels-3n-tsh-x520
- ip4_tunnels-3n-dnv-x553
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-aws-nitro50g.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-aws-nitro50g.rst
deleted file mode 100644
index 912f524c0d..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-aws-nitro50g.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-aws-nitro50g
-~~~~~~~~~~~~~~~
-
-78b-2t1c-ip6routing-base-scale-ena
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-aws-nitro50g-78b-2t1c-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-aws-nitro50g-78b-2t1c-ip6routing-base-scale-ndr}
- \label{fig:2n-aws-nitro50g-78b-2t1c-ip6routing-base-scale-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-aws-nitro50g-78b-2t1c-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-aws-nitro50g-78b-2t1c-ip6routing-base-scale-pdr}
- \label{fig:2n-aws-nitro50g-78b-2t1c-ip6routing-base-scale-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-78b-4t2c-ip6routing-base-scale-ena
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-aws-nitro50g-78b-2t1c-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-aws-nitro50g-78b-2t1c-ip6routing-base-scale-ndr}
- \label{fig:2n-aws-nitro50g-78b-2t1c-ip6routing-base-scale-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-aws-nitro50g-78b-2t1c-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-aws-nitro50g-78b-2t1c-ip6routing-base-scale-pdr}
- \label{fig:2n-aws-nitro50g-78b-2t1c-ip6routing-base-scale-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-1518b-2t1c-ip6routing-base-scale-ena
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="5" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-aws-nitro50g-1518b-2t1c-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-aws-nitro50g-1518b-2t1c-ip6routing-base-scale-ndr}
- \label{fig:2n-aws-nitro50g-1518b-2t1c-ip6routing-base-scale-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="6" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-aws-nitro50g-1518b-2t1c-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-aws-nitro50g-1518b-2t1c-ip6routing-base-scale-pdr}
- \label{fig:2n-aws-nitro50g-1518b-2t1c-ip6routing-base-scale-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-1518b-4t2c-ip6routing-base-scale-ena
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="7" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-aws-nitro50g-1518b-4t2c-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-aws-nitro50g-1518b-4t2c-ip6routing-base-scale-ndr}
- \label{fig:2n-aws-nitro50g-1518b-4t2c-ip6routing-base-scale-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="8" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-aws-nitro50g-1518b-4t2c-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-aws-nitro50g-1518b-4t2c-ip6routing-base-scale-pdr}
- \label{fig:2n-aws-nitro50g-1518b-4t2c-ip6routing-base-scale-pdr}
- \end{figure}
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-e810cq.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-clx-e810cq.rst
deleted file mode 100644
index ce803714af..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-clx-e810cq.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-e810cq
-~~~~~~~~~~~~~
-
-78b-2t1c-ip6routing-base-scale
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-e810cq-78b-2t1c-ip6-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-e810cq-78b-2t1c-ip6-ndr}
- \label{fig:2n-clx-e810cq-78b-2t1c-ip6-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-e810cq-78b-2t1c-ip6-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-e810cq-78b-ip6-pdr}
- \label{fig:2n-clx-e810cq-78b-2t1c-ip6-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 32e247aa8e..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,af_xdp]-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,af_xdp]-ndr}
- \label{fig:2n-clx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk,af_xdp]-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,af_xdp]-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,af_xdp]-pdr}
- \label{fig:2n-clx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk,af_xdp]-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 f354dfdba0..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-clx-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>
-
-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-af_xdp
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-af_xdp-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-af_xdp-ndr}
- \label{fig:2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-af_xdp-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-af_xdp-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-af_xdp-pdr}
- \label{fig:2n-clx-xxv710-78b-2t1c-ip6routing-base-scale-af_xdp-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 efaf28bbea..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-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
-~~~~~~~~~~~
-
-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,af_xdp]-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,af_xdp]-ndr}
- \label{fig:2n-dnv-x553-78b-1t1c-ip6routing-base-scale-[ixgbe,af_xdp]-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,af_xdp]-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,af_xdp]-pdr}
- \label{fig:2n-dnv-x553-78b-1t1c-ip6routing-base-scale-[ixgbe,af_xdp]-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-icx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-icx-xxv710.rst
deleted file mode 100644
index bbe67363fc..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-icx-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>
-
-2n-icx-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-icx-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-icx-xxv710-78b-2t1c-ip6routing-base-scale-avf-ndr}
- \label{fig:2n-icx-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-icx-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-icx-xxv710-78b-2t1c-ip6routing-base-scale-avf-pdr}
- \label{fig:2n-icx-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-icx-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-icx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-ndr}
- \label{fig:2n-icx-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-icx-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-icx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr}
- \label{fig:2n-icx-xxv710-78b-2t1c-ip6routing-base-scale-dpdk-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-78b-2t1c-ip6routing-base-scale-af_xdp
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-icx-xxv710-78b-2t1c-ip6routing-base-scale-af_xdp-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-icx-xxv710-78b-2t1c-ip6routing-base-scale-af_xdp-ndr}
- \label{fig:2n-icx-xxv710-78b-2t1c-ip6routing-base-scale-af_xdp-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-icx-xxv710-78b-2t1c-ip6routing-base-scale-af_xdp-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-icx-xxv710-78b-2t1c-ip6routing-base-scale-af_xdp-pdr}
- \label{fig:2n-icx-xxv710-78b-2t1c-ip6routing-base-scale-af_xdp-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 e3ba92c274..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,af_xdp]-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,af_xdp]-ndr}
- \label{fig:2n-skx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk,af_xdp]-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,af_xdp]-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,af_xdp]-pdr}
- \label{fig:2n-skx-x710-78b-2t1c-ip6routing-base-scale-[avf,dpdk,af_xdp]-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 1d759eb151..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-2n-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>
-
-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-af-xdp
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-af_xdp-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-af_xdp-ndr}
- \label{fig:2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-af_xdp-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-af_xdp-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-af_xdp-pdr}
- \label{fig:2n-skx-xxv710-78b-2t1c-ip6routing-base-scale-af_xdp-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 3b9d563ef1..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-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
-~~~~~~~~~~~~
-
-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}
-
-.. raw:: latex
-
- \clearpage
-
-78b-1t1c-ip6routing-base-scale-af-xdp
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-78b-1t1c-ip6routing-base-scale-af_xdp-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-af_xdp-ndr}
- \label{fig:2n-tx2-xl710-78b-1t1c-ip6routing-base-scale-af_xdp-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-78b-1t1c-ip6routing-base-scale-af_xdp-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-af_xdp-pdr}
- \label{fig:2n-tx2-xl710-78b-1t1c-ip6routing-base-scale-af_xdp-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 ea881ac40b..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-[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-[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-[avf,dpdk]-ndr}
- \label{fig:2n-zn2-x710-78b-2t1c-ip6routing-base-[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-[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-[avf,dpdk]-pdr}
- \label{fig:2n-zn2-x710-78b-2t1c-ip6routing-base-[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 a85ae6f6a9..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/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-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-alt-xl710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-3n-alt-xl710.rst
deleted file mode 100644
index f97962a677..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-3n-alt-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-alt-xl710
-~~~~~~~~~~~~
-
-78b-1t1c-ip6routing-base-scale
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-78b-1t1c-ip6-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]{3n-alt-xl710-78b-1t1c-ip6-base-scale-ndr}
- \label{fig:3n-alt-xl710-78b-1t1c-ip6-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/3n-alt-xl710-78b-1t1c-ip6-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]{3n-alt-xl710-78b-1t1c-ip6-base-scale-pdr}
- \label{fig:3n-alt-xl710-78b-1t1c-ip6-base-scale-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-icx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-3n-icx-xxv710.rst
deleted file mode 100644
index c8206797d9..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-3n-icx-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-icx-xxv710
-~~~~~~~~~~~~~
-
-78b-2t1c-ip6routing-base
-------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-78b-2t1c-ip6routing-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]{3n-icx-xxv710-78b-2t1c-ip6routing-base-ndr}
- \label{fig:3n-icx-xxv710-78b-2t1c-ip6routing-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/3n-icx-xxv710-78b-2t1c-ip6routing-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]{3n-icx-xxv710-78b-2t1c-ip6routing-base-pdr}
- \label{fig:3n-icx-xxv710-78b-2t1c-ip6routing-base-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 721bdbebe3..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-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-2t1c-ip6routing-base-[avf,dpdk]
------------------------------------
-
-.. 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-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-ndr}
- \label{fig:3n-skx-xxv710-78b-2t1c-ip6routing-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/3n-skx-xxv710-78b-2t1c-ip6routing-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]{3n-skx-xxv710-78b-2t1c-ip6routing-base-pdr}
- \label{fig:3n-skx-xxv710-78b-2t1c-ip6routing-base-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 f5f618eb8c..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6-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
-~~~~~~~~~~~
-
-78b-1t1c-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-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-ip6routing-base-ixgbe-ndr}
- \label{fig:3n-tsh-x520-78b-1t1c-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-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-ip6routing-base-ixgbe-pdr}
- \label{fig:3n-tsh-x520-78b-1t1c-ip6routing-base-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 12e1761355..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ip6.rst
+++ /dev/null
@@ -1,38 +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=rls2206>`_.
-
-.. toctree::
-
- ip6-2n-icx-xxv710
- ip6-3n-icx-xxv710
- 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-clx-e810cq
- ip6-2n-zn2-xxv710
- ip6-2n-zn2-x710
- ip6-2n-zn2-cx556a
- ip6-3n-alt-xl710
- ip6-3n-tsh-x520
- ip6-2n-tx2-xl710
- ip6-2n-dnv-x553
- ip6-3n-dnv-x553
- ip6-2n-aws-nitro50g
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-2n-tx2-xl710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-2n-tx2-xl710.rst
deleted file mode 100644
index 5691623b9e..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-2n-tx2-xl710.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-tx2-xl710
-~~~~~~~~~~~~
-
-64b-ipsec-spe-ip4routing-base-scale
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-1t1c-ipsec-base-scale-sw-policy-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-ipsec-base-scale-sw-policy-dpdk-ndr}
- \label{fig:2n-tx2-xl710-64b-1t1c-ipsec-base-scale-sw-policy-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-ipsec-base-scale-sw-policy-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-ipsec-base-scale-sw-policy-dpdk-pdr}
- \label{fig:2n-tx2-xl710-64b-1t1c-ipsec-base-scale-sw-policy-dpdk-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-ipsec-ip4routing-base-scale-sw
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-1t1c-ipsec-spe-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-ipsec-spe-base-scale-dpdk-ndr}
- \label{fig:2n-tx2-xl710-64b-1t1c-ipsec-spe-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-ipsec-spe-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-ipsec-spe-base-scale-dpdk-pdr}
- \label{fig:2n-tx2-xl710-64b-1t1c-ipsec-spe-base-scale-dpdk-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-1518b-ipsec-ip4routing-base-scale-sw-cbc
-----------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-1518b-1t1c-ipsec-base-scale-sw-cbc-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-1518b-1t1c-ipsec-base-scale-sw-cbc-dpdk-ndr}
- \label{fig:2n-tx2-xl710-1518b-1t1c-ipsec-base-scale-sw-cbc-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="06" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-1518b-1t1c-ipsec-base-scale-sw-cbc-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-1518b-1t1c-ipsec-base-scale-sw-cbc-dpdk-pdr}
- \label{fig:2n-tx2-xl710-1518b-1t1c-ipsec-base-scale-sw-cbc-dpdk-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-ipsec-ip4routing-base-scale-sw-cbc
----------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="07" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-imix-1t1c-ipsec-base-scale-sw-cbc-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-imix-1t1c-ipsec-base-scale-sw-cbc-dpdk-ndr}
- \label{fig:2n-tx2-xl710-imix-1t1c-ipsec-base-scale-sw-cbc-dpdk-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-tx2-xl710-imix-1t1c-ipsec-base-scale-sw-cbc-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-imix-1t1c-ipsec-base-scale-sw-cbc-dpdk-pdr}
- \label{fig:2n-tx2-xl710-imix-1t1c-ipsec-base-scale-sw-cbc-dpdk-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-1518b-ipsec-ip4routing-base-scale-sw-gcm
-----------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="09" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-1518b-1t1c-ipsec-base-scale-sw-gcm-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-1518b-1t1c-ipsec-base-scale-sw-gcm-dpdk-ndr}
- \label{fig:2n-tx2-xl710-1518b-1t1c-ipsec-base-scale-sw-gcm-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="10" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-1518b-1t1c-ipsec-base-scale-sw-gcm-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-1518b-1t1c-ipsec-base-scale-sw-gcm-dpdk-pdr}
- \label{fig:2n-tx2-xl710-1518b-1t1c-ipsec-base-scale-sw-gcm-dpdk-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-ipsec-ip4routing-base-scale-sw-gcm
----------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-imix-1t1c-ipsec-base-scale-sw-gcm-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-imix-1t1c-ipsec-base-scale-sw-gcm-dpdk-ndr}
- \label{fig:2n-tx2-xl710-imix-1t1c-ipsec-base-scale-sw-gcm-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-tx2-xl710-imix-1t1c-ipsec-base-scale-sw-gcm-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-imix-1t1c-ipsec-base-scale-sw-gcm-dpdk-pdr}
- \label{fig:2n-tx2-xl710-imix-1t1c-ipsec-base-scale-sw-gcm-dpdk-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-3n-alt-xl710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-3n-alt-xl710.rst
deleted file mode 100644
index 3a3b6a0641..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-3n-alt-xl710.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>
-
-3n-alt-xl710
-~~~~~~~~~~~~
-
-1518b-1t1c-ipsec-aes128cbc-ip4routing-scale-sw
-----------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-1518b-1t1c-ipsec-aes128cbc-ip4routing-scale-sw-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-alt-xl710-1518b-1t1c-ipsec-aes128cbc-ip4routing-scale-sw-ndr}
- \label{fig:3n-alt-xl710-1518b-1t1c-ipsec-aes128cbc-ip4routing-scale-sw-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-alt-xl710-1518b-1t1c-ipsec-aes128cbc-ip4routing-scale-sw-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-alt-xl710-1518b-1t1c-ipsec-aes128cbc-ip4routing-scale-sw-pdr}
- \label{fig:3n-alt-xl710-1518b-1t1c-ipsec-aes128cbc-ip4routing-scale-sw-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-1518b-1t1c-ipsec-aes256gcm-ip4routing-scale-sw
-----------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-1518b-1t1c-ipsec-aes256gcm-ip4routing-scale-sw-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-alt-xl710-1518b-1t1c-ipsec-aes256gcm-ip4routing-scale-sw-ndr}
- \label{fig:3n-alt-xl710-1518b-1t1c-ipsec-aes256gcm-ip4routing-scale-sw-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/3n-alt-xl710-1518b-1t1c-ipsec-aes256gcm-ip4routing-scale-sw-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-alt-xl710-1518b-1t1c-ipsec-aes256gcm-ip4routing-scale-sw-pdr}
- \label{fig:3n-alt-xl710-1518b-1t1c-ipsec-aes256gcm-ip4routing-scale-sw-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-1t1c-ipsec-aes128cbc-ip4routing-scale-sw
----------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-imix-1t1c-ipsec-aes128cbc-ip4routing-scale-sw-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-alt-xl710-imix-1t1c-ipsec-aes128cbc-ip4routing-scale-sw-ndr}
- \label{fig:3n-alt-xl710-imix-1t1c-ipsec-aes128cbc-ip4routing-scale-sw-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="06" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-imix-1t1c-ipsec-aes128cbc-ip4routing-scale-sw-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-alt-xl710-imix-1t1c-ipsec-aes128cbc-ip4routing-scale-sw-pdr}
- \label{fig:3n-alt-xl710-imix-1t1c-ipsec-aes128cbc-ip4routing-scale-sw-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-1t1c-ipsec-aes256gcm-ip4routing-scale-sw
----------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="07" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-imix-1t1c-ipsec-aes256gcm-ip4routing-scale-sw-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-alt-xl710-imix-1t1c-ipsec-aes256gcm-ip4routing-scale-sw-ndr}
- \label{fig:3n-alt-xl710-imix-1t1c-ipsec-aes256gcm-ip4routing-scale-sw-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/3n-alt-xl710-imix-1t1c-ipsec-aes256gcm-ip4routing-scale-sw-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-alt-xl710-imix-1t1c-ipsec-aes256gcm-ip4routing-scale-sw-pdr}
- \label{fig:3n-alt-xl710-imix-1t1c-ipsec-aes256gcm-ip4routing-scale-sw-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-1t1c-ipsec-ip4base-policy-outbound-nocrypto
------------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="09" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-64b-1t1c-ipsec-ip4base-policy-outbound-nocrypto-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-alt-xl710-64b-1t1c-ipsec-ip4base-policy-outbound-nocrypto-ndr}
- \label{fig:3n-alt-xl710-64b-1t1c-ipsec-ip4base-policy-outbound-nocrypto-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="10" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-64b-1t1c-ipsec-ip4base-policy-outbound-nocrypto-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-alt-xl710-64b-1t1c-ipsec-ip4base-policy-outbound-nocrypto-pdr}
- \label{fig:3n-alt-xl710-64b-1t1c-ipsec-ip4base-policy-outbound-nocrypto-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-1t1c-ipsec-ip4base-policy-aes256gcm-sw
-------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-64b-1t1c-ipsec-ip4base-policy-aes256gcm-sw-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-alt-xl710-64b-1t1c-ipsec-ip4base-policy-aes256gcm-sw-ndr}
- \label{fig:3n-alt-xl710-64b-1t1c-ipsec-ip4base-policy-aes256gcm-sw-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-alt-xl710-64b-1t1c-ipsec-ip4base-policy-aes256gcm-sw-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-alt-xl710-64b-1t1c-ipsec-ip4base-policy-aes256gcm-sw-pdr}
- \label{fig:3n-alt-xl710-64b-1t1c-ipsec-ip4base-policy-aes256gcm-sw-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-3n-aws-nitro50g.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-3n-aws-nitro50g.rst
deleted file mode 100644
index 2e92900fe4..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-3n-aws-nitro50g.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-aws-nitro50g
-~~~~~~~~~~~~~~~
-
-imix-2t1c-ipsec-ip4routing-scale-sw-ena
----------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-aws-nitro50g-imix-2t1c-ipsec-ip4routing-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]{3n-aws-nitro50g-imix-2t1c-ipsec-ip4routing-scale-ndr}
- \label{fig:3n-aws-nitro50g-imix-2t1c-ipsec-ip4routing-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/3n-aws-nitro50g-imix-2t1c-ipsec-ip4routing-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]{3n-aws-nitro50g-imix-2t1c-ipsec-ip4routing-scale-pdr}
- \label{fig:3n-aws-nitro50g-imix-2t1c-ipsec-ip4routing-scale-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-ipsec-ip4routing-scale-sw-ena
----------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-aws-nitro50g-imix-4t2c-ipsec-ip4routing-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]{3n-aws-nitro50g-imix-4t2c-ipsec-ip4routing-scale-ndr}
- \label{fig:3n-aws-nitro50g-imix-4t2c-ipsec-ip4routing-scale-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-aws-nitro50g-imix-4t2c-ipsec-ip4routing-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]{3n-aws-nitro50g-imix-4t2c-ipsec-ip4routing-scale-pdr}
- \label{fig:3n-aws-nitro50g-imix-4t2c-ipsec-ip4routing-scale-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-1518b-2t1c-ipsec-ip4routing-scale-sw-ena
-----------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="5" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-aws-nitro50g-1518b-2t1c-ipsec-ip4routing-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]{3n-aws-nitro50g-1518b-2t1c-ipsec-ip4routing-scale-ndr}
- \label{fig:3n-aws-nitro50g-1518b-2t1c-ipsec-ip4routing-scale-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="6" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-aws-nitro50g-1518b-2t1c-ipsec-ip4routing-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]{3n-aws-nitro50g-1518b-2t1c-ipsec-ip4routing-scale-pdr}
- \label{fig:3n-aws-nitro50g-1518b-2t1c-ipsec-ip4routing-scale-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-1518b-4t2c-ipsec-ip4routing-scale-sw-ena
-----------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="7" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-aws-nitro50g-1518b-4t2c-ipsec-ip4routing-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]{3n-aws-nitro50g-1518b-4t2c-ipsec-ip4routing-scale-ndr}
- \label{fig:3n-aws-nitro50g-1518b-4t2c-ipsec-ip4routing-scale-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="8" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-aws-nitro50g-1518b-4t2c-ipsec-ip4routing-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]{3n-aws-nitro50g-1518b-4t2c-ipsec-ip4routing-scale-pdr}
- \label{fig:3n-aws-nitro50g-1518b-4t2c-ipsec-ip4routing-scale-pdr}
- \end{figure}
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-icx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-3n-icx-xxv710.rst
deleted file mode 100644
index 312a84d33c..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-3n-icx-xxv710.rst
+++ /dev/null
@@ -1,461 +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-icx-xxv710
-~~~~~~~~~~~~~
-
-..
- imix-2t1c-ipsec-aes128cbc-ip4routing-base-scale-sw-avf
- ------------------------------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-imix-2t1c-ipsec-aes128cbc-ip4routing-base-scale-sw-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-icx-xxv710-imix-2t1c-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-ndr}
- \label{fig:3n-icx-xxv710-imix-2t1c-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-ndr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-imix-2t1c-ipsec-aes128cbc-ip4routing-base-scale-sw-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-icx-xxv710-imix-2t1c-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-pdr}
- \label{fig:3n-icx-xxv710-imix-2t1c-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-pdr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-imix-2t1c-ipsec-aes256gcm-ip4routing-base-scale-sw-avf
-------------------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-imix-2t1c-ipsec-aes256gcm-ip4routing-base-scale-sw-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-icx-xxv710-imix-2t1c-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-ndr}
- \label{fig:3n-icx-xxv710-imix-2t1c-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-imix-2t1c-ipsec-aes256gcm-ip4routing-base-scale-sw-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-icx-xxv710-imix-2t1c-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-pdr}
- \label{fig:3n-icx-xxv710-imix-2t1c-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-2t1c-ipsec-ip4routing-base-scale-sw-dpdk
----------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="5" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-imix-2t1c-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-icx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-sw-dpdk-ndr}
- \label{fig:3n-icx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-sw-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="6" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-imix-2t1c-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-icx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-sw-dpdk-pdr}
- \label{fig:3n-icx-xxv710-imix-2t1c-ipsec-ip4routing-base-scale-sw-dpdk-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-..
- imix-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-avf
- ------------------------------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="7" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-imix-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-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-icx-xxv710-imix-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-avf-ndr}
- \label{fig:3n-icx-xxv710-imix-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-avf-ndr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="8" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-imix-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-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-icx-xxv710-imix-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-avf-pdr}
- \label{fig:3n-icx-xxv710-imix-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-avf-pdr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- imix-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-dpdk
- -------------------------------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="9" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-imix-2t1c-ipsec-scheduler-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-icx-xxv710-imix-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-dpdk-ndr}
- \label{fig:3n-icx-xxv710-imix-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-dpdk-ndr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="10" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-imix-2t1c-ipsec-scheduler-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-icx-xxv710-imix-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-dpdk-pdr}
- \label{fig:3n-icx-xxv710-imix-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-dpdk-pdr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-1518b-2t1c-ipsec-aes128cbc-ip4routing-base-scale-sw-avf
--------------------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="1i" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-1518b-2t1c-ipsec-aes128cbc-ip4routing-base-scale-sw-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-icx-xxv710-1518b-2t1c-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-ndr}
- \label{fig:3n-icx-xxv710-1518b-2t1c-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2i" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-1518b-2t1c-ipsec-aes128cbc-ip4routing-base-scale-sw-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-icx-xxv710-1518b-2t1c-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-pdr}
- \label{fig:3n-icx-xxv710-1518b-2t1c-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-1518b-2t1c-ipsec-aes256gcm-ip4routing-base-scale-sw-avf
--------------------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="3i" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-1518b-2t1c-ipsec-aes256gcm-ip4routing-base-scale-sw-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-icx-xxv710-1518b-2t1c-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-ndr}
- \label{fig:3n-icx-xxv710-1518b-2t1c-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="4i" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-1518b-2t1c-ipsec-aes256gcm-ip4routing-base-scale-sw-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-icx-xxv710-1518b-2t1c-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-pdr}
- \label{fig:3n-icx-xxv710-1518b-2t1c-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-1518b-2t1c-ipsec-ip4routing-base-scale-sw-dpdk
-----------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="5i" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-1518b-2t1c-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-icx-xxv710-1518b-2t1c-ipsec-ip4routing-base-scale-sw-dpdk-ndr}
- \label{fig:3n-icx-xxv710-1518b-2t1c-ipsec-ip4routing-base-scale-sw-dpdk-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="6i" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-1518b-2t1c-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-icx-xxv710-1518b-2t1c-ipsec-ip4routing-base-scale-sw-dpdk-pdr}
- \label{fig:3n-icx-xxv710-1518b-2t1c-ipsec-ip4routing-base-scale-sw-dpdk-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-..
- 1518b-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-avf
- -------------------------------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="7i" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-1518b-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-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-icx-xxv710-1518b-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-avf-ndr}
- \label{fig:3n-icx-xxv710-1518b-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-avf-ndr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="8i" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-1518b-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-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-icx-xxv710-1518b-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-avf-pdr}
- \label{fig:3n-icx-xxv710-1518b-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-avf-pdr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- 1518b-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-dpdk
- --------------------------------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="9i" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-1518b-2t1c-ipsec-scheduler-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-icx-xxv710-1518b-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-dpdk-ndr}
- \label{fig:3n-icx-xxv710-1518b-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-dpdk-ndr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="10i" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-1518b-2t1c-ipsec-scheduler-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-icx-xxv710-1518b-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-dpdk-pdr}
- \label{fig:3n-icx-xxv710-1518b-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-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 9411a41857..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec-3n-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>
-
-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
-
-1518b-2t1c-ipsec-ip4routing-base-scale-avf
-------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101a" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-1518b-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-1518b-2t1c-ipsec-ip4routing-base-scale-avf-ndr}
- \label{fig:3n-skx-xxv710-1518b-2t1c-ipsec-ip4routing-base-scale-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102a" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-1518b-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-1518b-2t1c-ipsec-ip4routing-base-scale-avf-pdr}
- \label{fig:3n-skx-xxv710-1518b-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 31998d85b5..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec.rst
+++ /dev/null
@@ -1,28 +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=rls2206>`_.
-
-.. toctree::
-
- ipsec-3n-icx-xxv710
- ipsec-3n-skx-xxv710
- ipsec-3n-alt-xl710
- ipsec-3n-tsh-x520
- ipsec-2n-tx2-xl710
- 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-e810cq.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-clx-e810cq.rst
deleted file mode 100644
index 8e7045d5ca..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-clx-e810cq.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-e810cq
-~~~~~~~~~~~~~
-
-64b-2t1c-l2switching-avf
-------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-e810cq-64b-2t1c-l2-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-e810cq-64b-2t1c-l2-avf-ndr}
- \label{fig:2n-clx-e810cq-64b-2t1c-l2-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-e810cq-64b-2t1c-l2-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-e810cq-64b-2t1c-l2-avf-pdr}
- \label{fig:2n-clx-e810cq-64b-2t1c-l2-avf-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-l2switching-dpdk
--------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-e810cq-64b-2t1c-l2-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-e810cq-64b-2t1c-l2-dpdk-ndr}
- \label{fig:2n-clx-e810cq-64b-2t1c-l2-dpdk-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-e810cq-64b-2t1c-l2-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-e810cq-64b-2t1c-l2-dpdk-pdr}
- \label{fig:2n-clx-e810cq-64b-2t1c-l2-dpdk-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 67e011c883..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-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-l2switching-base-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-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-avf-ndr}
- \label{fig:2n-clx-x710-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-x710-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-x710-64b-2t1c-l2switching-base-avf-pdr}
- \label{fig:2n-clx-x710-64b-2t1c-l2switching-base-avf-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 6e932e2692..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-dnv-x553.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-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}
-
-..
- .. raw:: latex
-
- \clearpage
-
- 64b-1t1c-l2switching-base-scale-af-xdp
- --------------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="21af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-dnv-x553-64b-1t1c-l2switching-base-scale-af_xdp-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-af_xdp-ndr}
- \label{fig:2n-dnv-x553-64b-1t1c-l2switching-base-scale-af_xdp-ndr}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="22af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-dnv-x553-64b-1t1c-l2switching-base-scale-af_xdp-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-af_xdp-pdr}
- \label{fig:2n-dnv-x553-64b-1t1c-l2switching-base-scale-af_xdp-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-icx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-icx-xxv710.rst
deleted file mode 100644
index 435571e266..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-icx-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-icx-xxv710
-~~~~~~~~~~~~~
-
-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-icx-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-icx-xxv710-64b-2t1c-l2switching-base-scale-avf-ndr}
- \label{fig:2n-icx-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-icx-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-icx-xxv710-64b-2t1c-l2switching-base-scale-avf-pdr}
- \label{fig:2n-icx-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-icx-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-icx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-ndr}
- \label{fig:2n-icx-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-icx-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-icx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-pdr}
- \label{fig:2n-icx-xxv710-64b-2t1c-l2switching-base-scale-dpdk-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 e32efdf066..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-2n-tx2-xl710.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-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-l2switching-scale-af-xdp
----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="011af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-1t1c-l2switching-scale-af_xdp-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-af_xdp-ndr}
- \label{fig:2n-tx2-xl710-64b-1t1c-l2switching-scale-af_xdp-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="021af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-1t1c-l2switching-scale-af_xdp-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-af_xdp-pdr}
- \label{fig:2n-tx2-xl710-64b-1t1c-l2switching-scale-af_xdp-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 79dd89421e..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-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-l2switching-base
--------------------------
-
-.. 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-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-ndr}
- \label{fig:2n-zn2-x710-64b-2t1c-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-x710-64b-2t1c-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-x710-64b-2t1c-l2switching-base-pdr}
- \label{fig:2n-zn2-x710-64b-2t1c-l2switching-base-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-alt-xl710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-3n-alt-xl710.rst
deleted file mode 100644
index 5f7543d39c..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-3n-alt-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-alt-xl710
-~~~~~~~~~~~~
-
-64b-1t1c-l2switching-base-scale
--------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-64b-1t1c-l2-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]{3n-alt-xl710-64b-1t1c-l2-base-scale-ndr}
- \label{fig:3n-alt-xl710-64b-1t1c-l2-base-scale-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-alt-xl710-64b-1t1c-l2-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]{3n-alt-xl710-64b-1t1c-l2-base-scale-pdr}
- \label{fig:3n-alt-xl710-64b-1t1c-l2-base-scale-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-1t1c-l2switching-features
------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-64b-1t1c-l2-feature-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-alt-xl710-64b-1t1c-l2-feature-ndr}
- \label{fig:3n-alt-xl710-64b-1t1c-l2-feature-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-alt-xl710-64b-1t1c-l2-feature-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-alt-xl710-64b-1t1c-l2-feature-pdr}
- \label{fig:3n-alt-xl710-64b-1t1c-l2-feature-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-icx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-3n-icx-xxv710.rst
deleted file mode 100644
index fcff1f5bf3..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-3n-icx-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-icx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-l2switching-base
--------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-64b-2t1c-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]{3n-icx-xxv710-64b-2t1c-l2switching-base-ndr}
- \label{fig:3n-icx-xxv710-64b-2t1c-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/3n-icx-xxv710-64b-2t1c-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]{3n-icx-xxv710-64b-2t1c-l2switching-base-pdr}
- \label{fig:3n-icx-xxv710-64b-2t1c-l2switching-base-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 9fe20c6d9f..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-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 42f61ec2c1..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-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
-~~~~~~~~~~~~~
-
-64b-2t1c-l2switching-base
--------------------------
-
-.. 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-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-ndr}
- \label{fig:3n-skx-xxv710-64b-2t1c-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/3n-skx-xxv710-64b-2t1c-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]{3n-skx-xxv710-64b-2t1c-l2switching-base-pdr}
- \label{fig:3n-skx-xxv710-64b-2t1c-l2switching-base-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 edef434e8d..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2-3n-tsh-x520.rst
+++ /dev/null
@@ -1,110 +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-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}
-
-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 63304ad908..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2.rst
+++ /dev/null
@@ -1,37 +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=rls2206>`_.
-
-.. toctree::
-
- l2-2n-icx-xxv710
- l2-3n-icx-xxv710
- 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-clx-e810cq
- l2-2n-zn2-xxv710
- l2-2n-zn2-x710
- l2-2n-zn2-cx556a
- l2-3n-alt-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-icx.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-det-bidir-2n-icx.rst
deleted file mode 100644
index 4fc1d8ae45..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-det-bidir-2n-icx.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-icx-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-icx-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-icx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-ndr}
- \label{fig:2n-icx-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-icx-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-icx-xxv710-64b-2t1c-nat44det-ip4routing-stl-bidir-avf-pdr}
- \label{fig:2n-icx-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 b72db3e532..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-det-bidir.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-Det BiDir
-~~~~~~~~~
-
-.. toctree::
-
- nat44-det-bidir-2n-icx
- 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-icx.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-cps-2n-icx.rst
deleted file mode 100644
index 482277f712..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-cps-2n-icx.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-icx-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-icx-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-icx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-ndr}
- \label{fig:2n-icx-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-icx-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-icx-xxv710-64b-2t1c-nat44ed-ip4routing-tcp-stf-cps-avf-pdr}
- \label{fig:2n-icx-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 d861bcdd49..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-cps.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-ED TCP CPS
-~~~~~~~~~~
-
-.. toctree::
-
- nat44-ed-tcp-cps-2n-icx
- 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-tput-2n-clx.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-tput-2n-clx.rst
deleted file mode 100644
index bb3d928568..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-tput-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
-~~~~~~~~~~~~~
-
-100b-nat44ed-ip4routing-tcp-tput-avf
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="07n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-100b-2t1c-nat44ed-ip4routing-tcp-tput-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-100b-2t1c-nat44ed-ip4routing-tcp-tput-avf-ndr}
- \label{fig:2n-clx-xxv710-100b-2t1c-nat44ed-ip4routing-tcp-tput-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-100b-2t1c-nat44ed-ip4routing-tcp-tput-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-100b-2t1c-nat44ed-ip4routing-tcp-tput-avf-pdr}
- \label{fig:2n-clx-xxv710-100b-2t1c-nat44ed-ip4routing-tcp-tput-avf-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-tput-2n-icx.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-tput-2n-icx.rst
deleted file mode 100644
index e6bb7e78fb..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-tput-2n-icx.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-icx-xxv710
-~~~~~~~~~~~~~
-
-100b-nat44ed-ip4routing-tcp-tput-avf
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="07n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-icx-xxv710-100b-2t1c-nat44ed-ip4routing-tcp-tput-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-icx-xxv710-100b-2t1c-nat44ed-ip4routing-tcp-tput-avf-ndr}
- \label{fig:2n-icx-xxv710-100b-2t1c-nat44ed-ip4routing-tcp-tput-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-icx-xxv710-100b-2t1c-nat44ed-ip4routing-tcp-tput-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-icx-xxv710-100b-2t1c-nat44ed-ip4routing-tcp-tput-avf-pdr}
- \label{fig:2n-icx-xxv710-100b-2t1c-nat44ed-ip4routing-tcp-tput-avf-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-tput-2n-skx.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-tput-2n-skx.rst
deleted file mode 100644
index dde450a6e7..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-tput-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
-~~~~~~~~~~~~~
-
-100b-nat44ed-ip4routing-tcp-tput-avf
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="07n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-100b-2t1c-nat44ed-ip4routing-tcp-tput-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-100b-2t1c-nat44ed-ip4routing-tcp-tput-avf-ndr}
- \label{fig:2n-skx-xxv710-100b-2t1c-nat44ed-ip4routing-tcp-tput-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-100b-2t1c-nat44ed-ip4routing-tcp-tput-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-100b-2t1c-nat44ed-ip4routing-tcp-tput-avf-pdr}
- \label{fig:2n-skx-xxv710-100b-2t1c-nat44ed-ip4routing-tcp-tput-avf-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-tput.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-tput.rst
deleted file mode 100644
index 27c77bf812..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-tcp-tput.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-ED TCP TPUT
-~~~~~~~~~~~
-
-.. toctree::
-
- nat44-ed-tcp-tput-2n-icx
- nat44-ed-tcp-tput-2n-clx
- nat44-ed-tcp-tput-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-icx.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-cps-2n-icx.rst
deleted file mode 100644
index 94ed2e7db7..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-cps-2n-icx.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-icx-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-icx-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-icx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-ndr}
- \label{fig:2n-icx-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-icx-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-icx-xxv710-64b-2t1c-nat44ed-ip4routing-udp-stf-cps-avf-pdr}
- \label{fig:2n-icx-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 c3a36d714f..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-cps.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-ED UDP CPS
-~~~~~~~~~~
-
-.. toctree::
-
- nat44-ed-udp-cps-2n-icx
- 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-tput-2n-clx.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-tput-2n-clx.rst
deleted file mode 100644
index 2e35dd5795..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-tput-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
-~~~~~~~~~~~~~
-
-100b-nat44ed-ip4routing-udp-tput-avf
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="103n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-100b-2t1c-nat44ed-ip4routing-udp-tput-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-100b-2t1c-nat44ed-ip4routing-udp-tput-avf-ndr}
- \label{fig:2n-clx-xxv710-100b-2t1c-nat44ed-ip4routing-udp-tput-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="103p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-100b-2t1c-nat44ed-ip4routing-udp-tput-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-100b-2t1c-nat44ed-ip4routing-udp-tput-avf-pdr}
- \label{fig:2n-clx-xxv710-100b-2t1c-nat44ed-ip4routing-udp-tput-avf-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-tput-2n-icx.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-tput-2n-icx.rst
deleted file mode 100644
index ce697a0d08..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-tput-2n-icx.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-icx-xxv710
-~~~~~~~~~~~~~
-
-100b-nat44ed-ip4routing-udp-tput-avf
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="103n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-icx-xxv710-100b-2t1c-nat44ed-ip4routing-udp-tput-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-icx-xxv710-100b-2t1c-nat44ed-ip4routing-udp-tput-avf-ndr}
- \label{fig:2n-icx-xxv710-100b-2t1c-nat44ed-ip4routing-udp-tput-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="103p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-icx-xxv710-100b-2t1c-nat44ed-ip4routing-udp-tput-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-icx-xxv710-100b-2t1c-nat44ed-ip4routing-udp-tput-avf-pdr}
- \label{fig:2n-icx-xxv710-100b-2t1c-nat44ed-ip4routing-udp-tput-avf-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-tput-2n-skx.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-tput-2n-skx.rst
deleted file mode 100644
index 0c32ac9833..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-tput-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
-~~~~~~~~~~~~~
-
-100b-nat44ed-ip4routing-udp-tput-avf
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="103n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-100b-2t1c-nat44ed-ip4routing-udp-tput-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-100b-2t1c-nat44ed-ip4routing-udp-tput-avf-ndr}
- \label{fig:2n-skx-xxv710-100b-2t1c-nat44ed-ip4routing-udp-tput-avf-ndr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="103p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-100b-2t1c-nat44ed-ip4routing-udp-tput-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-100b-2t1c-nat44ed-ip4routing-udp-tput-avf-pdr}
- \label{fig:2n-skx-xxv710-100b-2t1c-nat44ed-ip4routing-udp-tput-avf-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-tput.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-tput.rst
deleted file mode 100644
index e5979d8d75..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-udp-tput.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-ED UDP TPUT
-~~~~~~~~~~~
-
-.. toctree::
-
- nat44-ed-udp-tput-2n-icx
- nat44-ed-udp-tput-2n-clx
- nat44-ed-udp-tput-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-icx.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-unidir-2n-icx.rst
deleted file mode 100644
index 0c4d630f82..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-unidir-2n-icx.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-icx-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-icx-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-icx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-ndr}
- \label{fig:2n-icx-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-icx-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-icx-xxv710-64b-2t1c-nat44ed-ip4routing-stl-unidir-avf-pdr}
- \label{fig:2n-icx-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 d7e4be4317..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/nat44-ed-unidir.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-ED UniDir
-~~~~~~~~~
-
-.. toctree::
-
- nat44-ed-unidir-2n-icx
- 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 b5bd81683d..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=rls2206>`_.
-
-.. toctree::
-
- nat44-det-bidir
- nat44-ed-unidir
- nat44-ed-udp-cps
- nat44-ed-tcp-cps
- nat44-ed-udp-tput
- nat44-ed-tcp-tput
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-icx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/srv6-3n-icx-xxv710.rst
deleted file mode 100644
index 4acc5d7d99..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/srv6-3n-icx-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-icx-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-icx-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-icx-xxv710-78b-2t1c-srv6-ip6routing-base-avf-ndr}
- \label{fig:3n-icx-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-icx-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-icx-xxv710-78b-2t1c-srv6-ip6routing-base-avf-pdr}
- \label{fig:3n-icx-xxv710-78b-2t1c-srv6-ip6routing-base-avf-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 a9676613c0..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/srv6.rst
+++ /dev/null
@@ -1,25 +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=rls2206>`_.
-
-.. toctree::
-
- srv6-3n-icx-xxv710
- srv6-3n-skx-xxv710
- 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 a55101e71a..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-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-vhost-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-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}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-clx-e810cq.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-clx-e810cq.rst
deleted file mode 100644
index d70b607b22..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-clx-e810cq.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-e810cq
-~~~~~~~~~~~~~
-
-64b-2t1c-vhost
---------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-e810cq-64b-2t1c-vhost-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-e810cq-64b-2t1c-vhost-ndr}
- \label{fig:2n-clx-e810cq-64b-2t1c-vhost-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-e810cq-64b-2t1c-vhost-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-e810cq-64b-2t1c-vhost-pdr}
- \label{fig:2n-clx-e810cq-64b-2t1c-vhost-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 168dfd2bf6..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-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-vhost-base-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-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-ndr}
- \label{fig:2n-clx-xxv710-64b-2t1c-vhost-base-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-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-pdr}
- \label{fig:2n-clx-xxv710-64b-2t1c-vhost-base-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-vhost-base-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-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-vpp-ndr}
- \label{fig:2n-clx-xxv710-64b-2t1c-vhost-base-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-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-vpp-pdr}
- \label{fig:2n-clx-xxv710-64b-2t1c-vhost-base-vpp-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-icx-xxv710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-icx-xxv710.rst
deleted file mode 100644
index 2909f0b35e..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-icx-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-icx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-vhost-base
--------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-icx-xxv710-64b-2t1c-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-icx-xxv710-64b-2t1c-vhost-base-ndr}
- \label{fig:2n-icx-xxv710-64b-2t1c-vhost-base-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-icx-xxv710-64b-2t1c-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-icx-xxv710-64b-2t1c-vhost-base-pdr}
- \label{fig:2n-icx-xxv710-64b-2t1c-vhost-base-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 b339690afd..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-2n-skx-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-skx-xxv710
-~~~~~~~~~~~~~
-
-
-64b-2t1c-vhost-base-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-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-ndr}
- \label{fig:2n-skx-xxv710-64b-2t1c-vhost-base-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-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-pdr}
- \label{fig:2n-skx-xxv710-64b-2t1c-vhost-base-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-vhost-base-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-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-vpp-ndr}
- \label{fig:2n-skx-xxv710-64b-2t1c-vhost-base-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-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-vpp-pdr}
- \label{fig:2n-skx-xxv710-64b-2t1c-vhost-base-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 15f6a9fcba..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-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-vhost-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-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}
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 feeeda9cae..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-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-vhost-base-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-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-ndr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-vhost-base-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-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-pdr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-vhost-base-pdr}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-2t1c-vhost-base-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-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-vpp-ndr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-vhost-base-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-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-vpp-pdr}
- \label{fig:2n-zn2-xxv710-64b-2t1c-vhost-base-vpp-pdr}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-3n-alt-xl710.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-3n-alt-xl710.rst
deleted file mode 100644
index ccf5a0ed4a..0000000000
--- a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost-3n-alt-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-alt-xl710
-~~~~~~~~~~~~
-
-64b-1t1c-vhost-base
--------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-64b-1t1c-vhost-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-alt-xl710-64b-1t1c-vhost-ndr}
- \label{fig:3n-alt-xl710-64b-1t1c-vhost-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-alt-xl710-64b-1t1c-vhost-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-alt-xl710-64b-1t1c-vhost-pdr}
- \label{fig:3n-alt-xl710-64b-1t1c-vhost-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 b9b039727c..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=rls2206>`_.
-
-.. toctree::
-
- vm_vhost-2n-icx-xxv710
- vm_vhost-2n-skx-xxv710
- vm_vhost-2n-clx-xxv710
- vm_vhost-2n-clx-cx556a
- vm_vhost-2n-clx-e810cq
- vm_vhost-2n-zn2-xxv710
- vm_vhost-2n-zn2-cx556a
- vm_vhost-3n-alt-xl710
- vm_vhost-3n-tsh-x520
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 9a3e3e5166..0000000000
--- a/docs/report/vpp_performance_tests/reconf_tests/index.rst
+++ /dev/null
@@ -1,18 +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
-
-..
- ipsec_reconf
diff --git a/docs/report/vpp_performance_tests/reconf_tests/ipsec_reconf.rst b/docs/report/vpp_performance_tests/reconf_tests/ipsec_reconf.rst
deleted file mode 100644
index c09c7d5eaa..0000000000
--- a/docs/report/vpp_performance_tests/reconf_tests/ipsec_reconf.rst
+++ /dev/null
@@ -1,272 +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>
-
-.. _ipsec_reconf:
-
-Internet Protocol Security
-==========================
-
-Additional information about graph data:
-
-#. **Graph Title**: describes tested VPP packet path.
-
-#. **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 are stored in
- `FD.io test executor vpp performance job 3n-hsw`_ with RF
- result files csit-vpp-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
-
-.. raw:: latex
-
- \clearpage
-
-3n-hsw-xl710
-~~~~~~~~~~~~
-
-64b-ethip4ipsec4tnlsw
----------------------
-
-1t1c
-::::
-
-.. raw:: html
-
- <center>
- <iframe id="001" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-64b-1t1c-ethip4ipsec4tnlsw-1atnl-ip4base-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]{3n-hsw-xl710-64b-1t1c-ethip4ipsec4tnlsw-1atnl-ip4base-reconf}
- \label{fig:3n-hsw-xl710-64b-1t1c-ethip4ipsec4tnlsw-1atnl-ip4base-reconf}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2t2c
-::::
-
-.. raw:: html
-
- <center>
- <iframe id="002" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-64b-2t2c-ethip4ipsec4tnlsw-1atnl-ip4base-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]{3n-hsw-xl710-64b-2t2c-ethip4ipsec4tnlsw-1atnl-ip4base-reconf}
- \label{fig:3n-hsw-xl710-64b-2t2c-ethip4ipsec4tnlsw-1atnl-ip4base-reconf}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-4t4c
-::::
-
-.. raw:: html
-
- <center>
- <iframe id="003" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-64b-4t4c-ethip4ipsec4tnlsw-1atnl-ip4base-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]{3n-hsw-xl710-64b-4t4c-ethip4ipsec4tnlsw-1atnl-ip4base-reconf}
- \label{fig:3n-hsw-xl710-64b-4t4c-ethip4ipsec4tnlsw-1atnl-ip4base-reconf}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-ethip4ipsec1000tnlsw
-------------------------
-
-1t1c
-::::
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-64b-1t1c-ethip4ipsec1000tnlsw-1atnl-ip4base-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]{3n-hsw-xl710-64b-1t1c-ethip4ipsec1000tnlsw-1atnl-ip4base-reconf}
- \label{fig:3n-hsw-xl710-64b-1t1c-ethip4ipsec1000tnlsw-1atnl-ip4base-reconf}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2t2c
-::::
-
-.. raw:: html
-
- <center>
- <iframe id="102" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-64b-2t2c-ethip4ipsec1000tnlsw-1atnl-ip4base-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]{3n-hsw-xl710-64b-2t2c-ethip4ipsec1000tnlsw-1atnl-ip4base-reconf}
- \label{fig:3n-hsw-xl710-64b-2t2c-ethip4ipsec1000tnlsw-1atnl-ip4base-reconf}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-4t4c
-::::
-
-.. raw:: html
-
- <center>
- <iframe id="103" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-64b-4t4c-ethip4ipsec1000tnlsw-1atnl-ip4base-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]{3n-hsw-xl710-64b-4t4c-ethip4ipsec1000tnlsw-1atnl-ip4base-reconf}
- \label{fig:3n-hsw-xl710-64b-4t4c-ethip4ipsec1000tnlsw-1atnl-ip4base-reconf}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-ethip4ipsec60000tnlsw
--------------------------
-
-1t1c
-::::
-
-.. raw:: html
-
- <center>
- <iframe id="201" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-64b-1t1c-ethip4ipsec60000tnlsw-1atnl-ip4base-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]{3n-hsw-xl710-64b-1t1c-ethip4ipsec60000tnlsw-1atnl-ip4base-reconf}
- \label{fig:3n-hsw-xl710-64b-1t1c-ethip4ipsec60000tnlsw-1atnl-ip4base-reconf}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-2t2c
-::::
-
-.. raw:: html
-
- <center>
- <iframe id="202" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-64b-2t2c-ethip4ipsec60000tnlsw-1atnl-ip4base-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]{3n-hsw-xl710-64b-2t2c-ethip4ipsec60000tnlsw-1atnl-ip4base-reconf}
- \label{fig:3n-hsw-xl710-64b-2t2c-ethip4ipsec60000tnlsw-1atnl-ip4base-reconf}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-4t4c
-::::
-
-.. raw:: html
-
- <center>
- <iframe id="203" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-hsw-xl710-64b-4t4c-ethip4ipsec60000tnlsw-1atnl-ip4base-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]{3n-hsw-xl710-64b-4t4c-ethip4ipsec60000tnlsw-1atnl-ip4base-reconf}
- \label{fig:3n-hsw-xl710-64b-4t4c-ethip4ipsec60000tnlsw-1atnl-ip4base-reconf}
- \end{figure}
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 fee0dceca2..0000000000
--- a/docs/report/vpp_performance_tests/reconf_tests/vnf_service_chains_reconf.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>
-
-.. _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 are stored in
- `build logs from FD.io vpp performance job 2n-icx`_,
- `build logs from FD.io vpp performance job 2n-skx`_,
- `build logs from FD.io vpp performance job 2n-clx`_ with RF
- result files csit-vpp-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
-
-.. raw:: latex
-
- \clearpage
-
-2n-icx-xxv710
-~~~~~~~~~~~~~
-
-imix-2t1c-dot1qip4vxlan-l2bd
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-icx-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-icx-xxv710-imix-2t1c-dot1qip4vxlan-l2bd-reconf}
- \label{fig:2n-icx-xxv710-imix-2t1c-dot1qip4vxlan-l2bd-reconf}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-4t2c-dot1qip4vxlan-l2bd
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-icx-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-icx-xxv710-imix-4t2c-dot1qip4vxlan-l2bd-reconf}
- \label{fig:2n-icx-xxv710-imix-4t2c-dot1qip4vxlan-l2bd-reconf}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-8t4c-dot1qip4vxlan-l2bd
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="icx03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-icx-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-icx-xxv710-imix-8t4c-dot1qip4vxlan-l2bd-reconf}
- \label{fig:2n-icx-xxv710-imix-8t4c-dot1qip4vxlan-l2bd-reconf}
- \end{figure}
-
-.. 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 36255e78ad..0000000000
--- a/docs/report/vpp_performance_tests/soak_tests/index.rst
+++ /dev/null
@@ -1,190 +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 are stored in
- `build logs from FD.io vpp performance job 2n-icx`_,
- `build logs from FD.io vpp performance job 2n-skx`_ and
- `build logs from FD.io vpp performance job 2n-clx`_ with RF
- result files csit-vpp-perf-|srelease|-\*.zip
- `archived here <../../_static/archive/>`_.
-
-.. raw:: latex
-
- \clearpage
-
-2n-icx
-------
-
-.. raw:: html
-
- <center>
- <iframe id="icx01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/soak-test-2n-icx-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-icx-1}
- \label{fig:soak-test-2n-icx-1}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="icx02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/soak-test-2n-icx-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-icx-2}
- \label{fig:soak-test-2n-icx-2}
- \end{figure}
-
-.. 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 dec8780904..0000000000
--- a/docs/report/vpp_performance_tests/test_environment.rst
+++ /dev/null
@@ -1,127 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-.. _vpp_test_environment:
-
-.. include:: ../introduction/test_environment_intro.rst
-
-.. include:: ../introduction/test_environment_changes_vpp.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_icx.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_alt.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-e810cq.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-2n-clx-e810cq.rst
deleted file mode 100644
index d12bb34ddb..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-2n-clx-e810cq.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-e810cq
-~~~~~~~~~~~~~
-
-64b-memif-base
---------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-e810cq-64b-memif-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-e810cq-64b-memif-ndr-tsa}
- \label{fig:2n-clx-e810cq-64b-memif-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-e810cq-64b-memif-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-e810cq-64b-memif-pdr-tsa}
- \label{fig:2n-clx-e810cq-64b-memif-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-icx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-2n-icx-xxv710.rst
deleted file mode 100644
index 705726c7ce..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-2n-icx-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-icx-xxv710
-~~~~~~~~~~~~~
-
-64b-memif-base
---------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-icx-xxv710-64b-memif-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-icx-xxv710-64b-memif-base-ndr-tsa}
- \label{fig:2n-icx-xxv710-64b-memif-base-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-icx-xxv710-64b-memif-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-icx-xxv710-64b-memif-base-pdr-tsa}
- \label{fig:2n-icx-xxv710-64b-memif-base-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-tx2-xl710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-2n-tx2-xl710.rst
deleted file mode 100644
index 2df3bab585..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif-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
-~~~~~~~~~~~~
-
-64b-memif-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-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-tx2-xl710-64b-memif-base-dpdk-ndr-tsa}
- \label{fig:2n-tx2-xl710-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-tx2-xl710-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-tx2-xl710-64b-memif-base-dpdk-pdr-tsa}
- \label{fig:2n-tx2-xl710-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.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif.rst
deleted file mode 100644
index 5c91b2b9e8..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/container_memif.rst
+++ /dev/null
@@ -1,29 +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=rls2206>`_.
-
-.. toctree::
-
- container_memif-2n-icx-xxv710
- container_memif-2n-skx-xxv710
- container_memif-2n-clx-xxv710
- container_memif-2n-clx-cx556a
- container_memif-2n-clx-e810cq
- container_memif-2n-tx2-xl710
- container_memif-2n-zn2-xxv710
- container_memif-2n-zn2-cx556a
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 a15f89300d..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/index.rst
+++ /dev/null
@@ -1,69 +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: 2n-icx, 3n-icx, 2n-aws, 2n-skx, 3n-skx, 2n-clx, 2n-zn2, 3n-alt,
-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 are stored in
- `build logs from FD.io vpp performance job 2n-icx`_,
- `build logs from FD.io vpp performance job 3n-icx`_,
- `build logs from FD.io vpp performance job 2n-aws`_,
- `build logs from FD.io vpp performance job 2n-skx`_,
- `build logs from FD.io vpp performance job 3n-skx`_,
- `build logs from FD.io vpp performance job 2n-clx`_,
- `build logs from FD.io vpp performance job 2n-zn2`_,
- `build logs from FD.io vpp performance job 3n-alt`_,
- `build logs from FD.io vpp performance job 3n-tsh`_,
- `build logs from FD.io vpp performance job 2n-tx2`_,
- `build logs from FD.io vpp performance job 2n-dnv`_ and
- `build logs from FD.io 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
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 82fafe184c..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-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-ip4routing-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-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-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-e810cq.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-clx-e810cq.rst
deleted file mode 100644
index 62e7955f3d..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-clx-e810cq.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-e810cq
-~~~~~~~~~~~~~
-
-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-e810cq-64b-ip4-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-e810cq-64b-ip4-base-scale-avf-ndr-tsa}
- \label{fig:2n-clx-e810cq-64b-ip4-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-e810cq-64b-ip4-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-e810cq-64b-ip4-base-scale-avf-pdr-tsa}
- \label{fig:2n-clx-e810cq-64b-ip4-base-scale-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-ip4routing-features-avf
----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="07" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-e810cq-64b-ip4-features-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-e810cq-64b-ip4-features-avf-ndr-tsa}
- \label{fig:2n-clx-e810cq-64b-ip4-features-avf-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-e810cq-64b-ip4-features-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-e810cq-64b-ip4-features-avf-pdr-tsa}
- \label{fig:2n-clx-e810cq-64b-ip4-features-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-ip4routing-base-scale-dpdk
-------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-e810cq-64b-ip4-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-e810cq-64b-ip4-base-scale-dpdk-ndr-tsa}
- \label{fig:2n-clx-e810cq-64b-ip4-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-clx-e810cq-64b-ip4-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-e810cq-64b-ip4-base-scale-dpdk-pdr-tsa}
- \label{fig:2n-clx-e810cq-64b-ip4-base-scale-dpdk-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 e7d612f8f1..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,af_xdp]-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,af_xdp]-ndr-tsa}
- \label{fig:2n-clx-x710-64b-ip4routing-base-scale-[avf,dpdk,af_xdp]-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,af_xdp]-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,af_xdp]-pdr-tsa}
- \label{fig:2n-clx-x710-64b-ip4routing-base-scale-[avf,dpdk,af_xdp]-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 031b770351..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-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-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-base-scale-af-xdp
---------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-ip4routing-base-scale-af_xdp-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-af_xdp-ndr-tsa}
- \label{fig:2n-clx-xxv710-64b-ip4routing-base-scale-af_xdp-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-ip4routing-base-scale-af_xdp-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-af_xdp-pdr-tsa}
- \label{fig:2n-clx-xxv710-64b-ip4routing-base-scale-af_xdp-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-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}
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 dd3acf90a2..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-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-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,af_xdp]-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,af_xdp]-ndr-tsa}
- \label{fig:2n-dnv-x553-64b-ip4routing-base-scale-[ixgbe,af_xdp]-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,af_xdp]-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,af_xdp]-pdr-tsa}
- \label{fig:2n-dnv-x553-64b-ip4routing-base-scale-[ixgbe,af_xdp]-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-icx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-icx-xxv710.rst
deleted file mode 100644
index 086ffc9c13..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-icx-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-icx-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-icx-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-icx-xxv710-64b-ip4routing-base-scale-avf-ndr-tsa}
- \label{fig:2n-icx-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-icx-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-icx-xxv710-64b-ip4routing-base-scale-avf-pdr-tsa}
- \label{fig:2n-icx-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/2n-icx-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-icx-xxv710-64b-ip4routing-base-scale-dpdk-ndr-tsa}
- \label{fig:2n-icx-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-icx-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-icx-xxv710-64b-ip4routing-base-scale-dpdk-pdr-tsa}
- \label{fig:2n-icx-xxv710-64b-ip4routing-base-scale-dpdk-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-ip4routing-base-scale-af_xdp
---------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11a" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-icx-xxv710-64b-ip4routing-base-scale-af_xdp-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-icx-xxv710-64b-ip4routing-base-scale-af_xdp-ndr-tsa}
- \label{fig:2n-icx-xxv710-64b-ip4routing-base-scale-af_xdp-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="12a" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-icx-xxv710-64b-ip4routing-base-scale-af_xdp-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-icx-xxv710-64b-ip4routing-base-scale-af_xdp-pdr-tsa}
- \label{fig:2n-icx-xxv710-64b-ip4routing-base-scale-af_xdp-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-icx-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-icx-xxv710-64b-features-ip4routing-base-avf-ndr-tsa}
- \label{fig:2n-icx-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-icx-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-icx-xxv710-64b-features-ip4routing-base-avf-pdr-tsa}
- \label{fig:2n-icx-xxv710-64b-features-ip4routing-base-avf-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 dacbf3250a..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,af_xdp]-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,af_xdp]-ndr-tsa}
- \label{fig:2n-skx-x710-64b-ip4routing-base-scale-[avf,dpdk,af_xdp]-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,af_xdp]-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,af_xdp]-pdr-tsa}
- \label{fig:2n-skx-x710-64b-ip4routing-base-scale-[avf,dpdk,af_xdp]-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 6b562b78d0..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-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-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
-
-64b-ip4routing-base-scale-af-xdp
---------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-ip4routing-base-scale-af_xdp-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-af_xdp-ndr-tsa}
- \label{fig:2n-skx-xxv710-64b-ip4routing-base-scale-af_xdp-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-ip4routing-base-scale-af_xdp-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-af_xdp-pdr-tsa}
- \label{fig:2n-skx-xxv710-64b-ip4routing-base-scale-af_xdp-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
-
-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}
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 40f8149d33..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-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-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-ip4routing-base-scale-af-xdp
---------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-ip4routing-base-scale-af_xdp-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-af_xdp-ndr-tsa}
- \label{fig:2n-tx2-xl710-64b-ip4routing-base-scale-af_xdp-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-ip4routing-base-scale-af_xdp-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-af_xdp-pdr-tsa}
- \label{fig:2n-tx2-xl710-64b-ip4routing-base-scale-af_xdp-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 596658f7ec..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-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-ip4routing-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-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-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 dfc1c08526..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-[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-[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-[avf,dpdk]-ndr-tsa}
- \label{fig:2n-zn2-x710-64b-ip4routing-base-[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-[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-[avf,dpdk]-pdr-tsa}
- \label{fig:2n-zn2-x710-64b-ip4routing-base-[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 27c23a3926..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-2n-zn2-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>
-
-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-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-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}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-3n-alt-xl710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-3n-alt-xl710.rst
deleted file mode 100644
index 38e70a27bc..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-3n-alt-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-alt-xl710
-~~~~~~~~~~~~
-
-64b-ip4routing-base-scale
--------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-64b-ip4-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]{3n-alt-xl710-64b-ip4-base-scale-ndr-tsa}
- \label{fig:3n-alt-xl710-64b-ip4-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/3n-alt-xl710-64b-ip4-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]{3n-alt-xl710-64b-ip4-base-scale-pdr-tsa}
- \label{fig:3n-alt-xl710-64b-ip4-base-scale-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-ip4routing-features
------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-64b-ip4-feature-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-alt-xl710-64b-ip4-feature-ndr-tsa}
- \label{fig:3n-alt-xl710-64b-ip4-feature-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-64b-ip4-feature-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-alt-xl710-64b-ip4-feature-pdr-tsa}
- \label{fig:3n-alt-xl710-64b-ip4-feature-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 d07e9ad13e..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-3n-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>
-
-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}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-3n-icx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-3n-icx-xxv710.rst
deleted file mode 100644
index 8032d5454e..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-3n-icx-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-icx-xxv710
-~~~~~~~~~~~~~
-
-64b-ip4routing-base
--------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-64b-ip4routing-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]{3n-icx-xxv710-64b-ip4routing-base-ndr-tsa}
- \label{fig:3n-icx-xxv710-64b-ip4routing-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/3n-icx-xxv710-64b-ip4routing-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]{3n-icx-xxv710-64b-ip4routing-base-pdr-tsa}
- \label{fig:3n-icx-xxv710-64b-ip4routing-base-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 bba426bc86..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-avf
------------------------
-
-.. 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 e257b54121..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-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
-~~~~~~~~~~~~~
-
-64b-ip4routing-base-[avf,dpdk]
-------------------------------
-
-.. 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-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-ndr-tsa}
- \label{fig:3n-skx-xxv710-64b-ip4routing-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/3n-skx-xxv710-64b-ip4routing-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]{3n-skx-xxv710-64b-ip4routing-base-pdr-tsa}
- \label{fig:3n-skx-xxv710-64b-ip4routing-base-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 a70551540c..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4-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
-~~~~~~~~~~~
-
-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 2c6cd23467..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4.rst
+++ /dev/null
@@ -1,39 +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=rls2206>`_.
-
-.. toctree::
-
- ip4-2n-icx-xxv710
- ip4-3n-icx-xxv710
- 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-clx-e810cq
- ip4-2n-zn2-xxv710
- ip4-2n-zn2-x710
- ip4-2n-zn2-cx556a
- ip4-3n-alt-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-2n-clx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-2n-clx-xxv710.rst
deleted file mode 100644
index 0f793d0e5a..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-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
-~~~~~~~~~~~~~
-
-64b-2t1c-ethip4--ethip4udpgeneve-avf
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-64b-ethip4--ethip4udpgeneve-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-ethip4--ethip4udpgeneve-avf-ndr-tsa}
- \label{fig:2n-clx-xxv710-64b-ethip4--ethip4udpgeneve-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-ethip4--ethip4udpgeneve-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-ethip4--ethip4udpgeneve-avf-pdr-tsa}
- \label{fig:2n-clx-xxv710-64b-ethip4--ethip4udpgeneve-avf-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-2n-icx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-2n-icx-xxv710.rst
deleted file mode 100644
index dbcdd3651a..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-2n-icx-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-icx-xxv710
-~~~~~~~~~~~~~
-
-64b-2t1c-ethip4--ethip4udpgeneve-avf
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-icx-xxv710-64b-ethip4--ethip4udpgeneve-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-icx-xxv710-64b-ethip4--ethip4udpgeneve-avf-ndr-tsa}
- \label{fig:2n-icx-xxv710-64b-ethip4--ethip4udpgeneve-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-icx-xxv710-64b-ethip4--ethip4udpgeneve-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-icx-xxv710-64b-ethip4--ethip4udpgeneve-avf-pdr-tsa}
- \label{fig:2n-icx-xxv710-64b-ethip4--ethip4udpgeneve-avf-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-2n-skx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-2n-skx-xxv710.rst
deleted file mode 100644
index 7f01abf75e..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-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
-~~~~~~~~~~~~~
-
-64b-2t1c-ethip4--ethip4udpgeneve-avf
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-64b-ethip4--ethip4udpgeneve-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-ethip4--ethip4udpgeneve-avf-ndr-tsa}
- \label{fig:2n-skx-xxv710-64b-ethip4--ethip4udpgeneve-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-ethip4--ethip4udpgeneve-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-ethip4--ethip4udpgeneve-avf-pdr-tsa}
- \label{fig:2n-skx-xxv710-64b-ethip4--ethip4udpgeneve-avf-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-2n-zn2-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-2n-zn2-xxv710.rst
deleted file mode 100644
index 5877a2a784..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-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
-~~~~~~~~~~~~~
-
-64b-2t1c-ethip4--ethip4udpgeneve-avf
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-zn2-xxv710-64b-ethip4--ethip4udpgeneve-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-ethip4--ethip4udpgeneve-avf-ndr-tsa}
- \label{fig:2n-zn2-xxv710-64b-ethip4--ethip4udpgeneve-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-ethip4--ethip4udpgeneve-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-ethip4--ethip4udpgeneve-avf-pdr-tsa}
- \label{fig:2n-zn2-xxv710-64b-ethip4--ethip4udpgeneve-avf-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-alt-xl710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-alt-xl710.rst
deleted file mode 100644
index 8b6fcec23f..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-alt-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-alt-xl710
-~~~~~~~~~~~~
-
-64b-ip4tunnel-base
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-64b-ip4-tunnels-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-alt-xl710-64b-ip4-tunnels-ndr-tsa}
- \label{fig:3n-alt-xl710-64b-ip4-tunnels-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-alt-xl710-64b-ip4-tunnels-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-alt-xl710-64b-ip4-tunnels-pdr-tsa}
- \label{fig:3n-alt-xl710-64b-ip4-tunnels-pdr-tsa}
- \end{figure}
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 847e59b340..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-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>
-
-3n-dnv-x553
-~~~~~~~~~~~
-
-64b-ip4tunnel-base-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-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-ixgbe-ndr-tsa}
- \label{fig:3n-dnv-x553-64b-ip4tunnel-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-64b-ip4tunnel-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-ip4tunnel-base-ixgbe-pdr-tsa}
- \label{fig:3n-dnv-x553-64b-ip4tunnel-base-ixgbe-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-icx-e810xxv.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-icx-e810xxv.rst
deleted file mode 100644
index 89206e3cf2..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-icx-e810xxv.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-icx-e810xxv
-~~~~~~~~~~~~~~
-
-64b-ip4tunnel-gtpu
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-e810xxv-64b-ip4tunnel-gtpu-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-icx-e810xxv-64b-ip4tunnel-gtpu-ndr-tsa}
- \label{fig:3n-icx-e810xxv-64b-ip4tunnel-gtpu-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-icx-e810xxv-64b-ip4tunnel-gtpu-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-icx-e810xxv-64b-ip4tunnel-gtpu-pdr-tsa}
- \label{fig:3n-icx-e810xxv-64b-ip4tunnel-gtpu-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-icx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-icx-xxv710.rst
deleted file mode 100644
index 5bf61c233c..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-3n-icx-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-icx-xxv710
-~~~~~~~~~~~~~
-
-64b-ip4tunnel-base
-------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-64b-ip4tunnel-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]{3n-icx-xxv710-64b-ip4tunnel-base-ndr-tsa}
- \label{fig:3n-icx-xxv710-64b-ip4tunnel-base-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-icx-xxv710-64b-ip4tunnel-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]{3n-icx-xxv710-64b-ip4tunnel-base-pdr-tsa}
- \label{fig:3n-icx-xxv710-64b-ip4tunnel-base-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 060a1107b2..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-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
-~~~~~~~~~~~~~
-
-64b-ip4tunnel-base
-------------------
-
-.. 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-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-ndr-tsa}
- \label{fig:3n-skx-xxv710-64b-ip4tunnel-base-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-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-pdr-tsa}
- \label{fig:3n-skx-xxv710-64b-ip4tunnel-base-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 8a031b78d9..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels-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
-~~~~~~~~~~~
-
-64b-ip4tunnel-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-ip4tunnel-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-ip4tunnel-base-ixgbe-ndr-tsa}
- \label{fig:3n-tsh-x520-64b-ip4tunnel-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-ip4tunnel-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-ip4tunnel-base-ixgbe-pdr-tsa}
- \label{fig:3n-tsh-x520-64b-ip4tunnel-base-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 c066950070..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip4_tunnels.rst
+++ /dev/null
@@ -1,31 +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=rls2206>`_.
-
-.. toctree::
-
- ip4_tunnels-2n-icx-xxv710
- ip4_tunnels-3n-icx-xxv710
- ip4_tunnels-3n-icx-e810xxv
- ip4_tunnels-2n-skx-xxv710
- ip4_tunnels-2n-clx-xxv710
- ip4_tunnels-2n-zn2-xxv710
- ip4_tunnels-3n-skx-xxv710
- ip4_tunnels-3n-alt-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-e810cq.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-clx-e810cq.rst
deleted file mode 100644
index 9ba57f0f2e..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-clx-e810cq.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-e810cq
-~~~~~~~~~~~~~
-
-78b-ip6routing-base-scale
--------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-e810cq-78b-ip6-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-e810cq-78b-ip6-ndr-tsa}
- \label{fig:2n-clx-e810cq-78b-ip6-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-e810cq-78b-ip6-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-e810cq-78b-ip6-pdr-tsa}
- \label{fig:2n-clx-e810cq-78b-ip6-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 f072d97c0e..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,af_xdp]
--------------------------------------------
-
-.. 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,af_xdp]-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,af_xdp]-ndr-tsa}
- \label{fig:2n-clx-x710-78b-ip6routing-base-scale-[avf,dpdk,af_xdp]-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,af_xdp]-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,af_xdp]-pdr-tsa}
- \label{fig:2n-clx-x710-78b-ip6routing-base-scale-[avf,dpdk,af_xdp]-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 cb6b356f0e..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-clx-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>
-
-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-af_xdp
---------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="101af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-78b-ip6routing-base-scale-af_xdp-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-af_xdp-ndr-tsa}
- \label{fig:2n-clx-xxv710-78b-ip6routing-base-scale-af_xdp-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="102af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-78b-ip6routing-base-scale-af_xdp-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-af_xdp-pdr-tsa}
- \label{fig:2n-clx-xxv710-78b-ip6routing-base-scale-af_xdp-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 36cabd366e..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-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
-~~~~~~~~~~~
-
-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,af_xdp]-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,af_xdp]-ndr-tsa}
- \label{fig:2n-dnv-x553-78b-ip6routing-base-scale-[ixgbe,af_xdp]-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,af_xdp]-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,af_xdp]-pdr-tsa}
- \label{fig:2n-dnv-x553-78b-ip6routing-base-scale-[ixgbe,af_xdp]-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-icx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-icx-xxv710.rst
deleted file mode 100644
index d0393e8ef1..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-icx-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>
-
-2n-icx-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-icx-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-icx-xxv710-78b-ip6routing-base-scale-avf-ndr-tsa}
- \label{fig:2n-icx-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-icx-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-icx-xxv710-78b-ip6routing-base-scale-avf-pdr-tsa}
- \label{fig:2n-icx-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-icx-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-icx-xxv710-78b-ip6routing-base-scale-dpdk-ndr-tsa}
- \label{fig:2n-icx-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-icx-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-icx-xxv710-78b-ip6routing-base-scale-dpdk-pdr-tsa}
- \label{fig:2n-icx-xxv710-78b-ip6routing-base-scale-dpdk-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-78b-ip6routing-base-scale-af_xdp
---------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01a" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-icx-xxv710-78b-ip6routing-base-scale-af_xdp-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-icx-xxv710-78b-ip6routing-base-scale-af_xdp-ndr-tsa}
- \label{fig:2n-icx-xxv710-78b-ip6routing-base-scale-af_xdp-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02a" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-icx-xxv710-78b-ip6routing-base-scale-af_xdp-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-icx-xxv710-78b-ip6routing-base-scale-af_xdp-pdr-tsa}
- \label{fig:2n-icx-xxv710-78b-ip6routing-base-scale-af_xdp-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 214a27218a..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,af_xdp]-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,af_xdp]-ndr-tsa}
- \label{fig:2n-skx-x710-78b-ip6routing-base-scale-[avf,dpdk,af_xdp]-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,af_xdp]-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,af_xdp]-pdr-tsa}
- \label{fig:2n-skx-x710-78b-ip6routing-base-scale-[avf,dpdk,af_xdp]-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 b71359354f..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-2n-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>
-
-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-af-xdp
---------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-78b-ip6routing-base-scale-af_xdp-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-af_xdp-ndr-tsa}
- \label{fig:2n-skx-xxv710-78b-ip6routing-base-scale-af_xdp-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-78b-ip6routing-base-scale-af_xdp-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-af_xdp-pdr-tsa}
- \label{fig:2n-skx-xxv710-78b-ip6routing-base-scale-af_xdp-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 74e232cca6..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-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
-~~~~~~~~~~~~
-
-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}
-
-.. raw:: latex
-
- \clearpage
-
-78b-ip6routing-base-scale-af-xdp
---------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-78b-ip6routing-base-scale-af_xdp-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-af_xdp-ndr-tsa}
- \label{fig:2n-tx2-xl710-78b-ip6routing-base-scale-af_xdp-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="02af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-78b-ip6routing-base-scale-af_xdp-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-af_xdp-pdr-tsa}
- \label{fig:2n-tx2-xl710-78b-ip6routing-base-scale-af_xdp-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 afcc7d34f2..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-[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-[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-[avf,dpdk]-ndr-tsa}
- \label{fig:2n-zn2-x710-78b-ip6routing-base-[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-78b-ip6routing-base-[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-[avf,dpdk]-pdr-tsa}
- \label{fig:2n-zn2-x710-78b-ip6routing-base-[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-alt-xl710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-3n-alt-xl710.rst
deleted file mode 100644
index abc3cce250..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-3n-alt-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-alt-xl710
-~~~~~~~~~~~~
-
-78b-ip6routing-base-scale
--------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-78b-ip6-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]{3n-alt-xl710-78b-ip6-base-scale-ndr-tsa}
- \label{fig:3n-alt-xl710-78b-ip6-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/3n-alt-xl710-78b-ip6-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]{3n-alt-xl710-78b-ip6-base-scale-pdr-tsa}
- \label{fig:3n-alt-xl710-78b-ip6-base-scale-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-icx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-3n-icx-xxv710.rst
deleted file mode 100644
index 775d9241ac..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-3n-icx-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-icx-xxv710
-~~~~~~~~~~~~~
-
-78b-ip6routing-base
--------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-78b-ip6routing-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]{3n-icx-xxv710-78b-ip6routing-base-ndr-tsa}
- \label{fig:3n-icx-xxv710-78b-ip6routing-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/3n-icx-xxv710-78b-ip6routing-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]{3n-icx-xxv710-78b-ip6routing-base-pdr-tsa}
- \label{fig:3n-icx-xxv710-78b-ip6routing-base-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 6310a31fdd..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-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-ip6routing-base-[avf,dpdk]
-------------------------------
-
-.. 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-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-ndr-tsa}
- \label{fig:3n-skx-xxv710-78b-ip6routing-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/3n-skx-xxv710-78b-ip6routing-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]{3n-skx-xxv710-78b-ip6routing-base-pdr-tsa}
- \label{fig:3n-skx-xxv710-78b-ip6routing-base-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 fff2c0b046..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6-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
-~~~~~~~~~~~
-
-78b-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-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-ip6routing-base-ixgbe-ndr-tsa}
- \label{fig:3n-tsh-x520-78b-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-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-ip6routing-base-ixgbe-pdr-tsa}
- \label{fig:3n-tsh-x520-78b-ip6routing-base-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 261d07367a..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ip6.rst
+++ /dev/null
@@ -1,39 +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=rls2206>`_.
-
-.. toctree::
-
- ip6-2n-icx-xxv710
- ip6-3n-icx-xxv710
- 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-clx-e810cq
- ip6-2n-zn2-xxv710
- ip6-2n-zn2-x710
- ip6-2n-zn2-cx556a
- ip6-3n-alt-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-2n-tx2-xl710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ipsec-2n-tx2-xl710.rst
deleted file mode 100644
index eba0b39619..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ipsec-2n-tx2-xl710.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-tx2-xl710
-~~~~~~~~~~~~
-
-64b-ipsec-spe-ip4routing-base-scale
------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-ipsec-base-scale-sw-policy-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-ipsec-base-scale-sw-policy-dpdk-ndr-tsa}
- \label{fig:2n-tx2-xl710-64b-ipsec-base-scale-sw-policy-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-ipsec-base-scale-sw-policy-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-ipsec-base-scale-sw-policy-dpdk-pdr-tsa}
- \label{fig:2n-tx2-xl710-64b-ipsec-base-scale-sw-policy-dpdk-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-ipsec-ip4routing-base-scale-sw
-----------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-ipsec-spe-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-ipsec-spe-base-scale-dpdk-ndr-tsa}
- \label{fig:2n-tx2-xl710-64b-ipsec-spe-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-ipsec-spe-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-ipsec-spe-base-scale-dpdk-pdr-tsa}
- \label{fig:2n-tx2-xl710-64b-ipsec-spe-base-scale-dpdk-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-1518b-ipsec-ip4routing-base-scale-sw-cbc
-----------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-1518b-ipsec-base-scale-sw-cbc-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-1518b-ipsec-base-scale-sw-cbc-dpdk-ndr-tsa}
- \label{fig:2n-tx2-xl710-1518b-ipsec-base-scale-sw-cbc-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="06" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-1518b-ipsec-base-scale-sw-cbc-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-1518b-ipsec-base-scale-sw-cbc-dpdk-pdr-tsa}
- \label{fig:2n-tx2-xl710-1518b-ipsec-base-scale-sw-cbc-dpdk-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-ipsec-ip4routing-base-scale-sw-cbc
----------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="07" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-imix-ipsec-base-scale-sw-cbc-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-imix-ipsec-base-scale-sw-cbc-dpdk-ndr-tsa}
- \label{fig:2n-tx2-xl710-imix-ipsec-base-scale-sw-cbc-dpdk-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-tx2-xl710-imix-ipsec-base-scale-sw-cbc-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-imix-ipsec-base-scale-sw-cbc-dpdk-pdr-tsa}
- \label{fig:2n-tx2-xl710-imix-ipsec-base-scale-sw-cbc-dpdk-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-1518b-ipsec-ip4routing-base-scale-sw-gcm
-----------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="09" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-1518b-ipsec-base-scale-sw-gcm-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-1518b-ipsec-base-scale-sw-gcm-dpdk-ndr-tsa}
- \label{fig:2n-tx2-xl710-1518b-ipsec-base-scale-sw-gcm-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="10" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-1518b-ipsec-base-scale-sw-gcm-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-1518b-ipsec-base-scale-sw-gcm-dpdk-pdr-tsa}
- \label{fig:2n-tx2-xl710-1518b-ipsec-base-scale-sw-gcm-dpdk-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-ipsec-ip4routing-base-scale-sw-gcm
----------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-imix-ipsec-base-scale-sw-gcm-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-imix-ipsec-base-scale-sw-gcm-dpdk-ndr-tsa}
- \label{fig:2n-tx2-xl710-imix-ipsec-base-scale-sw-gcm-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-tx2-xl710-imix-ipsec-base-scale-sw-gcm-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-imix-ipsec-base-scale-sw-gcm-dpdk-pdr-tsa}
- \label{fig:2n-tx2-xl710-imix-ipsec-base-scale-sw-gcm-dpdk-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ipsec-3n-alt-xl710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ipsec-3n-alt-xl710.rst
deleted file mode 100644
index d5d8b8f603..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ipsec-3n-alt-xl710.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>
-
-3n-alt-xl710
-~~~~~~~~~~~~
-
-1518b-ipsec-aes128cbc-ip4routing-scale-sw
------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-1518b-ipsec-aes128cbc-ip4routing-scale-sw-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-alt-xl710-1518b-ipsec-aes128cbc-ip4routing-scale-sw-ndr-tsa}
- \label{fig:3n-alt-xl710-1518b-ipsec-aes128cbc-ip4routing-scale-sw-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-alt-xl710-1518b-ipsec-aes128cbc-ip4routing-scale-sw-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-alt-xl710-1518b-ipsec-aes128cbc-ip4routing-scale-sw-pdr-tsa}
- \label{fig:3n-alt-xl710-1518b-ipsec-aes128cbc-ip4routing-scale-sw-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-1518b-ipsec-aes256gcm-ip4routing-scale-sw
------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-1518b-ipsec-aes256gcm-ip4routing-scale-sw-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-alt-xl710-1518b-ipsec-aes256gcm-ip4routing-scale-sw-ndr-tsa}
- \label{fig:3n-alt-xl710-1518b-ipsec-aes256gcm-ip4routing-scale-sw-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-1518b-ipsec-aes256gcm-ip4routing-scale-sw-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-alt-xl710-1518b-ipsec-aes256gcm-ip4routing-scale-sw-pdr-tsa}
- \label{fig:3n-alt-xl710-1518b-ipsec-aes256gcm-ip4routing-scale-sw-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-ipsec-aes128cbc-ip4routing-scale-sw
-----------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="5" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-imix-ipsec-aes128cbc-ip4routing-scale-sw-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-alt-xl710-imix-ipsec-aes128cbc-ip4routing-scale-sw-ndr-tsa}
- \label{fig:3n-alt-xl710-imix-ipsec-aes128cbc-ip4routing-scale-sw-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="6" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-imix-ipsec-aes128cbc-ip4routing-scale-sw-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-alt-xl710-imix-ipsec-aes128cbc-ip4routing-scale-sw-pdr-tsa}
- \label{fig:3n-alt-xl710-imix-ipsec-aes128cbc-ip4routing-scale-sw-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-ipsec-aes256gcm-ip4routing-scale-sw
-----------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="7" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-imix-ipsec-aes256gcm-ip4routing-scale-sw-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-alt-xl710-imix-ipsec-aes256gcm-ip4routing-scale-sw-ndr-tsa}
- \label{fig:3n-alt-xl710-imix-ipsec-aes256gcm-ip4routing-scale-sw-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="8" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-imix-ipsec-aes256gcm-ip4routing-scale-sw-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-alt-xl710-imix-ipsec-aes256gcm-ip4routing-scale-sw-pdr-tsa}
- \label{fig:3n-alt-xl710-imix-ipsec-aes256gcm-ip4routing-scale-sw-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-ipsec-ip4base-policy-outbound-nocrypto
-------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="9" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-64b-ipsec-ip4base-policy-outbound-nocrypto-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-alt-xl710-64b-ipsec-ip4base-policy-outbound-nocrypto-ndr-tsa}
- \label{fig:3n-alt-xl710-64b-ipsec-ip4base-policy-outbound-nocrypto-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="10" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-64b-ipsec-ip4base-policy-outbound-nocrypto-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-alt-xl710-64b-ipsec-ip4base-policy-outbound-nocrypto-pdr-tsa}
- \label{fig:3n-alt-xl710-64b-ipsec-ip4base-policy-outbound-nocrypto-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-ipsec-ip4base-policy-aes256gcm-sw
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-64b-ipsec-ip4base-policy-aes256gcm-sw-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-alt-xl710-64b-ipsec-ip4base-policy-aes256gcm-sw-ndr-tsa}
- \label{fig:3n-alt-xl710-64b-ipsec-ip4base-policy-aes256gcm-sw-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-alt-xl710-64b-ipsec-ip4base-policy-aes256gcm-sw-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-alt-xl710-64b-ipsec-ip4base-policy-aes256gcm-sw-pdr-tsa}
- \label{fig:3n-alt-xl710-64b-ipsec-ip4base-policy-aes256gcm-sw-pdr-tsa}
- \end{figure}
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-icx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ipsec-3n-icx-xxv710.rst
deleted file mode 100644
index 7a1c0a29be..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ipsec-3n-icx-xxv710.rst
+++ /dev/null
@@ -1,460 +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-icx-xxv710
-~~~~~~~~~~~~~
-
-1518b-2t1c-ipsec-aes128cbc-ip4routing-base-scale-sw-avf
--------------------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-1518b-ipsec-aes128cbc-ip4routing-base-scale-sw-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-icx-xxv710-1518b-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-ndr-tsa}
- \label{fig:3n-icx-xxv710-1518b-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="2" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-1518b-ipsec-aes128cbc-ip4routing-base-scale-sw-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-icx-xxv710-1518b-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-pdr-tsa}
- \label{fig:3n-icx-xxv710-1518b-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-1518b-2t1c-ipsec-aes256gcm-ip4routing-base-scale-sw-avf
--------------------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-1518b-ipsec-aes256gcm-ip4routing-base-scale-sw-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-icx-xxv710-1518b-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-ndr-tsa}
- \label{fig:3n-icx-xxv710-1518b-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-1518b-ipsec-aes256gcm-ip4routing-base-scale-sw-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-icx-xxv710-1518b-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-pdr-tsa}
- \label{fig:3n-icx-xxv710-1518b-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-1518b-2t1c-ipsec-ip4routing-base-scale-sw-dpdk
-----------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="5" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-1518b-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-icx-xxv710-1518b-ipsec-ip4routing-base-scale-sw-dpdk-ndr-tsa}
- \label{fig:3n-icx-xxv710-1518b-ipsec-ip4routing-base-scale-sw-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="6" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-1518b-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-icx-xxv710-1518b-ipsec-ip4routing-base-scale-sw-dpdk-pdr-tsa}
- \label{fig:3n-icx-xxv710-1518b-ipsec-ip4routing-base-scale-sw-dpdk-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-..
- 1518b-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-avf
- -------------------------------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="7" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-1518b-ipsec-scheduler-ip4routing-base-scale-sw-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-icx-xxv710-1518b-ipsec-scheduler-ip4routing-base-scale-sw-avf-ndr-tsa}
- \label{fig:3n-icx-xxv710-1518b-ipsec-scheduler-ip4routing-base-scale-sw-avf-ndr-tsa}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="8" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-1518b-ipsec-scheduler-ip4routing-base-scale-sw-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-icx-xxv710-1518b-ipsec-scheduler-ip4routing-base-scale-sw-avf-pdr-tsa}
- \label{fig:3n-icx-xxv710-1518b-ipsec-scheduler-ip4routing-base-scale-sw-avf-pdr-tsa}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- 1518b-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-dpdk
- --------------------------------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="9" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-1518b-ipsec-scheduler-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-icx-xxv710-1518b-ipsec-scheduler-ip4routing-base-scale-sw-dpdk-ndr-tsa}
- \label{fig:3n-icx-xxv710-1518b-ipsec-scheduler-ip4routing-base-scale-sw-dpdk-ndr-tsa}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="10" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-1518b-ipsec-scheduler-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-icx-xxv710-1518b-ipsec-scheduler-ip4routing-base-scale-sw-dpdk-pdr-tsa}
- \label{fig:3n-icx-xxv710-1518b-ipsec-scheduler-ip4routing-base-scale-sw-dpdk-pdr-tsa}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- imix-2t1c-ipsec-aes128cbc-ip4routing-base-scale-sw-avf
- ------------------------------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="1i" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-imix-ipsec-aes128cbc-ip4routing-base-scale-sw-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-icx-xxv710-imix-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-ndr-tsa}
- \label{fig:3n-icx-xxv710-imix-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-ndr-tsa}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="2i" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-imix-ipsec-aes128cbc-ip4routing-base-scale-sw-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-icx-xxv710-imix-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-pdr-tsa}
- \label{fig:3n-icx-xxv710-imix-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-pdr-tsa}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
-imix-2t1c-ipsec-aes256gcm-ip4routing-base-scale-sw-avf
-------------------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="3i" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-imix-ipsec-aes256gcm-ip4routing-base-scale-sw-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-icx-xxv710-imix-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-ndr-tsa}
- \label{fig:3n-icx-xxv710-imix-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="4i" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-imix-ipsec-aes256gcm-ip4routing-base-scale-sw-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-icx-xxv710-imix-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-pdr-tsa}
- \label{fig:3n-icx-xxv710-imix-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-2t1c-ipsec-ip4routing-base-scale-sw-dpdk
----------------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="5i" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-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-icx-xxv710-imix-ipsec-ip4routing-base-scale-sw-dpdk-ndr-tsa}
- \label{fig:3n-icx-xxv710-imix-ipsec-ip4routing-base-scale-sw-dpdk-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="6i" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-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-icx-xxv710-imix-ipsec-ip4routing-base-scale-sw-dpdk-pdr-tsa}
- \label{fig:3n-icx-xxv710-imix-ipsec-ip4routing-base-scale-sw-dpdk-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-..
- imix-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-avf
- ------------------------------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="7i" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-imix-ipsec-scheduler-ip4routing-base-scale-sw-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-icx-xxv710-imix-ipsec-scheduler-ip4routing-base-scale-sw-avf-ndr-tsa}
- \label{fig:3n-icx-xxv710-imix-ipsec-scheduler-ip4routing-base-scale-sw-avf-ndr-tsa}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="8i" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-imix-ipsec-scheduler-ip4routing-base-scale-sw-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-icx-xxv710-imix-ipsec-scheduler-ip4routing-base-scale-sw-avf-pdr-tsa}
- \label{fig:3n-icx-xxv710-imix-ipsec-scheduler-ip4routing-base-scale-sw-avf-pdr-tsa}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- imix-2t1c-ipsec-scheduler-ip4routing-base-scale-sw-dpdk
- -------------------------------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="9i" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-imix-ipsec-scheduler-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-icx-xxv710-imix-ipsec-scheduler-ip4routing-base-scale-sw-dpdk-ndr-tsa}
- \label{fig:3n-icx-xxv710-imix-ipsec-scheduler-ip4routing-base-scale-sw-dpdk-ndr-tsa}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="10i" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-imix-ipsec-scheduler-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-icx-xxv710-imix-ipsec-scheduler-ip4routing-base-scale-sw-dpdk-pdr-tsa}
- \label{fig:3n-icx-xxv710-imix-ipsec-scheduler-ip4routing-base-scale-sw-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 ffe44edfb5..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/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-ipsec-ip4routing-base-scale-avf
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="1" 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="2" 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
-
-1518b-ipsec-ip4routing-base-scale-avf
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-1518b-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-1518b-ipsec-ip4routing-base-scale-avf-ndr-tsa}
- \label{fig:3n-skx-xxv710-1518b-ipsec-ip4routing-base-scale-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-skx-xxv710-1518b-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-1518b-ipsec-ip4routing-base-scale-avf-pdr-tsa}
- \label{fig:3n-skx-xxv710-1518b-ipsec-ip4routing-base-scale-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-imix-ipsec-ip4routing-base-scale-dpdk
--------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="5" 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="6" 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 8f1102faff..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/ipsec.rst
+++ /dev/null
@@ -1,29 +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=rls2206>`_.
-
-.. toctree::
-
- ipsec-3n-icx-xxv710
- ipsec-3n-skx-xxv710
- ipsec-3n-alt-xl710
- ipsec-3n-tsh-x520
- ipsec-2n-tx2-xl710
- 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-e810cq.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-clx-e810cq.rst
deleted file mode 100644
index 57837532d3..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-clx-e810cq.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-e810cq
-~~~~~~~~~~~~~
-
-64b-l2switching-avf
--------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-e810cq-64b-l2-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-e810cq-64b-l2-avf-ndr-tsa}
- \label{fig:2n-clx-e810cq-64b-l2-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-e810cq-64b-l2-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-e810cq-64b-l2-avf-pdr-tsa}
- \label{fig:2n-clx-e810cq-64b-l2-avf-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-l2switching-dpdk
---------------------
-
-.. raw:: html
-
- <center>
- <iframe id="04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-e810cq-64b-l2-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-e810cq-64b-l2-dpdk-ndr-tsa}
- \label{fig:2n-clx-e810cq-64b-l2-dpdk-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-e810cq-64b-l2-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-e810cq-64b-l2-dpdk-pdr-tsa}
- \label{fig:2n-clx-e810cq-64b-l2-dpdk-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 24aa801abd..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-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-l2switching-base-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-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-avf-ndr-tsa}
- \label{fig:2n-clx-x710-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-x710-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-x710-64b-l2switching-base-avf-pdr-tsa}
- \label{fig:2n-clx-x710-64b-l2switching-base-avf-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 46b21ec1c0..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-dnv-x553.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-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}
-
-..
- .. raw:: latex
-
- \clearpage
-
- 64b-l2switching-base-scale-af-xdp
- ---------------------------------
-
- .. raw:: html
-
- <center>
- <iframe id="21af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-dnv-x553-64b-l2switching-base-scale-af_xdp-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-af_xdp-ndr-tsa}
- \label{fig:2n-dnv-x553-64b-l2switching-base-scale-af_xdp-ndr-tsa}
- \end{figure}
-
- .. raw:: latex
-
- \clearpage
-
- .. raw:: html
-
- <center>
- <iframe id="22af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-dnv-x553-64b-l2switching-base-scale-af_xdp-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-af_xdp-pdr-tsa}
- \label{fig:2n-dnv-x553-64b-l2switching-base-scale-af_xdp-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-icx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-icx-xxv710.rst
deleted file mode 100644
index 2a9bdc5780..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-icx-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-icx-xxv710
-~~~~~~~~~~~~~
-
-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-icx-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-icx-xxv710-64b-l2switching-base-scale-avf-ndr-tsa}
- \label{fig:2n-icx-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-icx-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-icx-xxv710-64b-l2switching-base-scale-avf-pdr-tsa}
- \label{fig:2n-icx-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-icx-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-icx-xxv710-64b-l2switching-base-scale-dpdk-ndr-tsa}
- \label{fig:2n-icx-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-icx-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-icx-xxv710-64b-l2switching-base-scale-dpdk-pdr-tsa}
- \label{fig:2n-icx-xxv710-64b-l2switching-base-scale-dpdk-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 77e60eb467..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-2n-tx2-xl710.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-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-l2switching-scale-af-xdp
-----------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="011af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-l2switching-scale-af_xdp-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-af_xdp-ndr-tsa}
- \label{fig:2n-tx2-xl710-64b-l2switching-scale-af-xdp-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="021af" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-tx2-xl710-64b-l2switching-scale-af_xdp-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-af_xdp-pdr-tsa}
- \label{fig:2n-tx2-xl710-64b-l2switching-scale-af-xdp-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 52cbd6ad51..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-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-l2switching-base
---------------------
-
-.. 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-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-ndr-tsa}
- \label{fig:2n-zn2-x710-64b-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-x710-64b-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-x710-64b-l2switching-base-pdr-tsa}
- \label{fig:2n-zn2-x710-64b-l2switching-base-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 d5c0985a98..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-alt-xl710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-3n-alt-xl710.rst
deleted file mode 100644
index 9365cb97a0..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-3n-alt-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-alt-xl710
-~~~~~~~~~~~~
-
-64b-l2switching-base-scale
---------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-64b-l2-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]{3n-alt-xl710-64b-l2-base-scale-ndr-tsa}
- \label{fig:3n-alt-xl710-64b-l2-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/3n-alt-xl710-64b-l2-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]{3n-alt-xl710-64b-l2-base-scale-pdr-tsa}
- \label{fig:3n-alt-xl710-64b-l2-base-scale-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-l2switching-features
-------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="3" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-64b-l2-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]{3n-alt-xl710-64b-l2-base-scale-ndr-tsa}
- \label{fig:3n-alt-xl710-64b-l2-base-scale-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="4" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-64b-l2-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]{3n-alt-xl710-64b-l2-base-scale-pdr-tsa}
- \label{fig:3n-alt-xl710-64b-l2-base-scale-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-icx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-3n-icx-xxv710.rst
deleted file mode 100644
index 6b74169a5c..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-3n-icx-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-icx-xxv710
-~~~~~~~~~~~~~
-
-64b-l2switching-base
---------------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-icx-xxv710-64b-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]{3n-icx-e810cq-64b-l2switching-base-ndr-tsa}
- \label{fig:3n-icx-e810cq-64b-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/3n-icx-xxv710-64b-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]{3n-icx-e810cq-64b-l2switching-base-pdr-tsa}
- \label{fig:3n-icx-e810cq-64b-l2switching-base-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 6d4a0b8998..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-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 58ea656ac6..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-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
-~~~~~~~~~~~~~
-
-64b-l2switching-base
---------------------
-
-.. 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-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-ndr-tsa}
- \label{fig:3n-skx-xxv710-64b-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/3n-skx-xxv710-64b-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]{3n-skx-xxv710-64b-l2switching-base-pdr-tsa}
- \label{fig:3n-skx-xxv710-64b-l2switching-base-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 202039992c..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2-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-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-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 5133b54561..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/l2.rst
+++ /dev/null
@@ -1,39 +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=rls2206>`_.
-
-.. toctree::
-
- l2-2n-icx-xxv710
- l2-3n-icx-xxv710
- 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-clx-e810cq
- l2-2n-zn2-xxv710
- l2-2n-zn2-x710
- l2-2n-zn2-cx556a
- l2-3n-alt-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-icx.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-det-bidir-2n-icx.rst
deleted file mode 100644
index 2e6f350a6e..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-det-bidir-2n-icx.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-icx-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-icx-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-icx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-ndr-tsa}
- \label{fig:2n-icx-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-icx-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-icx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-pdr-tsa}
- \label{fig:2n-icx-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 b72db3e532..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-det-bidir.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-Det BiDir
-~~~~~~~~~
-
-.. toctree::
-
- nat44-det-bidir-2n-icx
- 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-icx.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-cps-2n-icx.rst
deleted file mode 100644
index ff6cbc7114..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-cps-2n-icx.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-icx-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-icx-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-icx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-ndr-tsa}
- \label{fig:2n-icx-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-icx-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-icx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-pdr-tsa}
- \label{fig:2n-icx-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 d861bcdd49..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-cps.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-ED TCP CPS
-~~~~~~~~~~
-
-.. toctree::
-
- nat44-ed-tcp-cps-2n-icx
- 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-tput-2n-clx.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-tput-2n-clx.rst
deleted file mode 100644
index 2044bc4d94..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-tput-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
-~~~~~~~~~~~~~
-
-100b-nat44ed-ip4routing-tcp-tput-avf
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="07p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-100b-nat44ed-ip4routing-tcp-tput-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-100b-nat44ed-ip4routing-tcp-tput-avf-ndr-tsa}
- \label{fig:2n-clx-xxv710-100b-nat44ed-ip4routing-tcp-tput-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-100b-nat44ed-ip4routing-tcp-tput-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-100b-nat44ed-ip4routing-tcp-tput-avf-pdr-tsa}
- \label{fig:2n-clx-xxv710-100b-nat44ed-ip4routing-tcp-tput-avf-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-tput-2n-icx.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-tput-2n-icx.rst
deleted file mode 100644
index 17c652ad38..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-tput-2n-icx.rst
+++ /dev/null
@@ -1,72 +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-icx-xxv710
-~~~~~~~~~~~~~
-
-100b-nat44ed-ip4routing-tcp-tput-avf
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="07p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-icx-xxv710-100b-nat44ed-ip4routing-tcp-tput-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-icx-xxv710-100b-nat44ed-ip4routing-tcp-tput-avf-ndr-tsa}
- \label{fig:2n-icx-xxv710-100b-nat44ed-ip4routing-tcp-tput-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-icx-xxv710-100b-nat44ed-ip4routing-tcp-tput-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-icx-xxv710-100b-nat44ed-ip4routing-tcp-tput-avf-pdr-tsa}
- \label{fig:2n-icx-xxv710-100b-nat44ed-ip4routing-tcp-tput-avf-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-tput-2n-skx.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-tput-2n-skx.rst
deleted file mode 100644
index 1d312a8ef1..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-tput-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
-~~~~~~~~~~~~~
-
-100b-nat44ed-ip4routing-tcp-tput-avf
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="07p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-100b-nat44ed-ip4routing-tcp-tput-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-100b-nat44ed-ip4routing-tcp-tput-avf-ndr-tsa}
- \label{fig:2n-skx-xxv710-100b-nat44ed-ip4routing-tcp-tput-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-100b-nat44ed-ip4routing-tcp-tput-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-100b-nat44ed-ip4routing-tcp-tput-avf-pdr-tsa}
- \label{fig:2n-skx-xxv710-100b-nat44ed-ip4routing-tcp-tput-avf-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-tput.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-tput.rst
deleted file mode 100644
index 27c77bf812..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-tcp-tput.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-ED TCP TPUT
-~~~~~~~~~~~
-
-.. toctree::
-
- nat44-ed-tcp-tput-2n-icx
- nat44-ed-tcp-tput-2n-clx
- nat44-ed-tcp-tput-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-icx.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-cps-2n-icx.rst
deleted file mode 100644
index eeb57562fb..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-cps-2n-icx.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-icx-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-icx-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-icx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-ndr-tsa}
- \label{fig:2n-icx-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-icx-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-icx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-pdr-tsa}
- \label{fig:2n-icx-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 c3a36d714f..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-cps.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-ED UDP CPS
-~~~~~~~~~~
-
-.. toctree::
-
- nat44-ed-udp-cps-2n-icx
- 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-tput-2n-clx.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-tput-2n-clx.rst
deleted file mode 100644
index d5be06f455..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-tput-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
-~~~~~~~~~~~~~
-
-100b-nat44ed-ip4routing-udp-tput-avf
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="103p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-100b-nat44ed-ip4routing-udp-tput-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-100b-nat44ed-ip4routing-udp-tput-avf-ndr-tsa}
- \label{fig:2n-clx-xxv710-100b-nat44ed-ip4routing-udp-tput-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="103n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-xxv710-100b-nat44ed-ip4routing-udp-tput-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-100b-nat44ed-ip4routing-udp-tput-avf-pdr-tsa}
- \label{fig:2n-clx-xxv710-100b-nat44ed-ip4routing-udp-tput-avf-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-tput-2n-icx.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-tput-2n-icx.rst
deleted file mode 100644
index ea9d022f4b..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-tput-2n-icx.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-icx-xxv710
-~~~~~~~~~~~~~
-
-100b-nat44ed-ip4routing-udp-tput-avf
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="103p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-icx-xxv710-100b-nat44ed-ip4routing-udp-tput-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-icx-xxv710-100b-nat44ed-ip4routing-udp-tput-avf-ndr-tsa}
- \label{fig:2n-icx-xxv710-100b-nat44ed-ip4routing-udp-tput-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="103n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-icx-xxv710-100b-nat44ed-ip4routing-udp-tput-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-icx-xxv710-100b-nat44ed-ip4routing-udp-tput-avf-pdr-tsa}
- \label{fig:2n-icx-xxv710-100b-nat44ed-ip4routing-udp-tput-avf-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-tput-2n-skx.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-tput-2n-skx.rst
deleted file mode 100644
index 76984b768f..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-tput-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
-~~~~~~~~~~~~~
-
-100b-nat44ed-ip4routing-udp-tput-avf
-------------------------------------
-
-.. raw:: html
-
- <center>
- <iframe id="103p" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-100b-nat44ed-ip4routing-udp-tput-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-100b-nat44ed-ip4routing-udp-tput-avf-ndr-tsa}
- \label{fig:2n-skx-xxv710-100b-nat44ed-ip4routing-udp-tput-avf-ndr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-.. raw:: html
-
- <center>
- <iframe id="103n" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-skx-xxv710-100b-nat44ed-ip4routing-udp-tput-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-100b-nat44ed-ip4routing-udp-tput-avf-pdr-tsa}
- \label{fig:2n-skx-xxv710-100b-nat44ed-ip4routing-udp-tput-avf-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-tput.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-tput.rst
deleted file mode 100644
index e5979d8d75..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-udp-tput.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-ED UDP TPUT
-~~~~~~~~~~~
-
-.. toctree::
-
- nat44-ed-udp-tput-2n-icx
- nat44-ed-udp-tput-2n-clx
- nat44-ed-udp-tput-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-icx.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-unidir-2n-icx.rst
deleted file mode 100644
index 7bb1d47e41..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-unidir-2n-icx.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-icx-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-icx-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-icx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-ndr-tsa}
- \label{fig:2n-icx-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-icx-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-icx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-pdr-tsa}
- \label{fig:2n-icx-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 d7e4be4317..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/nat44-ed-unidir.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-
-.. raw:: latex
-
- \clearpage
-
-ED UniDir
-~~~~~~~~~
-
-.. toctree::
-
- nat44-ed-unidir-2n-icx
- 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 ac4a654dc6..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=rls2206>`_.
-
-.. toctree::
-
- nat44-det-bidir
- nat44-ed-unidir
- nat44-ed-udp-cps
- nat44-ed-tcp-cps
- nat44-ed-udp-tput
- nat44-ed-tcp-tput
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-icx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/srv6-3n-icx-xxv710.rst
deleted file mode 100644
index 97de27de0b..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/srv6-3n-icx-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-icx-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-icx-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-icx-xxv710-78b-srv6-ip6routing-base-avf-ndr-tsa}
- \label{fig:3n-icx-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-icx-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-icx-xxv710-78b-srv6-ip6routing-base-avf-pdr-tsa}
- \label{fig:3n-icx-xxv710-78b-srv6-ip6routing-base-avf-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 101ee28880..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=rls2206>`_.
-
-.. toctree::
-
- srv6-3n-icx-xxv710
- srv6-3n-skx-xxv710
- 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 4688ef737d..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-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-vhost-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-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}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-clx-e810cq.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-clx-e810cq.rst
deleted file mode 100644
index f6c3f13e5b..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-clx-e810cq.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-e810cq
-~~~~~~~~~~~~~
-
-64b-vhost
----------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-clx-e810cq-64b-vhost-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-e810cq-64b-vhost-ndr-tsa}
- \label{fig:2n-clx-e810cq-64b-vhost-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-e810cq-64b-vhost-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-e810cq-64b-vhost-pdr-tsa}
- \label{fig:2n-clx-e810cq-64b-vhost-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 31166b3389..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-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-vhost-base-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-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-ndr-tsa}
- \label{fig:2n-clx-xxv710-64b-vhost-base-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-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-pdr-tsa}
- \label{fig:2n-clx-xxv710-64b-vhost-base-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-vhost-base-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-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-vpp-ndr-tsa}
- \label{fig:2n-clx-xxv710-64b-vhost-base-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-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-vpp-pdr-tsa}
- \label{fig:2n-clx-xxv710-64b-vhost-base-vpp-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-icx-xxv710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-icx-xxv710.rst
deleted file mode 100644
index 4fd550c387..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-2n-icx-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-icx-xxv710
-~~~~~~~~~~~~~
-
-64b-vhost-base
---------------
-
-.. raw:: html
-
- <center>
- <iframe id="101" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/2n-icx-xxv710-64b-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-icx-xxv710-64b-vhost-base-ndr-tsa}
- \label{fig:2n-icx-xxv710-64b-vhost-base-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-icx-xxv710-64b-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-icx-xxv710-64b-vhost-base-pdr-tsa}
- \label{fig:2n-icx-xxv710-64b-vhost-base-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 0c13ed945d..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-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-vhost-base-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-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-ndr-tsa}
- \label{fig:2n-skx-xxv710-64b-vhost-base-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-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-pdr-tsa}
- \label{fig:2n-skx-xxv710-64b-vhost-base-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-vhost-base-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-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-vpp-ndr-tsa}
- \label{fig:2n-skx-xxv710-64b-vhost-base-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-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-vpp-pdr-tsa}
- \label{fig:2n-skx-xxv710-64b-vhost-base-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 a00c1aa52f..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-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-vhost-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-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}
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 e27ba5003d..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-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-vhost-base-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-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-ndr-tsa}
- \label{fig:2n-zn2-xxv710-64b-vhost-base-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-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-pdr-tsa}
- \label{fig:2n-zn2-xxv710-64b-vhost-base-pdr-tsa}
- \end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-64b-vhost-base-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-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-vpp-ndr-tsa}
- \label{fig:2n-zn2-xxv710-64b-vhost-base-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-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-vpp-pdr-tsa}
- \label{fig:2n-zn2-xxv710-64b-vhost-base-vpp-pdr-tsa}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-3n-alt-xl710.rst b/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-3n-alt-xl710.rst
deleted file mode 100644
index 892d955071..0000000000
--- a/docs/report/vpp_performance_tests/throughput_speedup_multi_core/vm_vhost-3n-alt-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-alt-xl710
-~~~~~~~~~~~~
-
-64b-vhost-base
---------------
-
-.. raw:: html
-
- <center>
- <iframe id="01" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/3n-alt-xl710-64b-vhost-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-alt-xl710-64b-vhost-ndr-tsa}
- \label{fig:3n-alt-xl710-64b-vhost-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-alt-xl710-64b-vhost-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-alt-xl710-64b-vhost-pdr-tsa}
- \label{fig:3n-alt-xl710-64b-vhost-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 cc16195a12..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=rls2206>`_.
-
-.. toctree::
-
- vm_vhost-2n-icx-xxv710
- vm_vhost-2n-skx-xxv710
- vm_vhost-2n-clx-xxv710
- vm_vhost-2n-clx-cx556a
- vm_vhost-2n-clx-e810cq
- vm_vhost-2n-zn2-xxv710
- vm_vhost-2n-zn2-cx556a
- vm_vhost-3n-alt-xl710
- vm_vhost-3n-tsh-x520
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 fb5ba66e5c..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://s3-docs.fd.io/csit/master/trending/introduction/dashboard.html>`_:
- per VPP test case throughput trend, trend compliance and summary of
- detected anomalies.
-
-#. `Trending Methodology <https://s3-docs.fd.io/csit/master/trending/methodology/index.html>`_:
- throughput test metrics, trend calculations and anomaly
- classification (progression, regression).
-
-#. `VPP Trendline Graphs <https://s3-docs.fd.io/csit/master/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/report/introduction/testbed-2n-icx.svg b/docs/static/testbed-2n-icx.svg
index 64a11b3d94..64a11b3d94 100644
--- a/docs/report/introduction/testbed-2n-icx.svg
+++ b/docs/static/testbed-2n-icx.svg
diff --git a/docs/report/introduction/testbed-2n-tx2.svg b/docs/static/testbed-2n-tx2.svg
index 44da3f40ae..44da3f40ae 100644
--- a/docs/report/introduction/testbed-2n-tx2.svg
+++ b/docs/static/testbed-2n-tx2.svg
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/report/introduction/testbed-3n-alt.svg b/docs/static/testbed-3n-alt.svg
index 596a7bb5d1..596a7bb5d1 100644
--- a/docs/report/introduction/testbed-3n-alt.svg
+++ b/docs/static/testbed-3n-alt.svg
diff --git a/docs/report/introduction/testbed-3n-icx.svg b/docs/static/testbed-3n-icx.svg
index 22303cb387..22303cb387 100644
--- a/docs/report/introduction/testbed-3n-icx.svg
+++ b/docs/static/testbed-3n-icx.svg
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 4a869d6991..0000000000
--- a/docs/tag_documentation.rst
+++ /dev/null
@@ -1,880 +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.
-
-.. topic:: NIC_Amazon-Nitro-50G
-
- Amazon EC2 ENA NIC.
-
-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_{u}
-
- Traffic flow with {u} unique IPs (users) in one direction.
- {u}=(1,10,100,1000,2000,4000).
-
-.. 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_{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).
-
-.. topic:: GENEVE4_{t}TUN
-
- Test with {t} GENEVE IPv4 tunnel. {t}=(1,4,16,64,256,1024)
-
-Test Category Tags
-------------------
-
-.. topic:: DEVICETEST
-
- All vpp_device functional test cases.
-
-.. topic:: PERFTEST
-
- All performance test cases.
-
-VPP Device Type Tags
---------------------
-
-.. topic:: SCAPY
-
- All test cases that uses Scapy for packet generation and validation.
-
-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:: {b}B
-
- {b} Bytes frames used for test.
-
-.. topic:: IMIX
-
- IMIX frame sequence (28x 64B, 16x 570B, 4x 1518B) 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).
-
-.. topic:: TREX
-
- Tests which test trex traffic without any software DUTs in the traffic path.
-
-..
- 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:: TCP_RPS
-
- Tests which measure requests 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:: LDP_NGINX
-
- LDP NGINX is un-modified NGINX with VPP via LD_PRELOAD.
-
-.. 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.
-
-.. topic:: N2N
-
- Mode, where NICs from the same physical server are directly
- connected with a cable.
-
-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:: GTPU
-
- All test cases with GTPU.
-
-.. topic:: GTPU_HWACCEL
-
- All test cases with GTPU_HWACCEL.
-
-.. topic:: IPSEC
-
- All test cases with IPSEC.
-
-.. topic:: WIREGUARD
-
- All test cases with WIREGUARD.
-
-.. 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.
-
-.. topic:: FLOW
-
- All test cases with FLOW.
-
-.. topic:: FLOW_DIR
-
- All test cases with FLOW_DIR.
-
-.. topic:: FLOW_RSS
-
- All test cases with FLOW_RSS.
-
-.. topic:: NTUPLE
-
- All test cases with NTUPLE.
-
-.. topic:: L2TPV3
-
- All test cases with L2TPV3.
-
-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_{n}L
-
- All test cases which use {n} link(s) for link bonding.
-
-.. topic:: 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).
-
-.. topic:: TG_DRV_{d}
-
- All test cases which NIC Driver for TG is set to {d}. Default is IGB_UIO.
- {d}=(RDMA_CORE, IGB_UIO).
-
-.. 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.
-
-.. topic:: SCHEDULER
-
- IPSec using crypto sw scheduler engine.
-
-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:: {n}VSWITCH
-
- {n} VPP running in {n} Docker container(s) acting as a VSWITCH.
- {n}=(1).
-
-.. topic:: {n}VNF
-
- {n} VPP running in {n} Docker container(s) acting as a VNF work load.
- {n}=(1).
-
-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:: {n}NUMA
-
- All test cases with packet processing on {n} socket(s). {n}=(1,2).
-
-.. topic:: {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).
-
-.. topic:: {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), {t}=(1,2,4).
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 b509e3d452..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 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
-
- Tested version: 6.1.16r140961
-
-2. Download and install latest vagrant `from official page
- <https://www.vagrantup.com/downloads.html>`_.
- To verify the installtion, run::
-
- vagrant -v
-
- Tested version: Vagrant 2.2.15
-
-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 csit.infra.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-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"
-
- # now it will run tests, selected based on tags
- ./bootstrap_vpp_device.sh csit-vpp-device-master-ubuntu2004-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 77f2d662bb..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
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/fdio.infra.ansible/inventories/lf_inventory/group_vars/all.yaml b/fdio.infra.ansible/inventories/lf_inventory/group_vars/all.yaml
index 0756621eef..719ef32625 100644
--- a/fdio.infra.ansible/inventories/lf_inventory/group_vars/all.yaml
+++ b/fdio.infra.ansible/inventories/lf_inventory/group_vars/all.yaml
@@ -1,5 +1,2 @@
---
# file: lf_inventory/group_vars/all.yaml
-
-# Ansible interpreter (for PIP)
-ansible_python_interpreter: "/usr/bin/python3"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.16.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.16.yaml
deleted file mode 100644
index 90a7f1b2ee..0000000000
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.16.yaml
+++ /dev/null
@@ -1,67 +0,0 @@
----
-# file: host_vars/10.30.51.16.yaml
-
-hostname: "s16-nomad"
-inventory_cimc_hostname: "10.30.50.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"
- - "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"
-sshd_disable_password_login: true
-
-# Nomad settings.
-nomad_certificates:
- - src: "{{ file_nomad_ca_pem }}"
- dest: "{{ nomad_ca_file }}"
- - src: "{{ file_nomad_client_pem }}"
- dest: "{{ nomad_cert_file }}"
- - src: "{{ file_nomad_client_key_pem }}"
- dest: "{{ nomad_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_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.
-consul_nomad_integration: true
-consul_certificates:
- - src: "{{ file_consul_ca_pem }}"
- dest: "{{ consul_ca_file }}"
-consul_datacenter: "yul1"
-consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
-consul_node_role: "client"
-consul_retry_servers:
- - "10.30.51.23"
- - "10.30.51.24"
- - "10.30.51.25"
-consul_service_mgr: "systemd"
-
-# 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.17.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.17.yaml
deleted file mode 100644
index bcc443919d..0000000000
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.17.yaml
+++ /dev/null
@@ -1,68 +0,0 @@
----
-# file: host_vars/10.30.51.17.yaml
-
-hostname: "s17-nomad"
-inventory_cimc_hostname: "10.30.50.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"
- - "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"
-sshd_disable_password_login: true
-
-# Nomad settings.
-nomad_certificates:
- - src: "{{ file_nomad_ca_pem }}"
- dest: "{{ nomad_ca_file }}"
- - src: "{{ file_nomad_client_pem }}"
- dest: "{{ nomad_cert_file }}"
- - src: "{{ file_nomad_client_key_pem }}"
- dest: "{{ nomad_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_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.
-consul_nomad_integration: true
-consul_certificates:
- - src: "{{ file_consul_ca_pem }}"
- dest: "{{ consul_ca_file }}"
-consul_datacenter: "yul1"
-consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
-consul_node_role: "client"
-consul_retry_servers:
- - "10.30.51.23"
- - "10.30.51.24"
- - "10.30.51.25"
-consul_service_mgr: "systemd"
-
-
-# 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.18.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.18.yaml
deleted file mode 100644
index cb643b9daa..0000000000
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.18.yaml
+++ /dev/null
@@ -1,68 +0,0 @@
----
-# file: host_vars/10.30.51.18.yaml
-
-hostname: "s18-nomad"
-inventory_cimc_hostname: "10.30.50.18"
-
-# 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 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"
-sshd_disable_password_login: true
-
-# Nomad settings.
-nomad_certificates:
- - src: "{{ file_nomad_ca_pem }}"
- dest: "{{ nomad_ca_file }}"
- - src: "{{ file_nomad_client_pem }}"
- dest: "{{ nomad_cert_file }}"
- - src: "{{ file_nomad_client_key_pem }}"
- dest: "{{ nomad_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_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.
-consul_nomad_integration: true
-consul_certificates:
- - src: "{{ file_consul_ca_pem }}"
- dest: "{{ consul_ca_file }}"
-consul_datacenter: "yul1"
-consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
-consul_node_role: "client"
-consul_retry_servers:
- - "10.30.51.23"
- - "10.30.51.24"
- - "10.30.51.25"
-consul_service_mgr: "systemd"
-
-
-# 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.19.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.19.yaml
deleted file mode 100644
index 62edabfe0d..0000000000
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.19.yaml
+++ /dev/null
@@ -1,68 +0,0 @@
----
-# file: host_vars/10.30.51.19.yaml
-
-hostname: "s19-nomad"
-inventory_cimc_hostname: "10.30.50.19"
-
-# 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 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"
-sshd_disable_password_login: true
-
-# Nomad settings.
-nomad_certificates:
- - src: "{{ file_nomad_ca_pem }}"
- dest: "{{ nomad_ca_file }}"
- - src: "{{ file_nomad_client_pem }}"
- dest: "{{ nomad_cert_file }}"
- - src: "{{ file_nomad_client_key_pem }}"
- dest: "{{ nomad_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_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.
-consul_nomad_integration: true
-consul_certificates:
- - src: "{{ file_consul_ca_pem }}"
- dest: "{{ consul_ca_file }}"
-consul_datacenter: "yul1"
-consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
-consul_node_role: "client"
-consul_retry_servers:
- - "10.30.51.23"
- - "10.30.51.24"
- - "10.30.51.25"
-consul_service_mgr: "systemd"
-
-
-# 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.20.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.20.yaml
deleted file mode 100644
index 8055eec3e9..0000000000
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.20.yaml
+++ /dev/null
@@ -1,67 +0,0 @@
----
-# file: host_vars/10.30.51.20.yaml
-
-hostname: "s20-nomad"
-inventory_cimc_hostname: "10.30.50.20"
-
-# User management.
-users:
- - username: localadmin
- groups: [adm, sudo]
- password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
- ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDQ5KJyLPM5yJAVLwhEwiTEZD5LkY7FEPOoyJplVMQu5/oIp+KtFr4/RrFEpJwlzuE3um+Hn9+4KZJiQvVJBEp/ZYeGMXJDw0oHlubtI/0AEdolM5TvYNzCASHulRfg2JdCGAeCG5W7vkPQmJjwtQFNw3ISGKKHgJBGipqUjDyuZPi24RI0YBfqtr/GDA0e9dZwkqI+F5yxVi9vXG68bpMkxpeC4Zlxe2DmXAEp787LYSlF+HoELPW3AAWnuQ3j1R2tImM/S9jlxfb9Uy7KlX9epkGV2/caS2EiLszT7604LrSZy4soko1CgtX1LJ3Qobz9OppkJQ+tiBU8C0oz8Z5CXnQ/GYmFt9SBDHneB1ZOtIcoV8HTQVLKCse/VXogQogdG8xOis6F+R3OAJQUF7w3ujIBCXv8ghVcynvzaGB1kxZtwceEqtIXSFdve6T2onyM0722aQ93MiXPv+IA5qpkpSN3JS0KFGxKalTdFz9+lx/agV4JVOrVxEASfok3hbNzEm/4DwUyvgf2vbHlfYQdjHg2mBmYnN3iY/ccU906Tt/TlIp25+FIIbTiLn/nt3NLLPPEZJbJDkEJ5tgJ7XLfJ9ByCfZoOIMdSPF/swDXafTcA5mJ4AKFS0HJf9wBvbgkmD2OttOAvL8k2mqsb7MiMurbXm7Ko/D+nEX+oxkKZQ== 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"
-sshd_disable_password_login: true
-
-# Nomad settings.
-nomad_certificates:
- - src: "{{ file_nomad_ca_pem }}"
- dest: "{{ nomad_ca_file }}"
- - src: "{{ file_nomad_client_pem }}"
- dest: "{{ nomad_cert_file }}"
- - src: "{{ file_nomad_client_key_pem }}"
- dest: "{{ nomad_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_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.
-consul_nomad_integration: true
-consul_certificates:
- - src: "{{ file_consul_ca_pem }}"
- dest: "{{ consul_ca_file }}"
-consul_datacenter: "yul1"
-consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
-consul_node_role: "client"
-consul_retry_servers:
- - "10.30.51.23"
- - "10.30.51.24"
- - "10.30.51.25"
-consul_service_mgr: "systemd"
-
-# 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.21.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.21.yaml
index 0bcbaed0ec..b28cae11ff 100644
--- 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
@@ -2,7 +2,7 @@
# file: host_vars/10.30.51.21.yaml
hostname: "s21-nomad"
-inventory_cimc_hostname: "10.30.50.21"
+inventory_ipmi_hostname: "10.30.50.21"
# User management.
users:
@@ -10,56 +10,77 @@ users:
groups: [adm, sudo]
password: "$6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1"
ssh_key:
- - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDQ5KJyLPM5yJAVLwhEwiTEZD5LkY7FEPOoyJplVMQu5/oIp+KtFr4/RrFEpJwlzuE3um+Hn9+4KZJiQvVJBEp/ZYeGMXJDw0oHlubtI/0AEdolM5TvYNzCASHulRfg2JdCGAeCG5W7vkPQmJjwtQFNw3ISGKKHgJBGipqUjDyuZPi24RI0YBfqtr/GDA0e9dZwkqI+F5yxVi9vXG68bpMkxpeC4Zlxe2DmXAEp787LYSlF+HoELPW3AAWnuQ3j1R2tImM/S9jlxfb9Uy7KlX9epkGV2/caS2EiLszT7604LrSZy4soko1CgtX1LJ3Qobz9OppkJQ+tiBU8C0oz8Z5CXnQ/GYmFt9SBDHneB1ZOtIcoV8HTQVLKCse/VXogQogdG8xOis6F+R3OAJQUF7w3ujIBCXv8ghVcynvzaGB1kxZtwceEqtIXSFdve6T2onyM0722aQ93MiXPv+IA5qpkpSN3JS0KFGxKalTdFz9+lx/agV4JVOrVxEASfok3hbNzEm/4DwUyvgf2vbHlfYQdjHg2mBmYnN3iY/ccU906Tt/TlIp25+FIIbTiLn/nt3NLLPPEZJbJDkEJ5tgJ7XLfJ9ByCfZoOIMdSPF/swDXafTcA5mJ4AKFS0HJf9wBvbgkmD2OttOAvL8k2mqsb7MiMurbXm7Ko/D+nEX+oxkKZQ== peter.mikus@protonmail.ch"
+ - "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_ca_file }}"
- - src: "{{ file_nomad_client_pem }}"
- dest: "{{ nomad_cert_file }}"
- - src: "{{ file_nomad_client_key_pem }}"
- dest: "{{ nomad_key_file }}"
+ 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: false
+ 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.24"
- "10.30.51.25"
nomad_servers:
- - "10.30.51.23:4647"
+ - "10.30.51.26:4647"
- "10.30.51.24:4647"
- "10.30.51.25:4647"
-# Consul settigs.
-consul_nomad_integration: true
+# 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_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
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.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"]
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
index 9364464ac2..8d7223495b 100644
--- 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
@@ -2,7 +2,7 @@
# file: host_vars/10.30.51.22.yaml
hostname: "s22-nomad"
-inventory_cimc_hostname: "10.30.50.22"
+inventory_ipmi_hostname: "10.30.50.22"
# User management.
users:
@@ -10,56 +10,76 @@ users:
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-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_ca_file }}"
- - src: "{{ file_nomad_client_pem }}"
- dest: "{{ nomad_cert_file }}"
- - src: "{{ file_nomad_client_key_pem }}"
- dest: "{{ nomad_key_file }}"
+ 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: false
+ 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"
- "10.30.51.25"
nomad_servers:
- "10.30.51.23:4647"
- - "10.30.51.24:4647"
+ - "10.30.51.26:4647"
- "10.30.51.25:4647"
# Consul settigs.
-consul_nomad_integration: true
+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_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
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.26"
- "10.30.51.25"
consul_service_mgr: "systemd"
+# Vault settings.
+vault_version: "1.13.1"
# Docker daemon settings.
docker_daemon:
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
index b0a950988d..8c3afaf74c 100644
--- 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
@@ -10,21 +10,23 @@ users:
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-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_ca_file }}"
+ dest: "{{ nomad_tls_ca_file }}"
- src: "{{ file_nomad_server_pem }}"
- dest: "{{ nomad_cert_file }}"
+ dest: "{{ nomad_tls_cert_file }}"
- src: "{{ file_nomad_server_key_pem }}"
- dest: "{{ nomad_key_file }}"
+ dest: "{{ nomad_tls_key_file }}"
nomad_datacenter: "yul1"
nomad_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
nomad_node_name: "{{ hostname }}-{{ ansible_architecture }}"
@@ -38,6 +40,11 @@ nomad_options:
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"
@@ -52,7 +59,7 @@ nomad_volumes:
read_only: false
# Consul settings.
-consul_nomad_integration: true
+nomad_use_consul: true
consul_certificates:
- src: "{{ file_consul_ca_pem }}"
dest: "{{ consul_ca_file }}"
@@ -60,16 +67,24 @@ consul_certificates:
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_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
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"]
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
index b7981718e5..cb65e81c26 100644
--- 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
@@ -10,21 +10,23 @@ users:
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-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_ca_file }}"
+ dest: "{{ nomad_tls_ca_file }}"
- src: "{{ file_nomad_server_pem }}"
- dest: "{{ nomad_cert_file }}"
+ dest: "{{ nomad_tls_cert_file }}"
- src: "{{ file_nomad_server_key_pem }}"
- dest: "{{ nomad_key_file }}"
+ dest: "{{ nomad_tls_key_file }}"
nomad_datacenter: "yul1"
nomad_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
nomad_node_name: "{{ hostname }}-{{ ansible_architecture }}"
@@ -38,6 +40,11 @@ nomad_options:
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"
@@ -52,7 +59,7 @@ nomad_volumes:
read_only: false
# Consul settigs.
-consul_nomad_integration: true
+nomad_use_consul: true
consul_certificates:
- src: "{{ file_consul_ca_pem }}"
dest: "{{ consul_ca_file }}"
@@ -60,16 +67,24 @@ consul_certificates:
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_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
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"]
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
index ba84722fc6..20e45a90ea 100644
--- 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
@@ -10,21 +10,23 @@ users:
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-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_ca_file }}"
+ dest: "{{ nomad_tls_ca_file }}"
- src: "{{ file_nomad_server_pem }}"
- dest: "{{ nomad_cert_file }}"
+ dest: "{{ nomad_tls_cert_file }}"
- src: "{{ file_nomad_server_key_pem }}"
- dest: "{{ nomad_key_file }}"
+ dest: "{{ nomad_tls_key_file }}"
nomad_datacenter: "yul1"
nomad_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
nomad_node_name: "{{ hostname }}-{{ ansible_architecture }}"
@@ -38,6 +40,11 @@ nomad_options:
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"
@@ -52,7 +59,7 @@ nomad_volumes:
read_only: false
# Consul settigs.
-consul_nomad_integration: true
+nomad_use_consul: true
consul_certificates:
- src: "{{ file_consul_ca_pem }}"
dest: "{{ consul_ca_file }}"
@@ -60,16 +67,24 @@ consul_certificates:
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_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
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"]
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
index 1ad441bfe9..0d71009ede 100644
--- 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
@@ -10,21 +10,23 @@ users:
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-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_ca_file }}"
+ dest: "{{ nomad_tls_ca_file }}"
- src: "{{ file_nomad_server_pem }}"
- dest: "{{ nomad_cert_file }}"
+ dest: "{{ nomad_tls_cert_file }}"
- src: "{{ file_nomad_server_key_pem }}"
- dest: "{{ nomad_key_file }}"
+ dest: "{{ nomad_tls_key_file }}"
nomad_datacenter: "yul1"
nomad_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
nomad_node_name: "{{ hostname }}-{{ ansible_architecture }}"
@@ -38,6 +40,11 @@ nomad_options:
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"
@@ -52,7 +59,7 @@ nomad_volumes:
read_only: false
# Consul settigs.
-consul_nomad_integration: true
+nomad_use_consul: true
consul_certificates:
- src: "{{ file_consul_ca_pem }}"
dest: "{{ consul_ca_file }}"
@@ -60,16 +67,24 @@ consul_certificates:
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_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
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"]
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
index c11c421769..1db367bd67 100644
--- 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
@@ -6,6 +6,7 @@ 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"
@@ -20,6 +21,3 @@ sysctl:
inventory_ipmi_hostname: "10.30.50.36"
cpu_microarchitecture: "taishan"
-
-intel_700_matrix: "dpdk22.03"
-
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
index ab3176ef78..7d3188251a 100644
--- 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
@@ -6,6 +6,7 @@ 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"
@@ -20,6 +21,3 @@ sysctl:
inventory_ipmi_hostname: "10.30.50.37"
cpu_microarchitecture: "taishan"
-
-intel_700_matrix: "dpdk22.03"
-
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
index 8d84fbdd0d..8b95603594 100644
--- 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
@@ -11,9 +11,10 @@ users:
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-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.44.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.44.yaml
deleted file mode 100644
index e1f4ebbe3f..0000000000
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.44.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
----
-# file: host_vars/10.30.51.44.yaml
-
-hostname: "s3-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"
- 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: 32768
- max_map_count: 20000
-
-inventory_ipmi_hostname: "10.30.50.41"
-cpu_microarchitecture: "skylake"
-
-intel_700_matrix: "dpdk22.03"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.45.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.45.yaml
deleted file mode 100644
index a38f7f0845..0000000000
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.45.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
----
-# file: host_vars/10.30.51.45.yaml
-
-hostname: "s4-t21-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.50.42"
-cpu_microarchitecture: "skylake"
-
-intel_700_matrix: "dpdk21.02"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.46.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.46.yaml
deleted file mode 100644
index 55d38a2fd5..0000000000
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.46.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
----
-# file: host_vars/10.30.51.46.yaml
-
-hostname: "s11-t31-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-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: 32768
- max_map_count: 20000
-
-inventory_ipmi_hostname: "10.30.50.43"
-cpu_microarchitecture: "skylake"
-
-intel_700_matrix: "dpdk22.03"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.47.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.47.yaml
deleted file mode 100644
index 718201b151..0000000000
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.47.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
----
-# file: host_vars/10.30.51.47.yaml
-
-hostname: "s12-t31-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-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: 32768
- max_map_count: 20000
-
-inventory_ipmi_hostname: "10.30.50.44"
-cpu_microarchitecture: "skylake"
-
-intel_700_matrix: "dpdk22.03"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.48.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.48.yaml
deleted file mode 100644
index caa0f54b16..0000000000
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.48.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
----
-# file: host_vars/10.30.51.48.yaml
-
-hostname: "s13-t31-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.50.45"
-cpu_microarchitecture: "skylake"
-
-intel_700_matrix: "dpdk21.02"
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
index 85184b5540..3b9b63dfd0 100644
--- 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
@@ -30,4 +30,4 @@ inventory_ipmi_hostname: "10.30.50.46"
cpu_microarchitecture: "skylake"
docker_tg: true
-intel_700_matrix: "dpdk21.02"
+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
index 7115292b1a..117c6d2c31 100644
--- 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
@@ -18,21 +18,23 @@ users:
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-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_ca_file }}"
+ dest: "{{ nomad_tls_ca_file }}"
- src: "{{ file_nomad_client_pem }}"
- dest: "{{ nomad_cert_file }}"
+ dest: "{{ nomad_tls_cert_file }}"
- src: "{{ file_nomad_client_key_pem }}"
- dest: "{{ nomad_key_file }}"
+ dest: "{{ nomad_tls_key_file }}"
nomad_datacenter: "yul1"
nomad_node_name: "{{ hostname }}-{{ ansible_architecture }}"
nomad_node_role: "client"
@@ -44,30 +46,47 @@ nomad_options:
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.32.8.15"
- - "10.32.8.16"
- - "10.32.8.17"
+ - "10.30.51.23"
+ - "10.30.51.24"
+ - "10.30.51.25"
nomad_servers:
- - "10.32.8.15:4647"
- - "10.32.8.16:4647"
- - "10.32.8.17:4647"
+ - "10.30.51.23:4647"
+ - "10.30.51.24:4647"
+ - "10.30.51.25:4647"
# Consul settigs.
-consul_nomad_integration: true
+nomad_use_consul: true
consul_certificates:
- - src: "{{ file_consul_ca_pem }}"
+ - 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_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
consul_node_role: "client"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ ansible_hostname }}"
+consul_retry_join: true
consul_retry_servers:
- - "10.32.8.15"
- - "10.32.8.16"
- - "10.32.8.17"
+ - "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"
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
index a21eb85dcd..875b759675 100644
--- 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
@@ -18,21 +18,23 @@ users:
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-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_ca_file }}"
+ dest: "{{ nomad_tls_ca_file }}"
- src: "{{ file_nomad_client_pem }}"
- dest: "{{ nomad_cert_file }}"
+ dest: "{{ nomad_tls_cert_file }}"
- src: "{{ file_nomad_client_key_pem }}"
- dest: "{{ nomad_key_file }}"
+ dest: "{{ nomad_tls_key_file }}"
nomad_datacenter: "yul1"
nomad_node_name: "{{ hostname }}-{{ ansible_architecture }}"
nomad_node_role: "client"
@@ -44,30 +46,47 @@ nomad_options:
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.32.8.15"
- - "10.32.8.16"
- - "10.32.8.17"
+ - "10.30.51.23"
+ - "10.30.51.24"
+ - "10.30.51.25"
nomad_servers:
- - "10.32.8.15:4647"
- - "10.32.8.16:4647"
- - "10.32.8.17:4647"
+ - "10.30.51.23:4647"
+ - "10.30.51.24:4647"
+ - "10.30.51.25:4647"
# Consul settigs.
-consul_nomad_integration: true
+nomad_use_consul: true
consul_certificates:
- - src: "{{ file_consul_ca_pem }}"
+ - 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_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
consul_node_role: "client"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ ansible_hostname }}"
+consul_retry_join: true
consul_retry_servers:
- - "10.32.8.15"
- - "10.32.8.16"
- - "10.32.8.17"
+ - "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"
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
index 2b1eeff967..8e8d3d39c2 100644
--- 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
@@ -1,32 +1,74 @@
---
# file: host_vars/10.30.51.52.yaml
-hostname: "s5-t22-sut1"
+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"
+ intel_iommu: "on,sm_on"
intel_pstate: "disable"
iommu: "pt"
- isolcpus: "1-27,29-55,57-83,85-111"
+ isolcpus: "1-31,33-63,65-95,97-127"
mce: "off"
nmi_watchdog: "0"
- nohz_full: "1-27,29-55,57-83,85-111"
+ nohz_full: "1-31,33-63,65-95,97-127"
nosoftlockup: true
numa_balancing: "disable"
processor.max_cstate: "1"
- rcu_nocbs: "1-27,29-55,57-83,85-111"
+ rcu_nocbs: "1-31,33-63,65-95,97-127"
tsc: "reliable"
sysctl:
kernel:
- watchdog_cpumask: "0,28,56,84"
+ watchdog_cpumask: "0,32,64,96"
vm:
nr_hugepages: 32768
max_map_count: 20000
-inventory_ipmi_hostname: "10.30.50.49"
-cpu_microarchitecture: "skylake"
+inventory_ipmi_hostname: "10.30.50.52"
+cpu_microarchitecture: "sapphirerapids"
-intel_700_matrix: "dpdk22.03"
+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
index 5806993388..ce07968323 100644
--- 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
@@ -1,32 +1,65 @@
---
# file: host_vars/10.30.51.53.yaml
-hostname: "s6-t22-tg1"
+hostname: "s53-t21-tg1"
grub:
audit: "0"
- default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=8192"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
hpet: "disable"
intel_idle.max_cstate: "1"
- intel_iommu: "on"
+ intel_iommu: "on,sm_on"
intel_pstate: "disable"
iommu: "pt"
- isolcpus: "1-27,29-55,57-83,85-111"
+ isolcpus: "1-31,33-63,65-95,97-127"
mce: "off"
nmi_watchdog: "0"
- nohz_full: "1-27,29-55,57-83,85-111"
+ nohz_full: "1-31,33-63,65-95,97-127"
nosoftlockup: true
numa_balancing: "disable"
processor.max_cstate: "1"
- rcu_nocbs: "1-27,29-55,57-83,85-111"
+ rcu_nocbs: "1-31,33-63,65-95,97-127"
tsc: "reliable"
sysctl:
kernel:
- watchdog_cpumask: "0,28,56,84"
+ watchdog_cpumask: "0,32,64,96"
vm:
- nr_hugepages: 8192
+ nr_hugepages: 32768
max_map_count: 20000
-inventory_ipmi_hostname: "10.30.50.50"
-cpu_microarchitecture: "skylake"
+inventory_ipmi_hostname: "10.30.50.53"
+cpu_microarchitecture: "sapphirerapids"
-intel_700_matrix: "dpdk21.02"
+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
index 50908d7df8..1fd8edd5dd 100644
--- 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
@@ -1,32 +1,67 @@
---
# file: host_vars/10.30.51.54.yaml
-hostname: "s7-t23-sut1"
+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"
+ intel_iommu: "on,sm_on"
intel_pstate: "disable"
iommu: "pt"
- isolcpus: "1-27,29-55,57-83,85-111"
+ isolcpus: "1-31,33-63,65-95,97-127"
mce: "off"
nmi_watchdog: "0"
- nohz_full: "1-27,29-55,57-83,85-111"
+ nohz_full: "1-31,33-63,65-95,97-127"
nosoftlockup: true
numa_balancing: "disable"
processor.max_cstate: "1"
- rcu_nocbs: "1-27,29-55,57-83,85-111"
+ rcu_nocbs: "1-31,33-63,65-95,97-127"
tsc: "reliable"
sysctl:
kernel:
- watchdog_cpumask: "0,28,56,84"
+ watchdog_cpumask: "0,32,64,96"
vm:
nr_hugepages: 32768
max_map_count: 20000
-inventory_ipmi_hostname: "10.30.50.51"
-cpu_microarchitecture: "skylake"
+inventory_ipmi_hostname: "10.30.50.54"
+cpu_microarchitecture: "sapphirerapids"
-intel_700_matrix: "dpdk22.03"
+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
index 9404e18ae0..1b9f9a56d3 100644
--- 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
@@ -1,32 +1,63 @@
---
# file: host_vars/10.30.51.55.yaml
-hostname: "s8-t23-tg1"
+hostname: "s55-t22-tg1"
grub:
audit: "0"
- default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=8192"
+ default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=32768"
hpet: "disable"
intel_idle.max_cstate: "1"
- intel_iommu: "on"
+ intel_iommu: "on,sm_on"
intel_pstate: "disable"
iommu: "pt"
- isolcpus: "1-27,29-55,57-83,85-111"
+ isolcpus: "1-31,33-63,65-95,97-127"
mce: "off"
nmi_watchdog: "0"
- nohz_full: "1-27,29-55,57-83,85-111"
+ nohz_full: "1-31,33-63,65-95,97-127"
nosoftlockup: true
numa_balancing: "disable"
processor.max_cstate: "1"
- rcu_nocbs: "1-27,29-55,57-83,85-111"
+ rcu_nocbs: "1-31,33-63,65-95,97-127"
tsc: "reliable"
sysctl:
kernel:
- watchdog_cpumask: "0,28,56,84"
+ watchdog_cpumask: "0,32,64,96"
vm:
- nr_hugepages: 8192
+ nr_hugepages: 32768
max_map_count: 20000
-inventory_ipmi_hostname: "10.30.50.52"
-cpu_microarchitecture: "skylake"
+inventory_ipmi_hostname: "10.30.50.55"
+cpu_microarchitecture: "sapphirerapids"
-intel_700_matrix: "dpdk21.02"
+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
index a100bcca8a..ecfced1823 100644
--- 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
@@ -1,32 +1,36 @@
---
# file: host_vars/10.30.51.58.yaml
-hostname: "s14-t32-sut1"
+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"
+ intel_iommu: "on,sm_on"
intel_pstate: "disable"
iommu: "pt"
- isolcpus: "1-27,29-55,57-83,85-111"
+ isolcpus: "1-31,33-63,65-95,97-127"
mce: "off"
nmi_watchdog: "0"
- nohz_full: "1-27,29-55,57-83,85-111"
+ nohz_full: "1-31,33-63,65-95,97-127"
nosoftlockup: true
numa_balancing: "disable"
processor.max_cstate: "1"
- rcu_nocbs: "1-27,29-55,57-83,85-111"
+ rcu_nocbs: "1-31,33-63,65-95,97-127"
tsc: "reliable"
sysctl:
kernel:
- watchdog_cpumask: "0,28,56,84"
+ watchdog_cpumask: "0,32,64,96"
vm:
nr_hugepages: 32768
max_map_count: 20000
-inventory_ipmi_hostname: "10.30.50.55"
-cpu_microarchitecture: "skylake"
+inventory_ipmi_hostname: "10.30.50.58"
+cpu_microarchitecture: "sapphirerapids"
+docker_sut: true
-intel_700_matrix: "dpdk22.03"
+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
index be5d0b09ae..5b9cd9b98c 100644
--- 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
@@ -1,32 +1,41 @@
---
# file: host_vars/10.30.51.59.yaml
-hostname: "s15-t32-sut2"
+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"
+ intel_iommu: "on,sm_on"
intel_pstate: "disable"
iommu: "pt"
- isolcpus: "1-27,29-55,57-83,85-111"
+ isolcpus: "1-31,33-63,65-95,97-127"
mce: "off"
nmi_watchdog: "0"
- nohz_full: "1-27,29-55,57-83,85-111"
+ nohz_full: "1-31,33-63,65-95,97-127"
nosoftlockup: true
numa_balancing: "disable"
processor.max_cstate: "1"
- rcu_nocbs: "1-27,29-55,57-83,85-111"
+ rcu_nocbs: "1-31,33-63,65-95,97-127"
tsc: "reliable"
sysctl:
kernel:
- watchdog_cpumask: "0,28,56,84"
+ watchdog_cpumask: "0,32,64,96"
vm:
nr_hugepages: 32768
max_map_count: 20000
-inventory_ipmi_hostname: "10.30.50.56"
-cpu_microarchitecture: "skylake"
+inventory_ipmi_hostname: "10.30.50.59"
+cpu_microarchitecture: "sapphirerapids"
+docker_tg: true
-intel_700_matrix: "dpdk22.03"
+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.60.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.60.yaml
deleted file mode 100644
index d340e39102..0000000000
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.30.51.60.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
----
-# file: host_vars/10.30.51.60.yaml
-
-hostname: "s16-t32-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.50.57"
-cpu_microarchitecture: "skylake"
-
-intel_700_matrix: "dpdk21.02"
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
index 07eb7be548..3b5bb0be8a 100644
--- 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
@@ -28,13 +28,15 @@ users:
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-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-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgObJFDIMmPwQhhkjAynvlbwpM5yeSewyaE7vTLaFf4uFz4vmsE2hFf6B2xXHUGLVwoVfk91UeK7LOGrdDpoDDHzvPZXj5NmZI+WiWax5y2pQZNkcSZws0ENCeEc4hPwc4veJ1JmhokF4Bsmu14HyFMaFUhM8897jtJwsh+9fLA/no0iPGaQqEtRUQhkV+P4jCEPoY0qdRZAzVw/rY4EGAMhsJe3EJmyj63OfrrkG3+hvSLFo5pDxHQr3pZd/c6ukI7xMef48PosAvGCm3oxzb/Gu9PZIGuHLczY+tCnzCkY7MO7E+IWgjXrUAfYwSWz8XmFmA9LLe26DT5jkcK8hGQ== pmikus@cisco.com"
+ - "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: "dpdk22.03"
+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
index 66df09b8bf..2337277144 100644
--- 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
@@ -1,14 +1,16 @@
---
# file: host_vars/10.30.51.70.yaml
-hostname: "s55-t13-sut1"
-inventory_ipmi_hostname: "10.30.50.70"
-vfs_data_file: "csit-initialize-vfs-tx2.sh"
+hostname: "s70-t13-sut1"
grub:
hugepagesz: "2M"
hugepages: 32768
iommu.passthrough: "1"
-cpu_microarchitecture: "thunderx2"
+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:
@@ -16,23 +18,25 @@ users:
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-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_ca_file }}"
+ dest: "{{ nomad_tls_ca_file }}"
- src: "{{ file_nomad_client_pem }}"
- dest: "{{ nomad_cert_file }}"
+ dest: "{{ nomad_tls_cert_file }}"
- src: "{{ file_nomad_client_key_pem }}"
- dest: "{{ nomad_key_file }}"
+ dest: "{{ nomad_tls_key_file }}"
nomad_datacenter: "yul1"
nomad_node_name: "{{ hostname }}-{{ ansible_architecture }}"
nomad_node_role: "client"
@@ -44,34 +48,51 @@ nomad_options:
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.32.8.15"
- - "10.32.8.16"
- - "10.32.8.17"
+ - "10.30.51.23"
+ - "10.30.51.24"
+ - "10.30.51.25"
nomad_servers:
- - "10.32.8.15:4647"
- - "10.32.8.16:4647"
- - "10.32.8.17:4647"
-nomad_cpu_total_compute: "40000"
+ - "10.30.51.23:4647"
+ - "10.30.51.24:4647"
+ - "10.30.51.25:4647"
# Consul settigs.
-consul_nomad_integration: true
+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_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
consul_node_role: "client"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ ansible_hostname }}"
+consul_retry_join: true
consul_retry_servers:
- - "10.32.8.15"
- - "10.32.8.16"
- - "10.32.8.17"
+ - "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:
- dns: ["172.17.0.1"]
- dns-opts: []
- dns-search: ["{{ansible_hostname}}"]
- storage-driver: "overlay2"
+ 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
index 9642b69efb..1d414b32c7 100644
--- 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
@@ -1,14 +1,16 @@
---
# file: host_vars/10.30.51.71.yaml
-hostname: "s56-t14-sut1"
-inventory_ipmi_hostname: "10.30.50.71"
-vfs_data_file: "csit-initialize-vfs-tx2.sh"
+hostname: "s71-t14-sut1"
grub:
hugepagesz: "2M"
hugepages: 32768
iommu.passthrough: "1"
-cpu_microarchitecture: "thunderx2"
+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:
@@ -16,23 +18,25 @@ users:
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-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_ca_file }}"
+ dest: "{{ nomad_tls_ca_file }}"
- src: "{{ file_nomad_client_pem }}"
- dest: "{{ nomad_cert_file }}"
+ dest: "{{ nomad_tls_cert_file }}"
- src: "{{ file_nomad_client_key_pem }}"
- dest: "{{ nomad_key_file }}"
+ dest: "{{ nomad_tls_key_file }}"
nomad_datacenter: "yul1"
nomad_node_name: "{{ hostname }}-{{ ansible_architecture }}"
nomad_node_role: "client"
@@ -44,34 +48,51 @@ nomad_options:
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.32.8.15"
- - "10.32.8.16"
- - "10.32.8.17"
+ - "10.30.51.23"
+ - "10.30.51.24"
+ - "10.30.51.25"
nomad_servers:
- - "10.32.8.15:4647"
- - "10.32.8.16:4647"
- - "10.32.8.17:4647"
-nomad_cpu_total_compute: "40000"
+ - "10.30.51.23:4647"
+ - "10.30.51.24:4647"
+ - "10.30.51.25:4647"
# Consul settigs.
-consul_nomad_integration: true
+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_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
consul_node_role: "client"
+consul_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
+consul_node_name: "{{ ansible_hostname }}"
+consul_retry_join: true
consul_retry_servers:
- - "10.32.8.15"
- - "10.32.8.16"
- - "10.32.8.17"
+ - "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:
- dns: ["172.17.0.1"]
- dns-opts: []
- dns-search: ["{{ansible_hostname}}"]
- storage-driver: "overlay2"
+ 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
index a8193343e0..b7c8c26aae 100644
--- 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
@@ -22,4 +22,5 @@ sysctl:
inventory_ipmi_hostname: "10.30.50.72"
cpu_microarchitecture: "altra"
-intel_700_matrix: "dpdk22.03"
+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
index ebddd86462..0811b038b7 100644
--- 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
@@ -22,4 +22,5 @@ sysctl:
inventory_ipmi_hostname: "10.30.50.73"
cpu_microarchitecture: "altra"
-intel_700_matrix: "dpdk22.03"
+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
index 40dfa1e6b3..473e4a9a5e 100644
--- 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
@@ -29,5 +29,5 @@ sysctl:
inventory_ipmi_hostname: "10.30.50.74"
cpu_microarchitecture: "icelake"
-intel_700_matrix: "dpdk21.02"
-intel_800_matrix: "dpdk21.02"
+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
index ed651e973d..a96f087643 100644
--- 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
@@ -29,5 +29,6 @@ sysctl:
inventory_ipmi_hostname: "10.30.50.75"
cpu_microarchitecture: "icelake"
-intel_700_matrix: "dpdk22.03"
-intel_800_matrix: "dpdk22.03"
+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
index 6d9f0f4940..c1ddcf5a58 100644
--- 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
@@ -29,5 +29,6 @@ sysctl:
inventory_ipmi_hostname: "10.30.50.76"
cpu_microarchitecture: "icelake"
-intel_700_matrix: "dpdk22.03"
-intel_800_matrix: "dpdk22.03"
+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
index 1f98f1c8aa..e447ed2c81 100644
--- 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
@@ -29,5 +29,6 @@ sysctl:
inventory_ipmi_hostname: "10.30.50.77"
cpu_microarchitecture: "icelake"
-intel_700_matrix: "dpdk21.02"
-intel_800_matrix: "dpdk21.02"
+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
index 71d4245580..88f36b3880 100644
--- 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
@@ -29,5 +29,6 @@ sysctl:
inventory_ipmi_hostname: "10.30.50.78"
cpu_microarchitecture: "icelake"
-intel_700_matrix: "dpdk22.03"
-intel_800_matrix: "dpdk22.03"
+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
index d57803d525..37d6a18b2c 100644
--- 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
@@ -29,5 +29,6 @@ sysctl:
inventory_ipmi_hostname: "10.30.50.79"
cpu_microarchitecture: "icelake"
-intel_700_matrix: "dpdk22.03"
-intel_800_matrix: "dpdk22.03"
+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
index b1a5404498..dcb87d1a7c 100644
--- 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
@@ -29,5 +29,6 @@ sysctl:
inventory_ipmi_hostname: "10.30.50.80"
cpu_microarchitecture: "icelake"
-intel_700_matrix: "dpdk21.02"
-intel_800_matrix: "dpdk21.02"
+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
index f70c121bc3..e984947235 100644
--- 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
@@ -29,5 +29,6 @@ sysctl:
inventory_ipmi_hostname: "10.30.50.81"
cpu_microarchitecture: "icelake"
-intel_700_matrix: "dpdk21.02"
-intel_800_matrix: "dpdk21.02"
+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
index 828189d45d..5e6160e3ec 100644
--- 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
@@ -29,5 +29,6 @@ sysctl:
inventory_ipmi_hostname: "10.30.50.82"
cpu_microarchitecture: "icelake"
-intel_700_matrix: "dpdk22.03"
-intel_800_matrix: "dpdk22.03"
+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
index a1c5a81233..ac936cd89d 100644
--- 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
@@ -29,5 +29,6 @@ sysctl:
inventory_ipmi_hostname: "10.30.50.83"
cpu_microarchitecture: "icelake"
-intel_700_matrix: "dpdk21.02"
-intel_800_matrix: "dpdk21.02"
+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
index c9e998b8fa..05877b59e9 100644
--- 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
@@ -29,5 +29,6 @@ sysctl:
inventory_ipmi_hostname: "10.30.50.84"
cpu_microarchitecture: "icelake"
-intel_700_matrix: "dpdk22.03"
-intel_800_matrix: "dpdk22.03"
+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
index 31373e558c..0d61c87e4f 100644
--- 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
@@ -29,5 +29,6 @@ sysctl:
inventory_ipmi_hostname: "10.30.50.85"
cpu_microarchitecture: "icelake"
-intel_700_matrix: "dpdk21.02"
-intel_800_matrix: "dpdk21.02"
+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
index 24f0f517af..f40b86bd6b 100644
--- 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
@@ -29,5 +29,6 @@ sysctl:
inventory_ipmi_hostname: "10.30.50.86"
cpu_microarchitecture: "icelake"
-intel_700_matrix: "dpdk22.03"
-intel_800_matrix: "dpdk22.03"
+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
index a00eab9c26..2c767d6795 100644
--- 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
@@ -29,5 +29,6 @@ sysctl:
inventory_ipmi_hostname: "10.30.50.87"
cpu_microarchitecture: "icelake"
-intel_700_matrix: "dpdk21.02"
-intel_800_matrix: "dpdk21.02"
+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
index 3ab76b6952..313c316752 100644
--- 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
@@ -29,5 +29,6 @@ sysctl:
inventory_ipmi_hostname: "10.30.50.88"
cpu_microarchitecture: "icelake"
-intel_700_matrix: "dpdk22.03"
-intel_800_matrix: "dpdk22.03"
+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
index ba44916ab0..7ab0d8ab68 100644
--- 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
@@ -29,5 +29,5 @@ sysctl:
inventory_ipmi_hostname: "10.30.50.89"
cpu_microarchitecture: "icelake"
-intel_700_matrix: "dpdk22.03"
-intel_800_matrix: "dpdk22.03"
+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
index d06284d5a4..53239492ef 100644
--- 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
@@ -11,21 +11,23 @@ users:
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-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_ca_file }}"
+ dest: "{{ nomad_tls_ca_file }}"
- src: "{{ file_nomad_client_pem }}"
- dest: "{{ nomad_cert_file }}"
+ dest: "{{ nomad_tls_cert_file }}"
- src: "{{ file_nomad_client_key_pem }}"
- dest: "{{ nomad_key_file }}"
+ dest: "{{ nomad_tls_key_file }}"
nomad_datacenter: "yul1"
nomad_node_name: "{{ hostname }}-{{ ansible_architecture }}"
nomad_node_role: "client"
@@ -37,6 +39,11 @@ nomad_options:
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"
@@ -47,14 +54,23 @@ nomad_servers:
- "10.30.51.25:4647"
# Consul settings.
-consul_nomad_integration: true
+nomad_use_consul: true
consul_certificates:
- - src: "{{ file_consul_ca_pem }}"
+ - 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_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
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"
@@ -62,6 +78,9 @@ consul_retry_servers:
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"]
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
index 705409fb6b..19ec70ce83 100644
--- 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
@@ -11,21 +11,23 @@ users:
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-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_ca_file }}"
+ dest: "{{ nomad_tls_ca_file }}"
- src: "{{ file_nomad_client_pem }}"
- dest: "{{ nomad_cert_file }}"
+ dest: "{{ nomad_tls_cert_file }}"
- src: "{{ file_nomad_client_key_pem }}"
- dest: "{{ nomad_key_file }}"
+ dest: "{{ nomad_tls_key_file }}"
nomad_datacenter: "yul1"
nomad_node_name: "{{ hostname }}-{{ ansible_architecture }}"
nomad_node_role: "client"
@@ -37,6 +39,11 @@ nomad_options:
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"
@@ -47,14 +54,23 @@ nomad_servers:
- "10.30.51.25:4647"
# Consul settings.
-consul_nomad_integration: true
+nomad_use_consul: true
consul_certificates:
- - src: "{{ file_consul_ca_pem }}"
+ - 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_encrypt: "Y4T+5JGx1C3l2NFBBvkTWQ=="
-consul_node_name: "{{ hostname }}"
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"
@@ -62,6 +78,9 @@ consul_retry_servers:
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"]
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
index 624945341b..cf4816a5f8 100644
--- 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
@@ -29,5 +29,5 @@ sysctl:
inventory_ipmi_hostname: "10.30.50.93"
cpu_microarchitecture: "snowridge"
-intel_700_matrix: "dpdk22.03"
-intel_800_matrix: "dpdk22.03"
+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
index 02bf62e674..d663cda18b 100644
--- 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
@@ -29,5 +29,5 @@ sysctl:
inventory_ipmi_hostname: "10.30.50.94"
cpu_microarchitecture: "snowridge"
-intel_700_matrix: "dpdk22.03"
-intel_800_matrix: "dpdk22.03"
+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.10.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.10.yaml
deleted file mode 100644
index 49abf934b5..0000000000
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.10.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
----
-# file: host_vars/10.32.8.10.yaml
-
-hostname: "s28-t26t35-tg1"
-grub:
- audit: "0"
- default_hugepagesz: "2M hugepagesz=1G hugepages=32 hugepagesz=2M hugepages=16484"
- 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
-
-intel_700_matrix: "dpdk21.02"
diff --git a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.11.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.11.yaml
deleted file mode 100644
index e21568d8ca..0000000000
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.11.yaml
+++ /dev/null
@@ -1,30 +0,0 @@
----
-# file: host_vars/10.32.8.11.yaml
-
-hostname: "s29-t26-sut1"
-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-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/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.12.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.12.yaml
deleted file mode 100644
index 9c6c0b7571..0000000000
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.12.yaml
+++ /dev/null
@@ -1,30 +0,0 @@
----
-# file: host_vars/10.32.8.12.yaml
-
-hostname: "s30-t35-sut1"
-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-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/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.13.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.13.yaml
deleted file mode 100644
index 90554042cc..0000000000
--- a/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.13.yaml
+++ /dev/null
@@ -1,30 +0,0 @@
----
-# file: host_vars/10.32.8.13.yaml
-
-hostname: "s31-t35-sut2"
-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-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/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
index 18ba2bfbfb..4423a36f56 100644
--- 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
@@ -29,6 +29,6 @@ sysctl:
inventory_ipmi_hostname: "10.30.55.18"
cpu_microarchitecture: "cascadelake"
-intel_700_matrix: "dpdk22.03"
-intel_800_matrix: "dpdk22.03"
-mellanox_cx5_matrix: "dpdk22.03"
+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
index 5ff676eb21..22210ae4bd 100644
--- 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
@@ -29,6 +29,6 @@ sysctl:
inventory_ipmi_hostname: "10.30.55.19"
cpu_microarchitecture: "cascadelake"
-intel_700_matrix: "dpdk21.02"
-intel_800_matrix: "dpdk21.02"
-mellanox_cx5_matrix: "dpdk21.02"
+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
index 947242ed92..36ba5c15f8 100644
--- 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
@@ -29,6 +29,6 @@ sysctl:
inventory_ipmi_hostname: "10.30.55.20"
cpu_microarchitecture: "cascadelake"
-intel_700_matrix: "dpdk22.03"
-intel_800_matrix: "dpdk22.03"
-mellanox_cx5_matrix: "dpdk22.03"
+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
index c4b626897e..61c6f51b06 100644
--- 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
@@ -29,6 +29,6 @@ sysctl:
inventory_ipmi_hostname: "10.30.55.21"
cpu_microarchitecture: "cascadelake"
-intel_700_matrix: "dpdk21.02"
-intel_800_matrix: "dpdk21.02"
-mellanox_cx5_matrix: "dpdk21.02"
+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
index 5c51159813..ae2947f54a 100644
--- 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
@@ -29,6 +29,6 @@ sysctl:
inventory_ipmi_hostname: "10.30.55.22"
cpu_microarchitecture: "cascadelake"
-intel_700_matrix: "dpdk22.03"
-intel_800_matrix: "dpdk22.03"
-mellanox_cx5_matrix: "dpdk22.03"
+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
index cfa84c784e..a3f19b4249 100644
--- 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
@@ -29,6 +29,6 @@ sysctl:
inventory_ipmi_hostname: "10.30.55.23"
cpu_microarchitecture: "cascadelake"
-intel_700_matrix: "dpdk21.02"
-intel_800_matrix: "dpdk21.02"
-mellanox_cx5_matrix: "dpdk21.02"
+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
index c0046ec862..accb8c5dc9 100644
--- 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
@@ -26,6 +26,5 @@ sysctl:
inventory_ipmi_hostname: "10.30.55.24"
cpu_microarchitecture: "epyc"
-intel_700_matrix: "dpdk22.03"
-intel_800_matrix: "dpdk22.03"
-mellanox_cx5_matrix: "dpdk22.03"
+intel_700_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.25.yaml b/fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.25.yaml
index 639e37bb20..629538fa34 100644
--- a/fdio.infra.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
@@ -26,6 +26,5 @@ sysctl:
inventory_ipmi_hostname: "10.30.55.25"
cpu_microarchitecture: "epyc"
-intel_700_matrix: "dpdk21.02"
-intel_800_matrix: "dpdk21.02"
-mellanox_cx5_matrix: "dpdk21.02"
+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
index 76261d70e3..b7109a1261 100644
--- a/fdio.infra.ansible/inventories/lf_inventory/hosts
+++ b/fdio.infra.ansible/inventories/lf_inventory/hosts
@@ -2,12 +2,11 @@ all:
children:
tg:
hosts:
- 10.30.51.45: #s4-t21-tg1 - skylake
- 10.30.51.48: #s13-t31-tg1 - skylake
10.30.51.49: #s19-t33t211-tg1 - skylake
- 10.30.51.53: #s6-t22-tg1 - skylake
- 10.30.51.55: #s8-t23-tg1 - skylake
- 10.30.51.60: #s16-t32-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
@@ -16,70 +15,60 @@ all:
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.32.8.10: #s28-t26t35-tg1 - skylake
+ 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.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.58: #s14-t32-sut1 - skylake
- 10.30.51.59: #s15-t32-sut2 - skylake
+ 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: #s71-t212-sut1 - 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.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-t211-sut1 - thunderx2 9975
vpp_device:
- # Note: vpp_device hosts are also nomad client hosts
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.16: #s16-nomad - haswell
- 10.30.51.17: #s17-nomad - haswell
- 10.30.51.18: #s18-nomad - haswell
- 10.30.51.19: #s19-nomad - haswell
- 10.30.51.20: #s20-nomad - haswell
- 10.30.51.21: #s21-nomad - haswell
- 10.30.51.22: #s22-nomad - haswell
+ 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.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
+ 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
+ 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
index f9938d20da..3a5ab66d8b 100644
--- a/fdio.infra.ansible/inventories/sample_inventory/group_vars/all.yaml
+++ b/fdio.infra.ansible/inventories/sample_inventory/group_vars/all.yaml
@@ -1,5 +1,2 @@
---
# file: sample_inventory/group_vars/all.yaml
-
-# Ansible interpreter (for PIP)
-ansible_python_interpreter: "python3"
diff --git a/fdio.infra.ansible/inventories/vagrant_inventory/group_vars/vagrant.yml b/fdio.infra.ansible/inventories/vagrant_inventory/group_vars/vagrant.yml
index c17eae8fb4..af44a3354d 100644
--- a/fdio.infra.ansible/inventories/vagrant_inventory/group_vars/vagrant.yml
+++ b/fdio.infra.ansible/inventories/vagrant_inventory/group_vars/vagrant.yml
@@ -1,5 +1,2 @@
---
# file: vagrant_inventory/group_vars/all.yaml
-
-# Ansible interpreter (for PIP)
-ansible_python_interpreter: "/usr/bin/python3"
diff --git a/fdio.infra.ansible/roles/ab/defaults/main.yaml b/fdio.infra.ansible/roles/ab/defaults/main.yaml
index 6e9dfbcfce..adabf1464c 100644
--- a/fdio.infra.ansible/roles/ab/defaults/main.yaml
+++ b/fdio.infra.ansible/roles/ab/defaults/main.yaml
@@ -8,8 +8,6 @@ packages_base:
packages_by_distro:
ubuntu:
- focal:
- - "apache2-utils"
jammy:
- "apache2-utils"
diff --git a/fdio.infra.ansible/roles/ab/tasks/main.yaml b/fdio.infra.ansible/roles/ab/tasks/main.yaml
index c69ed25a75..2a70fd1d1d 100644
--- a/fdio.infra.ansible/roles/ab/tasks/main.yaml
+++ b/fdio.infra.ansible/roles/ab/tasks/main.yaml
@@ -2,7 +2,7 @@
# file: roles/ab/tasks/main.yaml
- name: Inst - Update Package Cache (APT)
- apt:
+ ansible.builtin.apt:
update_cache: true
cache_valid_time: 3600
when:
@@ -11,7 +11,7 @@
- ab-inst-prerequisites
- name: Inst - Apache ab tools
- package:
+ ansible.builtin.package:
name: "{{ packages | flatten(levels=1) }}"
state: present
tags:
diff --git a/fdio.infra.ansible/roles/aws/defaults/main.yaml b/fdio.infra.ansible/roles/aws/defaults/main.yaml
index d4ea91afd4..5b6978da51 100644
--- a/fdio.infra.ansible/roles/aws/defaults/main.yaml
+++ b/fdio.infra.ansible/roles/aws/defaults/main.yaml
@@ -1,2 +1,26 @@
---
-# file: roles/aws/defaults/main.yaml
+# 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
index 7363dc2c34..d55db1c22f 100644
--- a/fdio.infra.ansible/roles/aws/handlers/main.yaml
+++ b/fdio.infra.ansible/roles/aws/handlers/main.yaml
@@ -1,15 +1,20 @@
---
# file: roles/aws/handlers/main.yaml
-- name: Reboot server
- reboot:
- reboot_timeout: 3600
- tags:
- - reboot-server
-
-- name: AWS - Reload systemd-modules
+- 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
index 2b8c22ccce..b5132c1909 100644
--- a/fdio.infra.ansible/roles/aws/tasks/main.yaml
+++ b/fdio.infra.ansible/roles/aws/tasks/main.yaml
@@ -1,60 +1,43 @@
---
-# file: roles/aws/tasks/main.yaml
+# file: tasks/main.yaml
- name: Edit repositories
include_tasks: "{{ ansible_distribution|lower }}_{{ ansible_distribution_release }}.yaml"
tags:
- aws-edit-repo
-- name: Get vfio-pci With WC Patcher
- 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: "744"
+- name: Prerequisites
+ ansible.builtin.package:
+ name: "{{ packages | flatten(levels=1) }}"
+ state: "latest"
tags:
- - aws-vfio-patch
-
-- name: Create vfio-pci Patch Directory
- file:
- path: "/opt/patches/"
- state: "directory"
- tags:
- - aws-vfio-patch
-
-- name: Get vfio-pci WC Patch >=4.10
- get_url:
- url: "https://github.com/amzn/amzn-drivers/raw/master/userspace/dpdk/enav2-vfio-patch/patches/linux-4.10-vfio-wc.patch"
- dest: "/opt/patches/linux-4.10-vfio-wc.patch"
- mode: "744"
- tags:
- - aws-vfio-patch
+ - aws-inst-prerequisites
-- name: Get vfio-pci WC Patch >=5.8
- get_url:
- url: "https://github.com/amzn/amzn-drivers/raw/master/userspace/dpdk/enav2-vfio-patch/patches/linux-5.8-vfio-wc.patch"
- dest: "/opt/patches/linux-5.8-vfio-wc.patch"
- mode: "744"
+- name: Switch Kernel At Boot
+ ansible.builtin.lineinfile:
+ path: "/etc/default/grub"
+ state: "present"
+ line: "GRUB_DEFAULT=\"1>2\""
+ notify:
+ - "Update GRUB"
tags:
- - aws-vfio-patch
+ - perf-conf-grub
-- name: Compile vfio-pci With WC Patch
- shell: "/bin/bash /opt/get-vfio-with-wc.sh"
- tags:
- - aws-vfio-patch
+- meta: flush_handlers
- name: Load Kernel Modules By Default
- lineinfile:
+ ansible.builtin.lineinfile:
path: "/etc/modules"
state: "present"
line: "{{ item }}"
with_items:
- - "vfio-pci"
- "igb_uio"
+ - "vfio-pci"
tags:
- aws-load-kernel-modules
- name: Add Kernel Modules Options (igb_uio)
- lineinfile:
+ ansible.builtin.lineinfile:
path: "/etc/modprobe.d/igb_uio.conf"
state: "present"
line: "{{ item }}"
@@ -65,7 +48,7 @@
- aws-load-kernel-modules
- name: Add Kernel Modules Options (vfio-pci)
- lineinfile:
+ ansible.builtin.lineinfile:
path: "/etc/modprobe.d/vfio-noiommu.conf"
state: "present"
line: "{{ item }}"
@@ -75,24 +58,67 @@
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
- systemd:
+ ansible.builtin.systemd:
name: "systemd-modules-load"
state: "restarted"
tags:
- aws-reload-systemd-modules
- name: Adjust nr_hugepages
- sysctl:
+ ansible.builtin.sysctl:
name: "vm.nr_hugepages"
value: "8192"
state: "present"
sysctl_file: "/etc/sysctl.d/90-csit.conf"
- reload: "yes"
+ reload: true
tags:
- aws-set-hugepages
- name: Shutdown host with delay
- command: "/sbin/shutdown -P +720"
+ ansible.builtin.command: "/sbin/shutdown -P +720"
tags:
- aws-set-self-terminate
diff --git a/fdio.infra.ansible/roles/aws/tasks/ubuntu_focal.yaml b/fdio.infra.ansible/roles/aws/tasks/ubuntu_focal.yaml
deleted file mode 100644
index 60302f2309..0000000000
--- a/fdio.infra.ansible/roles/aws/tasks/ubuntu_focal.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
----
-# file: roles/aws/tasks/ubuntu_focal.yaml.yaml
-
-- name: Enable deb-src APT Repository
- apt_repository:
- repo: "deb-src http://archive.ubuntu.com/ubuntu focal main"
- state: "present"
- update_cache: true
- tags:
- - aws-enable-src-repo
diff --git a/fdio.infra.ansible/roles/aws/tasks/ubuntu_jammy.yaml b/fdio.infra.ansible/roles/aws/tasks/ubuntu_jammy.yaml
index 4ee1545baf..c589239f61 100644
--- a/fdio.infra.ansible/roles/aws/tasks/ubuntu_jammy.yaml
+++ b/fdio.infra.ansible/roles/aws/tasks/ubuntu_jammy.yaml
@@ -1,10 +1,35 @@
---
-# file: roles/aws/tasks/ubuntu_jammy.yaml.yaml
+# file: tasks/ubuntu_jammy.yaml
- name: Enable deb-src APT Repository
- apt_repository:
- repo: "deb-src http://archive.ubuntu.com/ubuntu jammy main"
+ 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/calibration/defaults/main.yaml b/fdio.infra.ansible/roles/calibration/defaults/main.yaml
index bb904622e4..5dc3330e08 100644
--- a/fdio.infra.ansible/roles/calibration/defaults/main.yaml
+++ b/fdio.infra.ansible/roles/calibration/defaults/main.yaml
@@ -9,9 +9,6 @@ packages_base:
packages_by_distro:
ubuntu:
- focal:
- - "build-essential"
- - "dmidecode"
jammy:
- "build-essential"
- "dmidecode"
@@ -27,20 +24,13 @@ kernel_version: "{{ kernel_version_by_distro_by_arch[ansible_distribution | lowe
kernel_version_by_distro_by_arch:
ubuntu:
- focal:
- x86_64:
- - "5.4.0-65-generic"
- - "5.3.0-1020-azure"
- - "5.4.0-1035-aws"
- aarch64:
- - "5.4.0-65-generic"
jammy:
x86_64:
- - "5.15.0-0-generic" # Placeholder
- - "5.3.0-1020-azure" # Placeholder
+ - "5.15.0-46-generic" # Placeholder
- "5.15.0-1000-aws" # Placeholder
+ - "5.4.0-1009-aws" # Placeholder
aarch64:
- - "5.15.0-0-generic" # Placeholder
+ - "5.15.0-46-generic" # Placeholder
pma_directory: "/tmp/pma_tools"
jitter_core: 7
diff --git a/fdio.infra.ansible/roles/calibration/tasks/main.yaml b/fdio.infra.ansible/roles/calibration/tasks/main.yaml
index 62470b4d7f..5807d7e2a4 100644
--- a/fdio.infra.ansible/roles/calibration/tasks/main.yaml
+++ b/fdio.infra.ansible/roles/calibration/tasks/main.yaml
@@ -2,7 +2,7 @@
# file: roles/calibration/tasks/main.yaml
- name: Inst - Update Package Cache (APT)
- apt:
+ ansible.builtin.apt:
update_cache: true
cache_valid_time: 3600
when:
@@ -11,21 +11,21 @@
- calibration-inst-prerequisites
- name: Inst - Prerequisites
- package:
+ ansible.builtin.package:
name: "{{ packages | flatten(levels=1) }}"
state: latest
tags:
- calibration-inst-prerequisites
- name: Check CPU Power States
- shell: "lscpu"
+ ansible.builtin.shell: "lscpu"
register: current_lscpu
changed_when: false
tags:
- check-cpu-frequency
- name: Check CPU Power States
- assert:
+ 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!"
@@ -34,7 +34,7 @@
- check-cpu-frequency
- name: Check Kernel Parameters
- assert:
+ ansible.builtin.assert:
that:
- item in ansible_cmdline
fail_msg: "Kernel parameters!"
@@ -46,7 +46,7 @@
- check-kernel-params
- name: Check Kernel Version
- assert:
+ ansible.builtin.assert:
that:
- ansible_kernel not in kernel_version_by_distro_by_arch
fail_msg: "Kernel version!"
@@ -55,14 +55,14 @@
- check-kernel-version
- name: Spectre Meltdown Checker Status
- stat:
+ ansible.builtin.stat:
path: "/opt/spectre-meltdown-checker.sh"
register: spectre_meltdown_status
tags:
- check-spectre-meltdown
- name: Get Spectre Meltdown Checker
- get_url:
+ ansible.builtin.get_url:
url: "https://meltdown.ovh"
dest: "/opt/spectre-meltdown-checker.sh"
mode: "744"
@@ -72,7 +72,7 @@
- check-spectre-meltdown
- name: Run Spectre Meltdown Checker
- shell: "/opt/spectre-meltdown-checker.sh --no-color --sysfs-only || true"
+ ansible.builtin.shell: "/opt/spectre-meltdown-checker.sh --no-color --sysfs-only || true"
ignore_errors: true
register: spectre_meltdown_sync
tags:
diff --git a/fdio.infra.ansible/roles/calibration/tasks/x86_64.yaml b/fdio.infra.ansible/roles/calibration/tasks/x86_64.yaml
index cb98c00c51..2d28f92ae3 100644
--- a/fdio.infra.ansible/roles/calibration/tasks/x86_64.yaml
+++ b/fdio.infra.ansible/roles/calibration/tasks/x86_64.yaml
@@ -2,19 +2,19 @@
# file: roles/calibration/tasks/x86_64.yaml
- name: Calibration - Clone PMA Tool
- git:
+ ansible.builtin.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"
+ ansible.builtin.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"
+ ansible.builtin.shell: "{{ pma_directory }}/jitter/jitter -c {{ jitter_core }} -i {{ jitter_iterations }} -f"
become: true
async: 60
poll: 0
@@ -24,12 +24,12 @@
- check-jitter-tool
- name: Check sync status
- async_status:
+ ansible.builtin.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
+- ansible.builtin.debug: var=jitter_poll_results.stdout_lines
tags:
- check-jitter-tool
diff --git a/fdio.infra.ansible/roles/cleanup/tasks/clean_images.yaml b/fdio.infra.ansible/roles/cleanup/tasks/clean_images.yaml
index 7558ee0fd7..76704ab50d 100644
--- a/fdio.infra.ansible/roles/cleanup/tasks/clean_images.yaml
+++ b/fdio.infra.ansible/roles/cleanup/tasks/clean_images.yaml
@@ -1,10 +1,10 @@
---
-# file: roles/cleanup/tasks/clean_images.yaml
+# file: tasks/clean_images.yaml
- name: Clean Docker Images
block:
- name: Clean Images - Prefetch Docker Images
- cron:
+ ansible.builtin.cron:
name: "Prefetch docker image {{ item }}"
minute: "10"
hour: "7"
@@ -15,7 +15,7 @@
- prefetch-docker-images
- name: Clean Images - Remove Dangling Docker Images
- cron:
+ ansible.builtin.cron:
name: "Remove dangling docker images"
minute: "10"
hour: "5"
diff --git a/fdio.infra.ansible/roles/cleanup/tasks/kill_containers.yaml b/fdio.infra.ansible/roles/cleanup/tasks/kill_containers.yaml
index 750572feb9..dc739eb954 100644
--- a/fdio.infra.ansible/roles/cleanup/tasks/kill_containers.yaml
+++ b/fdio.infra.ansible/roles/cleanup/tasks/kill_containers.yaml
@@ -1,38 +1,38 @@
---
-# file: roles/cleanup/tasks/kill_containers.yaml
+# file: tasks/kill_containers.yaml
- name: Kill Docker Containers
block:
- - name: Kill Container - Get Running Docker Containers
- shell: "docker ps -aq"
+ - 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: Kill Container - Remove All Docker Containers
- shell: "docker rm --force {{ item }}"
+ - 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
- systemd:
+ ansible.builtin.systemd:
name: "docker"
state: "restarted"
- name: Kill LXC Containers
block:
- - name: Kill Container - Get Running LXC Containers
- shell: "lxc-ls"
+ - name: Get Running LXC Containers
+ ansible.builtin.shell: "lxc-ls"
register: running_containers
changed_when: false
tags:
- kill-containers
- - name: Kill Container - Remove All LXC Containers
- shell: "lxc-destroy --force -n {{ item }}"
+ - name: Remove All LXC Containers
+ ansible.builtin.shell: "lxc-destroy --force -n {{ item }}"
with_items: "{{ running_containers.stdout_lines }}"
tags:
- kill-containers
diff --git a/fdio.infra.ansible/roles/cleanup/tasks/kill_process.yaml b/fdio.infra.ansible/roles/cleanup/tasks/kill_process.yaml
index d6c6ed5118..9ab98a8e57 100644
--- a/fdio.infra.ansible/roles/cleanup/tasks/kill_process.yaml
+++ b/fdio.infra.ansible/roles/cleanup/tasks/kill_process.yaml
@@ -1,10 +1,10 @@
---
-# file: roles/cleanup/tasks/kill_process.yaml
+# file: tasks/kill_process.yaml
- name: Kill Process - {{ process }}
block:
- name: Get PID Of {{ process }}
- shell: "ps -ef | grep -v grep | grep -w {{ process }} | awk '{print $2}'"
+ ansible.builtin.shell: "ps -ef | grep -v grep | grep -w {{ process }} | awk '{print $2}'"
when:
- process is defined and process != ""
register: running_processes
@@ -12,8 +12,9 @@
- kill-process
- name: Safe Kill {{ process }}
- shell: "kill {{ item }}"
+ ansible.builtin.shell: "kill {{ item }}"
with_items: "{{ running_processes.stdout_lines }}"
+ ignore_errors: true
tags:
- kill-process
@@ -27,7 +28,7 @@
- kill-process
- name: Kill Process - Force Kill {{ process }}
- shell: "kill -9 {{ item }}"
+ ansible.builtin.shell: "kill -9 {{ item }}"
with_items: "{{ killed_processes.results | select('failed') | map(attribute='item') | list }}"
tags:
- kill-process
diff --git a/fdio.infra.ansible/roles/cleanup/tasks/main.yaml b/fdio.infra.ansible/roles/cleanup/tasks/main.yaml
index eeda0139b3..c97b9c5d7e 100644
--- a/fdio.infra.ansible/roles/cleanup/tasks/main.yaml
+++ b/fdio.infra.ansible/roles/cleanup/tasks/main.yaml
@@ -1,22 +1,5 @@
---
-# 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
-# - Docker image cleanup
-# - nomad
-# - Docker image cleanup
+# file: tasks/main.yaml
- name: tg specific
include_tasks: tg.yaml
diff --git a/fdio.infra.ansible/roles/cleanup/tasks/nomad.yaml b/fdio.infra.ansible/roles/cleanup/tasks/nomad.yaml
index 3d8f322840..086a4eff7d 100644
--- a/fdio.infra.ansible/roles/cleanup/tasks/nomad.yaml
+++ b/fdio.infra.ansible/roles/cleanup/tasks/nomad.yaml
@@ -1,5 +1,5 @@
---
-# file: roles/cleanup/tasks/nomad.yaml
+# file: tasks/nomad.yaml
- name: Host Cleanup
block:
@@ -8,15 +8,11 @@
vars:
images_to_prefetch_by_arch:
aarch64:
+ - "fdiotools/builder-ubuntu2204:prod-aarch64"
- "fdiotools/builder-ubuntu2004:prod-aarch64"
- - "fdiotools/builder-ubuntu1804:prod-aarch64"
- - "fdiotools/builder-centos8:prod-aarch64"
x86_64:
+ - "fdiotools/builder-ubuntu2204:prod-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"
+ - "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
index 484868e595..652729bc30 100644
--- a/fdio.infra.ansible/roles/cleanup/tasks/remove_package.yaml
+++ b/fdio.infra.ansible/roles/cleanup/tasks/remove_package.yaml
@@ -1,15 +1,15 @@
---
-# file: roles/cleanup/tasks/remove_package.yaml
+# file: tasks/remove_package.yaml
-- name: Remove Package - Fix Corrupted APT
- shell: "dpkg --configure -a"
+- name: Fix Corrupted APT
+ ansible.builtin.shell: "dpkg --configure -a"
when:
- ansible_distribution == 'Ubuntu'
tags:
- remove-package
- name: Remove Package - {{ package }}
- apt:
+ ansible.builtin.apt:
name: "{{ package }}"
force: true
purge: true
@@ -18,4 +18,4 @@
when:
- ansible_distribution == 'Ubuntu'
tags:
- - remove-package
+ - 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
index 396e442b4e..22bf596369 100644
--- a/fdio.infra.ansible/roles/cleanup/tasks/sut.yaml
+++ b/fdio.infra.ansible/roles/cleanup/tasks/sut.yaml
@@ -1,5 +1,5 @@
---
-# file: roles/cleanup/tasks/sut.yaml
+# file: tasks/sut.yaml
- name: Host Cleanup
block:
@@ -38,6 +38,13 @@
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:
@@ -46,7 +53,7 @@
- kill-process
- name: Find File Or Dir - Core Zip File
- find:
+ ansible.builtin.find:
paths: "/tmp/"
patterns: "*tar.lzo.lrz.xz*"
register: files_to_delete
@@ -54,7 +61,7 @@
- remove-file-dir
- name: Remove File Or Dir - Core Zip File
- file:
+ ansible.builtin.file:
path: "{{ item.path }}"
state: absent
with_items: "{{ files_to_delete.files }}"
@@ -62,7 +69,7 @@
- remove-file-dir
- name: Find File Or Dir - Core Dump File
- find:
+ ansible.builtin.find:
paths: "/tmp/"
patterns: "*core*"
register: files_to_delete
@@ -70,7 +77,7 @@
- remove-file-dir
- name: Remove File Or Dir - Core Dump File
- file:
+ ansible.builtin.file:
path: "{{ item.path }}"
state: absent
with_items: "{{ files_to_delete.files }}"
diff --git a/fdio.infra.ansible/roles/cleanup/tasks/tg.yaml b/fdio.infra.ansible/roles/cleanup/tasks/tg.yaml
index fa2d2d2819..8c0162df2c 100644
--- a/fdio.infra.ansible/roles/cleanup/tasks/tg.yaml
+++ b/fdio.infra.ansible/roles/cleanup/tasks/tg.yaml
@@ -1,5 +1,5 @@
---
-# file: roles/cleanup/tasks/tg.yaml
+# file: tasks/tg.yaml
- name: Host Cleanup
block:
diff --git a/fdio.infra.ansible/roles/cleanup/tasks/vpp_device.yaml b/fdio.infra.ansible/roles/cleanup/tasks/vpp_device.yaml
index 23d001fe6f..c97fa0cde5 100644
--- a/fdio.infra.ansible/roles/cleanup/tasks/vpp_device.yaml
+++ b/fdio.infra.ansible/roles/cleanup/tasks/vpp_device.yaml
@@ -1,10 +1,10 @@
---
-# file: roles/cleanup/tasks/vpp_device.yaml
+# file: tasks/vpp_device.yaml
- name: Host Cleanup
block:
- name: Reset vpp_device Binary
- copy:
+ ansible.builtin.copy:
src: "files/reset_vppdevice.sh"
dest: "/usr/local/bin"
owner: "root"
diff --git a/fdio.infra.ansible/roles/common/defaults/main.yaml b/fdio.infra.ansible/roles/common/defaults/main.yaml
index 77a9c83740..9ded8fcba9 100644
--- a/fdio.infra.ansible/roles/common/defaults/main.yaml
+++ b/fdio.infra.ansible/roles/common/defaults/main.yaml
@@ -19,35 +19,10 @@ packages_base:
packages_by_distro:
ubuntu:
- focal:
- - "bpfcc-tools"
- - "build-essential"
- - "libbpfcc"
- - "libbpfcc-dev"
- - "libclang1-9"
- - "libllvm9"
- - "libpcap-dev"
- - "net-tools"
- - "python3-all"
- - "python3-apt"
- - "python3-bpfcc"
- - "python3-cffi"
- - "python3-cffi-backend"
- - "python3-dev"
- - "python3-pip"
- - "python3-pyelftools"
- - "python3-setuptools"
jammy:
- "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"
diff --git a/fdio.infra.ansible/roles/common/handlers/main.yaml b/fdio.infra.ansible/roles/common/handlers/main.yaml
index bb317e8067..0a4944b4ca 100644
--- a/fdio.infra.ansible/roles/common/handlers/main.yaml
+++ b/fdio.infra.ansible/roles/common/handlers/main.yaml
@@ -2,7 +2,7 @@
# file: roles/common/handlers/main.yaml
- name: Reboot Server
- reboot:
+ 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
index 7418709c99..e47a1fc7a8 100644
--- a/fdio.infra.ansible/roles/common/tasks/main.yaml
+++ b/fdio.infra.ansible/roles/common/tasks/main.yaml
@@ -2,7 +2,7 @@
# file: roles/common/tasks/main.yaml
- name: Conf - Add permanent proxy settings
- lineinfile:
+ ansible.builtin.lineinfile:
path: "/etc/environment"
state: "present"
line: "{{ item.key }}={{ item.value }}"
@@ -12,7 +12,7 @@
- common-conf-proxy
- name: Inst - Update package cache (apt)
- apt:
+ ansible.builtin.apt:
update_cache: true
cache_valid_time: 3600
when:
@@ -21,21 +21,22 @@
- common-inst-prerequisites
- name: Inst - Prerequisites
- package:
+ ansible.builtin.package:
name: "{{ packages | flatten(levels=1) }}"
- state: latest
+ state: "latest"
tags:
- common-inst-prerequisites
- name: Inst - Meson (DPDK)
- pip:
+ ansible.builtin.pip:
name:
- - "meson==0.49.2"
+ - "meson==0.64.1"
+ state: "forcereinstall"
tags:
- common-inst-meson
- name: Conf - sudoers admin
- lineinfile:
+ ansible.builtin.lineinfile:
path: "/etc/sudoers"
state: "present"
regexp: "^%admin ALL="
@@ -45,7 +46,7 @@
- common-conf-sudoers
- name: Conf - sudoers nopasswd
- lineinfile:
+ ansible.builtin.lineinfile:
path: "/etc/sudoers"
state: "present"
regexp: "^%sudo"
diff --git a/fdio.infra.ansible/roles/consul/defaults/main.yaml b/fdio.infra.ansible/roles/consul/defaults/main.yaml
index 503857de92..9ea38efb56 100644
--- a/fdio.infra.ansible/roles/consul/defaults/main.yaml
+++ b/fdio.infra.ansible/roles/consul/defaults/main.yaml
@@ -1,5 +1,5 @@
---
-# file: roles/consul/defaults/main.yaml
+# file: defaults/main.yaml
# Inst - Prerequisites.
packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}"
@@ -24,7 +24,7 @@ consul_architecture_map:
32-bit: "386"
64-bit: "amd64"
consul_architecture: "{{ consul_architecture_map[ansible_architecture] }}"
-consul_version: "1.12.2"
+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
@@ -47,41 +47,32 @@ consul_service_mgr: ""
# Conf - User and group.
consul_group: "consul"
-consul_group_state: "present"
consul_user: "consul"
-consul_user_state: "present"
# 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_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_verify_incoming: false
-consul_verify_outgoing: false
-consul_vefify_server_hostname: false
-consul_allow_tls: false
-consul_ui_config:
- enabled: true
consul_recursors:
- 1.1.1.1
- 8.8.8.8
-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_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
diff --git a/fdio.infra.ansible/roles/consul/handlers/main.yaml b/fdio.infra.ansible/roles/consul/handlers/main.yaml
index a88ae45d27..a9de4d1439 100644
--- a/fdio.infra.ansible/roles/consul/handlers/main.yaml
+++ b/fdio.infra.ansible/roles/consul/handlers/main.yaml
@@ -1,5 +1,5 @@
---
-# file roles/consul/handlers/main.yaml
+# file handlers/main.yaml
- name: Restart Nomad
ansible.builtin.systemd:
diff --git a/fdio.infra.ansible/roles/consul/meta/main.yaml b/fdio.infra.ansible/roles/consul/meta/main.yaml
index bc6d6a1c57..673c3b738d 100644
--- a/fdio.infra.ansible/roles/consul/meta/main.yaml
+++ b/fdio.infra.ansible/roles/consul/meta/main.yaml
@@ -1,18 +1,21 @@
---
-# file: roles/consul/meta/main.yaml
+# file: meta/main.yaml
dependencies: []
+
galaxy_info:
- role_name: consul
- author: fd.io
- description: Hashicrop Consul.
- company: none
+ role_name: "consul"
+ author: "pmikus"
+ description: "Hashicorp Consul."
+ company: "none"
license: "license (Apache)"
- min_ansible_version: 2.9
+ min_ansible_version: "2.9"
platforms:
- - name: Ubuntu
+ - name: "Ubuntu"
versions:
- - focal
- - jammy
+ - "focal"
+ - "jammy"
+ - "kinetic"
galaxy_tags:
- - consul
+ - "consul"
+ - "hashicorp"
diff --git a/fdio.infra.ansible/roles/consul/tasks/main.yaml b/fdio.infra.ansible/roles/consul/tasks/main.yaml
index 1d6bcc0b0b..6dd430754b 100644
--- a/fdio.infra.ansible/roles/consul/tasks/main.yaml
+++ b/fdio.infra.ansible/roles/consul/tasks/main.yaml
@@ -1,16 +1,16 @@
---
-# file: roles/consul/tasks/main.yaml
+# file: tasks/main.yaml
-- name: Inst - Update Repositories Cache
- apt:
+- name: Update Repositories Cache
+ ansible.builtin.apt:
update_cache: true
when:
- ansible_os_family == 'Debian'
tags:
- consul-inst-package
-- name: Inst - Dependencies
- apt:
+- name: Dependencies
+ ansible.builtin.apt:
name: "{{ packages | flatten(levels=1) }}"
state: "present"
cache_valid_time: 3600
@@ -20,31 +20,31 @@
tags:
- consul-inst-dependencies
-- name: Conf - Add Consul Group
- group:
+- name: Add Consul Group
+ ansible.builtin.group:
name: "{{ consul_group }}"
- state: "{{ consul_group_state }}"
+ state: "present"
tags:
- consul-conf-user
-- name: Conf - Add Consul user
- user:
+- name: Add Consul user
+ ansible.builtin.user:
name: "{{ consul_user }}"
group: "{{ consul_group }}"
- state: "{{ consul_user_state }}"
+ state: "present"
system: true
tags:
- consul-conf-user
-- name: Inst - Download Consul
- get_url:
+- name: Download Consul
+ ansible.builtin.get_url:
url: "{{ consul_zip_url }}"
dest: "{{ consul_inst_dir }}/{{ consul_pkg }}"
tags:
- consul-inst-package
-- name: Inst - Clean Consul
- file:
+- name: Clean Consul
+ ansible.builtin.file:
path: "{{ consul_inst_dir }}/consul"
state: "absent"
when:
@@ -52,16 +52,16 @@
tags:
- consul-inst-package
-- name: Inst - Unarchive Consul
- unarchive:
+- name: Unarchive Consul
+ ansible.builtin.unarchive:
src: "{{ consul_inst_dir }}/{{ consul_pkg }}"
dest: "{{ consul_inst_dir }}/"
remote_src: true
tags:
- consul-inst-package
-- name: Inst - Consul
- copy:
+- name: Consul
+ ansible.builtin.copy:
src: "{{ consul_inst_dir }}/consul"
dest: "{{ consul_bin_dir }}"
owner: "{{ consul_user }}"
@@ -72,78 +72,38 @@
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
+- 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: Conf - Base Configuration
- template:
- src: base.hcl.j2
- dest: "{{ consul_config_dir }}/base.hcl"
+- 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: 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 - Telemetry Configuration
- template:
- src: telemetry.hcl.j2
- dest: "{{ consul_config_dir }}/telemetry.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:
+- name: Copy Certificates And Keys
+ ansible.builtin.copy:
content: "{{ item.src }}"
dest: "{{ item.dest }}"
owner: "{{ consul_user }}"
@@ -156,8 +116,8 @@
tags:
- consul-conf
-- name: Conf - Stop Systemd-resolved
- systemd:
+- name: Stop Systemd-resolved
+ ansible.builtin.systemd:
daemon_reload: true
enabled: false
name: "systemd-resolved"
@@ -167,8 +127,8 @@
tags:
- consul-conf
-- name: Conf - System.d Script
- template:
+- name: System.d Script
+ ansible.builtin.template:
src: "consul_systemd.service.j2"
dest: "/lib/systemd/system/consul.service"
owner: "root"
@@ -176,11 +136,10 @@
mode: 0644
notify:
- "Restart Consul"
- - "Restart Nomad"
when:
- consul_service_mgr == "systemd"
tags:
- consul-conf
-- name: Meta - Flush handlers
- meta: flush_handlers
+- name: Flush handlers
+ ansible.builtin.meta: flush_handlers
diff --git a/fdio.infra.ansible/roles/consul/templates/ports.hcl.j2 b/fdio.infra.ansible/roles/consul/templates/ports.hcl.j2
index a658060ce8..02932bf6dc 100644
--- a/fdio.infra.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/services.json.j2 b/fdio.infra.ansible/roles/consul/templates/services.json.j2
deleted file mode 100644
index 3245ba92a4..0000000000
--- a/fdio.infra.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/fdio.infra.ansible/roles/consul/vars/main.yaml b/fdio.infra.ansible/roles/consul/vars/main.yaml
index b46333a7a7..5d813dffc7 100644
--- a/fdio.infra.ansible/roles/consul/vars/main.yaml
+++ b/fdio.infra.ansible/roles/consul/vars/main.yaml
@@ -1,5 +1,5 @@
---
-# file: roles/consul/vars/main.yaml
+# 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/csit_sut_image/files/Dockerfile b/fdio.infra.ansible/roles/csit_sut_image/files/Dockerfile
deleted file mode 100644
index a955799b63..0000000000
--- a/fdio.infra.ansible/roles/csit_sut_image/files/Dockerfile
+++ /dev/null
@@ -1,166 +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.
-
-FROM ubuntu:20.04
-LABEL Description="CSIT vpp-device ubuntu 20.04 SUT image"
-LABEL Version="master"
-
-# 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 \
- cloud-init \
- cmake \
- curl \
- dkms \
- gdb \
- gfortran \
- libapr1 \
- libblas-dev \
- libffi-dev \
- liblapack-dev \
- libmbedcrypto3 \
- libmbedtls12 \
- libmbedx509-0 \
- libnuma1 \
- libnuma-dev \
- libpcap-dev \
- libpixman-1-dev \
- libssl-dev \
- locales \
- net-tools \
- openssh-server \
- pciutils \
- python3-all \
- python3-apt \
- python3-cffi \
- python3-cffi-backend \
- python3-dev \
- python3-pip \
- python3-setuptools \
- python3-virtualenv \
- qemu-system \
- rsyslog \
- socat \
- software-properties-common \
- strongswan \
- ssh \
- sshpass \
- sudo \
- supervisor \
- tar \
- tcpdump \
- unzip \
- vim \
- wget \
- zlib1g-dev \
- && 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
-
-# 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.10.7 \
- 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 \
- ply==3.11 \
- 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.2 \
- 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.5.4
-
-# 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/fdio.infra.ansible/roles/csit_sut_image/tasks/main.yaml b/fdio.infra.ansible/roles/csit_sut_image/tasks/main.yaml
deleted file mode 100644
index 9dddbe435b..0000000000
--- a/fdio.infra.ansible/roles/csit_sut_image/tasks/main.yaml
+++ /dev/null
@@ -1,30 +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-ubuntu2004:local ."
- args:
- chdir: "/opt/csit-sut"
- tags:
- - csit-sut-image
diff --git a/fdio.infra.ansible/roles/docker/defaults/main.yaml b/fdio.infra.ansible/roles/docker/defaults/main.yaml
index e493d1c9b5..bf97b4a192 100644
--- a/fdio.infra.ansible/roles/docker/defaults/main.yaml
+++ b/fdio.infra.ansible/roles/docker/defaults/main.yaml
@@ -10,7 +10,7 @@ docker_package_state: latest
docker_service_state: started
docker_service_enabled: true
docker_restart_handler_state: restarted
-docker_service_mgr: ""
+docker_service_mgr: "systemd"
# Used only for Debian/Ubuntu.
docker_apt_release_channel: "stable"
diff --git a/fdio.infra.ansible/roles/docker/meta/main.yaml b/fdio.infra.ansible/roles/docker/meta/main.yaml
index ac6c0a9980..7bef656eb5 100644
--- a/fdio.infra.ansible/roles/docker/meta/main.yaml
+++ b/fdio.infra.ansible/roles/docker/meta/main.yaml
@@ -13,7 +13,6 @@ galaxy_info:
platforms:
- name: Ubuntu
versions:
- - focal
- jammy
galaxy_tags:
- docker
diff --git a/fdio.infra.ansible/roles/docker/tasks/focal.yaml b/fdio.infra.ansible/roles/docker/tasks/focal.yaml
deleted file mode 100644
index 27fee6285c..0000000000
--- a/fdio.infra.ansible/roles/docker/tasks/focal.yaml
+++ /dev/null
@@ -1,30 +0,0 @@
----
-# file: roles/docker/tasks/ubuntu_focal.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_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/fdio.infra.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/fdio.infra.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
index b9602bc2d2..d94e9ac91f 100644
--- a/fdio.infra.ansible/roles/dpdk/defaults/main.yaml
+++ b/fdio.infra.ansible/roles/dpdk/defaults/main.yaml
@@ -1,5 +1,5 @@
---
-# file: roles/dpdk/defaults/main.yaml
+# file: defaults/main.yaml
packages: "{{ packages_base + packages_by_distro[ansible_distribution|lower][ansible_distribution_release] + packages_by_arch[ansible_machine] }}"
@@ -8,9 +8,6 @@ packages_base:
packages_by_distro:
ubuntu:
- focal:
- - "build-essential"
- - "libnuma-dev"
jammy:
- "build-essential"
- "libnuma-dev"
@@ -23,5 +20,5 @@ packages_by_arch:
dpdk_target_dir: "/opt"
dpdk_version:
- - "22.03"
+ - "23.11"
dpdk_url: "https://fast.dpdk.org/rel"
diff --git a/fdio.infra.ansible/roles/dpdk/meta/main.yaml b/fdio.infra.ansible/roles/dpdk/meta/main.yaml
index e52ecb87c1..3ca2918d36 100644
--- a/fdio.infra.ansible/roles/dpdk/meta/main.yaml
+++ b/fdio.infra.ansible/roles/dpdk/meta/main.yaml
@@ -1,24 +1,18 @@
---
-# file: roles/dpdk/meta/main.yaml
-
-# desc: Install DPDK from stable branch and configure service.
-# inst: DPDK
-# conf: ?
-# info: 1.0 - added role
+# file: meta/main.yaml
dependencies: []
galaxy_info:
- role_name: dpdk
- author: fd.io
- description: DPDK for Linux.
- company: none
+ role_name: "dpdk"
+ author: "fd.io"
+ description: "DPDK for Linux."
+ company: "none"
license: "license (Apache)"
min_ansible_version: 2.9
platforms:
- - name: Ubuntu
+ - name: "Ubuntu"
versions:
- - focal
- - jammy
+ - "jammy"
galaxy_tags:
- - dpdk
+ - "dpdk"
diff --git a/fdio.infra.ansible/roles/dpdk/molecule/default/molecule.yml b/fdio.infra.ansible/roles/dpdk/molecule/default/molecule.yml
index 1910c4780c..060f842db7 100644
--- a/fdio.infra.ansible/roles/dpdk/molecule/default/molecule.yml
+++ b/fdio.infra.ansible/roles/dpdk/molecule/default/molecule.yml
@@ -9,8 +9,8 @@ lint: |
yamllint .
ansible-lint
platforms:
- - name: ${DISTRO:-ubuntu-20.04}
- image: "pmikus/docker-${MOLECULE_DISTRO:-ubuntu-20.04}-ansible:latest"
+ - 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
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
index 9052baff74..4f6c9ec9f2 100644
--- a/fdio.infra.ansible/roles/dpdk/tasks/main.yaml
+++ b/fdio.infra.ansible/roles/dpdk/tasks/main.yaml
@@ -1,8 +1,8 @@
---
-# file: roles/dpdk/tasks/main.yaml
+# file: tasks/main.yaml
-- name: Inst - Update Package Cache (APT)
- apt:
+- name: Update Package Cache (APT)
+ ansible.builtin.apt:
update_cache: true
cache_valid_time: 3600
when:
@@ -10,53 +10,15 @@
tags:
- dpdk-inst-prerequisites
-- name: Inst - Prerequisites
- package:
+- name: Prerequisites
+ ansible.builtin.package:
name: "{{ packages | flatten(levels=1) }}"
state: "latest"
tags:
- dpdk-inst-prerequisites
-- name: Inst - Download Release Archive
- get_url:
- url: "{{ dpdk_url }}/dpdk-{{ item }}.tar.xz"
- dest: "{{ dpdk_target_dir }}/dpdk-{{ item }}.tar.xz"
- mode: 0644
+- name: Multiple DPDK Versions
+ include_tasks: deploy_block.yaml
loop: "{{ dpdk_version }}"
- register: "dpdk_downloaded"
- tags:
- - dpdk-inst
-
-- name: Inst - 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:
- - dpdk-inst
-
-- name: Inst - Compile Release I
- command: "meson -Dexamples=l3fwd build"
- args:
- chdir: "{{ dpdk_target_dir }}/dpdk-{{ item }}"
- environment:
- CFLAGS: "-DRTE_LIBRTE_I40E_16BYTE_RX_DESC=y"
- loop: "{{ dpdk_version }}"
- register: "dpdk_compiled"
- tags:
- - dpdk-inst
-
-- name: Inst - Compile Release II
- command: "ninja -C build"
- args:
- chdir: "{{ dpdk_target_dir }}/dpdk-{{ item }}"
- environment:
- CFLAGS: "-DRTE_LIBRTE_I40E_16BYTE_RX_DESC=y"
- loop: "{{ dpdk_version }}"
- register: "dpdk_compiled"
tags:
- dpdk-inst
diff --git a/fdio.infra.ansible/roles/intel/defaults/main.yaml b/fdio.infra.ansible/roles/intel/defaults/main.yaml
index 7f35be3d89..9a3c5c0f0c 100644
--- a/fdio.infra.ansible/roles/intel/defaults/main.yaml
+++ b/fdio.infra.ansible/roles/intel/defaults/main.yaml
@@ -1,5 +1,5 @@
---
-# file: roles/intel/defaults/main.yaml
+# file: defaults/main.yaml
packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}"
@@ -8,7 +8,34 @@ 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:
@@ -21,43 +48,64 @@ intel_download_url: "https://downloadmirror.intel.com"
intel_extract_dir: "/opt"
intel_700_compatibility_matrix:
- dpdk21.02:
- # https://doc.dpdk.org/guides/rel_notes/release_21_02.html
- i40e: "2.14.13"
- iavf: "4.1.1"
- nvm: "8.00"
- dpdk22.03:
- # https://doc.dpdk.org/guides/rel_notes/release_22_03.html
- i40e: "2.17.15"
- iavf: "4.3.19"
- nvm: "8.30"
+ 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:
- dpdk21.02:
- # https://doc.dpdk.org/guides/rel_notes/release_21_02.html
- ice: "1.4.11"
- ddp: "1.3.28.0"
- iavf: "4.1.1"
- nvm: "2.40"
dpdk22.03:
- # https://doc.dpdk.org/guides/rel_notes/release_22_03.html
- ice: "1.8.3"
- ddp: "1.3.35.0"
- iavf: "4.3.19"
- nvm: "3.20"
+ # 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.14.13": "i40e%20stable/2.14.13/i40e-2.14.13.tar.gz/download"
- "2.17.15": "i40e%20stable/2.17.15/i40e-2.17.15.tar.gz/download"
+ "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.4.11": "ice%20stable/1.4.11/ice-1.4.11.tar.gz/download"
- "1.8.3": "ice%20stable/1.8.3/ice-1.8.3.tar.gz/download"
+ "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.1.1": "iavf%20stable/4.1.1/iavf-4.1.1.tar.gz/download"
"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.28.0": "30467/eng/800%20series%20comms%20binary%20package%201.3.28.0.zip"
- "1.3.35.0": "727568/ice_comms-1.3.35.0.zip"
+ "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
index 2299a3b1b8..8b069bf9b2 100644
--- a/fdio.infra.ansible/roles/intel/tasks/i40e.yaml
+++ b/fdio.infra.ansible/roles/intel/tasks/i40e.yaml
@@ -1,8 +1,8 @@
---
-# file: roles/intel/tasks/i40e.yaml
+# file: tasks/i40e.yaml
-- name: Inst - Get i40e Network Adapter Driver
- uri:
+- name: Get i40e Network Adapter Driver
+ ansible.builtin.uri:
url: "{{ intel_sourceforge_download_url }}/{{ intel_i40e_url[i40e] }}"
follow_redirects: "all"
force: true
@@ -12,8 +12,8 @@
tags:
- intel-inst
-- name: Inst - Extract i40e Network Adapter Driver
- unarchive:
+- name: Extract i40e Network Adapter Driver
+ ansible.builtin.unarchive:
remote_src: true
src: "{{ intel_extract_dir }}/i40e-{{ i40e }}.tar.gz"
dest: "{{ intel_extract_dir }}/"
@@ -22,14 +22,14 @@
tags:
- intel-inst
-- name: Inst - i40e Network Adapter Driver
- command: "{{ item }}"
+- 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 -r i40e"
- "modprobe i40e"
when:
- intel_driver_extracted
diff --git a/fdio.infra.ansible/roles/intel/tasks/iavf.yaml b/fdio.infra.ansible/roles/intel/tasks/iavf.yaml
index 44040cfd7e..127e31bee2 100644
--- a/fdio.infra.ansible/roles/intel/tasks/iavf.yaml
+++ b/fdio.infra.ansible/roles/intel/tasks/iavf.yaml
@@ -1,8 +1,8 @@
---
-# file: roles/intel/tasks/iavf.yaml
+# file: tasks/iavf.yaml
-- name: Inst - Get iavf Network Adapter Driver
- uri:
+- name: Get iavf Network Adapter Driver
+ ansible.builtin.uri:
url: "{{ intel_sourceforge_download_url }}/{{ intel_iavf_url[iavf] }}"
follow_redirects: "all"
force: true
@@ -12,8 +12,8 @@
tags:
- intel-inst
-- name: Inst - Extract iavf Network Adapter Driver
- unarchive:
+- name: Extract iavf Network Adapter Driver
+ ansible.builtin.unarchive:
remote_src: true
src: "{{ intel_extract_dir }}/iavf-{{ iavf }}.tar.gz"
dest: "{{ intel_extract_dir }}/"
@@ -22,8 +22,8 @@
tags:
- intel-inst
-- name: Inst - iavf Network Adapter Driver
- command: "{{ item }}"
+- name: Install iavf Network Adapter Driver
+ ansible.builtin.command: "{{ item }}"
args:
chdir: "{{ intel_extract_dir }}/iavf-{{ iavf }}/src"
become: true
diff --git a/fdio.infra.ansible/roles/intel/tasks/ice.yaml b/fdio.infra.ansible/roles/intel/tasks/ice.yaml
index 2386c8390c..c773a65a34 100644
--- a/fdio.infra.ansible/roles/intel/tasks/ice.yaml
+++ b/fdio.infra.ansible/roles/intel/tasks/ice.yaml
@@ -1,8 +1,8 @@
---
-# file: roles/intel/tasks/ice.yaml
+# file: tasks/ice.yaml
-- name: Inst - Get ice Network Adapter Driver
- uri:
+- name: Get ice Network Adapter Driver
+ ansible.builtin.uri:
url: "{{ intel_sourceforge_download_url }}/{{ intel_ice_url[ice] }}"
follow_redirects: "all"
force: true
@@ -12,8 +12,8 @@
tags:
- intel-inst
-- name: Inst - Extract ice Network Adapter Driver
- unarchive:
+- name: Extract ice Network Adapter Driver
+ ansible.builtin.unarchive:
remote_src: true
src: "{{ intel_extract_dir }}/ice-{{ ice }}.tar.gz"
dest: "{{ intel_extract_dir }}/"
@@ -22,30 +22,30 @@
tags:
- intel-inst
-- name: Inst - ice Network Adapter Driver
- command: "{{ item }}"
+- 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 -r ice"
- "modprobe ice"
when:
- intel_driver_extracted
tags:
- intel-inst
-- name: Inst - Get Dynamic Device Personalization (DDP) Package
- get_url:
+- 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: Inst - Extract Dynamic Device Personalization (DDP) Package
- unarchive:
+- 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 }}/"
@@ -54,17 +54,17 @@
tags:
- intel-inst
-#- name: Inst - Extract Dynamic Device Personalization (DDP) Package
-# unarchive:
-# remote_src: true
-# src: "{{ intel_extract_dir }}/ice_comms-{{ ddp }}.zip"
-# dest: "{{ intel_extract_dir }}/"
-# register: intel_driver_extracted
-# tags:
-# - intel-inst
-#
-- name: Inst - Copy Dynamic Device Personalization (DDP) Package
- copy:
+- 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
@@ -72,16 +72,16 @@
tags:
- intel-inst
-- name: Inst - Link Dynamic Device Personalization (DDP) Package
- file:
+- 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: Inst - Extract Dynamic Device Personalization (DDP) Package (cleanup)
- file:
+- name: Extract Dynamic Device Personalization (DDP) Package (cleanup)
+ ansible.builtin.file:
path: "{{ item }}"
state: absent
with_items:
diff --git a/fdio.infra.ansible/roles/intel/tasks/main.yaml b/fdio.infra.ansible/roles/intel/tasks/main.yaml
index 62d8d90499..d7598deca7 100644
--- a/fdio.infra.ansible/roles/intel/tasks/main.yaml
+++ b/fdio.infra.ansible/roles/intel/tasks/main.yaml
@@ -1,8 +1,8 @@
---
-# file: roles/intel/tasks/main.yaml
+# file: tasks/main.yaml
-- name: Inst - Update Package Cache (APT)
- apt:
+- name: Update Package Cache (APT)
+ ansible.builtin.apt:
update_cache: true
cache_valid_time: 3600
when:
@@ -10,31 +10,55 @@
tags:
- intel-inst-drivers
-- name: Inst - Prerequisites
- package:
+- name: Install Prerequisites
+ ansible.builtin.package:
name: "{{ packages | flatten(levels=1) }}"
state: latest
tags:
- intel-inst-drivers
-- name: Inst - Check Presence of Intel Ethernet 700 Series
- shell: "lspci -d 8086:1583; lspci -d 8086:1585; lspci -d 8086:1572; lspci -d 8086:158a; lspci -d 8086:158b"
+- 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: Inst - Check Presence of Intel Ethernet 800 Series
- shell: "lspci -d 8086:1592; lspci -d 8086:1891"
+- 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: Inst - Get Intel Ethernet 700 Series driver versions
- set_fact:
+- 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'] }}"
@@ -43,8 +67,8 @@
tags:
- intel-inst-drivers
-- name: Inst - Get Intel Ethernet 800 Series driver versions
- set_fact:
+- 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'] }}"
@@ -54,7 +78,24 @@
tags:
- intel-inst-drivers
-- name: Inst - Driver Intel Ethernet 700 Series
+- 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
@@ -62,7 +103,7 @@
tags:
- intel-inst-drivers
-- name: Inst - Driver Intel Ethernet 800 Series
+- name: Driver Intel Ethernet 800 Series
import_tasks: ice.yaml
when: >
intel_800_pcis.stdout_lines | length > 0 and
@@ -70,12 +111,36 @@
tags:
- intel-inst-drivers
-- name: Inst - Driver Intel iAVF
+- name: Driver Intel iAVF
import_tasks: iavf.yaml
when: >
(intel_700_pcis.stdout_lines | length > 0 and
- intel_700_matrix is defined ) or
+ 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
index f014d83eed..f757b287b7 100644
--- a/fdio.infra.ansible/roles/iperf/defaults/main.yaml
+++ b/fdio.infra.ansible/roles/iperf/defaults/main.yaml
@@ -8,12 +8,9 @@ packages_base:
packages_by_distro:
ubuntu:
- focal:
- - "build-essential"
- - "lib32z1"
jammy:
- "build-essential"
- - "lib32z1"
+ #- "lib32z1"
packages_by_arch:
aarch64:
diff --git a/fdio.infra.ansible/roles/iperf/tasks/main.yaml b/fdio.infra.ansible/roles/iperf/tasks/main.yaml
index a2b7709cef..6184ba25f1 100644
--- a/fdio.infra.ansible/roles/iperf/tasks/main.yaml
+++ b/fdio.infra.ansible/roles/iperf/tasks/main.yaml
@@ -2,7 +2,7 @@
# file: roles/iperf/tasks/main.yaml
- name: Inst - Update Package Cache (APT)
- apt:
+ ansible.builtin.apt:
update_cache: true
cache_valid_time: 3600
when:
@@ -11,14 +11,14 @@
- iperf-inst-prerequisites
- name: Inst - Prerequisites
- package:
+ ansible.builtin.package:
name: "{{ packages | flatten(levels=1) }}"
state: latest
tags:
- iperf-inst-prerequisites
- name: Get Release Archive
- get_url:
+ 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
@@ -28,7 +28,7 @@
- iperf-inst
- name: Extract Release Archive
- unarchive:
+ ansible.builtin.unarchive:
remote_src: true
src: "{{ iperf_target_dir }}/iperf-{{ item }}.tar.gz"
dest: "{{ iperf_target_dir }}/"
@@ -38,7 +38,7 @@
- iperf-inst
- name: Compile Release I
- command: "./configure"
+ ansible.builtin.command: "./configure"
args:
chdir: "{{ iperf_target_dir }}/iperf-{{ item }}/"
loop: "{{ iperf_version }}"
@@ -46,7 +46,7 @@
- iperf-inst
- name: Compile Release II
- command: "make"
+ ansible.builtin.command: "make"
args:
chdir: "{{ iperf_target_dir }}/iperf-{{ item }}/"
loop: "{{ iperf_version }}"
@@ -54,7 +54,7 @@
- iperf-inst
- name: Compile Release III
- command: "make install"
+ ansible.builtin.command: "make install"
args:
chdir: "{{ iperf_target_dir }}/iperf-{{ item }}/"
loop: "{{ iperf_version }}"
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
index 73a0caecfa..ab54aac516 100644
--- a/fdio.infra.ansible/roles/jenkins_job_health_exporter/defaults/main.yaml
+++ b/fdio.infra.ansible/roles/jenkins_job_health_exporter/defaults/main.yaml
@@ -8,22 +8,15 @@ req_timeout_sec: 30
bind_to: "0.0.0.0:9186"
last_builds: 10
jobs:
- - "vpp-csit-verify-api-crc-master-ubuntu2004-x86_64"
- - "vpp-beta-verify-master-ubuntu2004-aarch64"
- - "vpp-verify-master-centos8-aarch64"
- - "vpp-verify-master-ubuntu1804-aarch64"
- - "vpp-gcc-verify-master-ubuntu2004-x86_64"
- - "vpp-verify-master-centos8-x86_64"
- - "vpp-verify-master-debian10-x86_64"
- - "vpp-verify-master-ubuntu2004-x86_64"
- - "vpp-verify-master-ubuntu1804-x86_64"
- - "vpp-debug-verify-master-ubuntu2004-x86_64"
- - "vpp-checkstyle-verify-master-ubuntu2004-x86_64"
- - "vpp-sphinx-docs-verify-master-ubuntu1804-x86_64"
- - "vpp-docs-verify-master-ubuntu1804-x86_64"
- - "vpp-make-test-docs-verify-master-ubuntu1804-x86_64"
- - "vpp-csit-verify-device-master-ubuntu2004-x86_64-1n-skx"
- - "vpp-csit-verify-device-master-ubuntu2004-aarch64-1n-tx2"
+ - "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"
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
index 55cbea92de..efdc26a6d2 100644
--- a/fdio.infra.ansible/roles/jenkins_job_health_exporter/tasks/main.yaml
+++ b/fdio.infra.ansible/roles/jenkins_job_health_exporter/tasks/main.yaml
@@ -9,7 +9,7 @@
group: "root"
mode: "0644"
when:
- - ansible_hostname == "s16-nomad"
+ - ansible_hostname == "s22-nomad"
tags:
- conf-jenkins-job-json
@@ -19,7 +19,7 @@
dest: "{{ jenkins_job_health_exporter_target_dir }}/jenkins-job-health-exporter"
mode: "0755"
when:
- - ansible_hostname == "s16-nomad"
+ - ansible_hostname == "s22-nomad"
tags:
- inst-jenkins-job-binary
@@ -31,7 +31,7 @@
group: "root"
mode: "0644"
when:
- - ansible_hostname == "s16-nomad"
+ - ansible_hostname == "s22-nomad"
notify:
- "Restart Jenkins Job Health Exporter"
tags:
diff --git a/fdio.infra.ansible/roles/kernel/defaults/main.yaml b/fdio.infra.ansible/roles/kernel/defaults/main.yaml
index 60fa91e970..ef628c93f5 100644
--- a/fdio.infra.ansible/roles/kernel/defaults/main.yaml
+++ b/fdio.infra.ansible/roles/kernel/defaults/main.yaml
@@ -6,21 +6,13 @@ kernel_version: "{{ kernel_version_by_distro[ansible_distribution|lower][ansible
kernel_version_by_distro:
ubuntu:
- focal:
- - "5.4.0-65"
jammy:
- - "4.15.0-72"
+ - "5.15.0-46"
kernel_packages: "{{ kernel_packages_by_distro[ansible_distribution|lower][ansible_distribution_release] | flatten(levels=1) }}"
kernel_packages_by_distro:
ubuntu:
- focal:
- - "linux-image"
- - "linux-headers"
- - "linux-modules"
- - "linux-modules-extra"
- - "linux-tools"
jammy:
- "linux-image"
- "linux-headers"
@@ -33,10 +25,6 @@ absent_packages: "{{ absent_packages_by_distro[ansible_distribution|lower][ansib
absent_packages_by_distro:
ubuntu:
- focal:
- - "amd64-microcode"
- - "intel-microcode"
- - "iucode-tool"
jammy:
- "amd64-microcode"
- "intel-microcode"
diff --git a/fdio.infra.ansible/roles/kernel/handlers/main.yaml b/fdio.infra.ansible/roles/kernel/handlers/main.yaml
index 8e1239ab31..d0be276a5b 100644
--- a/fdio.infra.ansible/roles/kernel/handlers/main.yaml
+++ b/fdio.infra.ansible/roles/kernel/handlers/main.yaml
@@ -2,7 +2,7 @@
# file roles/kernel/handlers/main.yaml
- name: Reboot Server
- reboot:
+ ansible.builtin.reboot:
reboot_timeout: 3600
tags:
- reboot-server
diff --git a/fdio.infra.ansible/roles/kernel/tasks/ubuntu_focal.yaml b/fdio.infra.ansible/roles/kernel/tasks/ubuntu_focal.yaml
deleted file mode 100644
index 3e2686d565..0000000000
--- a/fdio.infra.ansible/roles/kernel/tasks/ubuntu_focal.yaml
+++ /dev/null
@@ -1,62 +0,0 @@
----
-# file: roles/kernel/tasks/ubuntu_focal.yaml
-
-- name: Get Available Kernel Versions
- command: "apt-cache showpkg linux-headers-*"
- changed_when: false
- register: apt_kernel_list
- tags:
- - kernel-inst
-
-- name: Get installed packages with APT
- command: "dpkg -l"
- changed_when: false
- register: apt_packages_list
- tags:
- - kernel-inst
-
-- name: Set target APT kernel version
- set_fact:
- _kernel: "{{ apt_kernel_list | deb_kernel(
- kernel_version, ansible_kernel) }}"
- tags:
- - kernel-inst
-
-- name: Disable APT auto upgrade
- 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
- 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
- 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
- apt:
- name: "{{ absent_packages }}"
- state: absent
- purge: true
- tags:
- - kernel-inst
diff --git a/fdio.infra.ansible/roles/kernel/tasks/ubuntu_jammy.yaml b/fdio.infra.ansible/roles/kernel/tasks/ubuntu_jammy.yaml
index 15ce221e66..af987d4e5a 100644
--- a/fdio.infra.ansible/roles/kernel/tasks/ubuntu_jammy.yaml
+++ b/fdio.infra.ansible/roles/kernel/tasks/ubuntu_jammy.yaml
@@ -2,28 +2,28 @@
# file: roles/kernel/tasks/ubuntu_jammy.yaml
- name: Get Available Kernel Versions
- command: "apt-cache showpkg linux-headers-*"
+ ansible.builtin.command: "apt-cache showpkg linux-headers-*"
changed_when: false
register: apt_kernel_list
tags:
- kernel-inst
- name: Get installed packages with APT
- command: "dpkg -l"
+ ansible.builtin.command: "dpkg -l"
changed_when: false
register: apt_packages_list
tags:
- kernel-inst
- name: Set target APT kernel version
- set_fact:
+ ansible.builtin.set_fact:
_kernel: "{{ apt_kernel_list | deb_kernel(
kernel_version, ansible_kernel) }}"
tags:
- kernel-inst
- name: Disable APT auto upgrade
- lineinfile:
+ ansible.builtin.lineinfile:
path: "/etc/apt/apt.conf.d/20auto-upgrades"
state: "present"
regexp: "APT::Periodic::Unattended-Upgrade \"[0-9]\";"
@@ -34,7 +34,7 @@
- kernel-inst
- name: Ensure Packages Versions
- apt:
+ ansible.builtin.apt:
name: "{{ apt_kernel_list | deb_kernel_pkg(
kernel_version, ansible_kernel, ansible_distribution,
ansible_architecture, item) }}"
@@ -43,10 +43,10 @@
- kernel-inst
- name: Ensure Any Other Kernel Packages Are Removed
- apt:
+ ansible.builtin.apt:
name: "{{ apt_packages_list | deb_installed_kernel(
apt_kernel_list, kernel_version, ansible_kernel) }}"
- state: absent
+ state: "absent"
purge: true
notify:
- "Reboot Server"
@@ -54,9 +54,9 @@
- kernel-inst
- name: Ensure Any Microcode Is Absent
- apt:
+ ansible.builtin.apt:
name: "{{ absent_packages }}"
- state: absent
+ state: "absent"
purge: true
tags:
- kernel-inst
diff --git a/fdio.infra.ansible/roles/kernel_vm/tasks/main.yaml b/fdio.infra.ansible/roles/kernel_vm/tasks/main.yaml
index 78bb822f80..cd8eb15c57 100644
--- a/fdio.infra.ansible/roles/kernel_vm/tasks/main.yaml
+++ b/fdio.infra.ansible/roles/kernel_vm/tasks/main.yaml
@@ -2,7 +2,7 @@
# file: roles/kernel_vm/tasks/main.yaml
- name: Inst - Backup remote initramfs modules
- copy:
+ ansible.builtin.copy:
src: "/etc/initramfs-tools/modules"
dest: "/tmp/initramfs_modules.bkp"
remote_src: true
@@ -12,7 +12,7 @@
- kernel-inst-image
- name: Inst - Backup remote initramfs resume config
- copy:
+ ansible.builtin.copy:
src: "/etc/initramfs-tools/conf.d/resume"
dest: "/tmp/initramfs-resume.bkp"
remote_src: true
@@ -22,33 +22,33 @@
- kernel-inst-image
- name: Inst - Update remote initramfs modules
- copy:
+ ansible.builtin.copy:
src: "../files/initramfs_modules"
dest: "/etc/initramfs-tools/modules"
tags:
- kernel-inst-image
- name: Inst - Update remote initramfs resume config
- copy:
+ ansible.builtin.copy:
src: "../files/initramfs_resume"
dest: "/etc/initramfs-tools/conf.d/resume"
tags:
- kernel-inst-image
- name: Inst - Create target kernel dir
- file:
+ ansible.builtin.file:
path: "/opt/boot"
state: "directory"
tags:
- kernel-inst-image
- name: Inst - Build initrd image
- shell: "update-initramfs -k {{ ansible_kernel }} -c -b /opt/boot"
+ ansible.builtin.shell: "update-initramfs -k {{ ansible_kernel }} -c -b /opt/boot"
tags:
- kernel-inst-image
- name: Inst - Copy corresponding kernel img
- copy:
+ ansible.builtin.copy:
src: "/boot/vmlinuz-{{ ansible_kernel }}"
dest: "/opt/boot/vmlinuz-{{ ansible_kernel }}"
remote_src: true
@@ -56,7 +56,7 @@
- kernel-inst-image
- name: Inst - Restore remote initramfs modules
- copy:
+ ansible.builtin.copy:
src: "/tmp/initramfs_modules.bkp"
dest: "/etc/initramfs-tools/modules"
remote_src: true
@@ -66,7 +66,7 @@
- kernel-inst-image
- name: Inst - Remove remote backup initramfs modules
- file:
+ ansible.builtin.file:
path: "/tmp/initramfs_modules.bkp"
state: "absent"
when: __initramfs_modules_backuped
@@ -74,7 +74,7 @@
- kernel-inst-image
- name: Inst - Restore remote initramfs resume config
- copy:
+ ansible.builtin.copy:
src: "/tmp/initramfs-resume.bkp"
dest: "/etc/initramfs-tools/conf.d/resume"
remote_src: true
@@ -84,7 +84,7 @@
- kernel-inst-image
- name: Inst - Remove remote backup initramfs resume config
- file:
+ ansible.builtin.file:
path: "/tmp/initramfs-resume.bkp"
state: "absent"
when: __initramfs_resume_backuped
diff --git a/fdio.infra.ansible/roles/kubernetes/defaults/main.yaml b/fdio.infra.ansible/roles/kubernetes/defaults/main.yaml
deleted file mode 100644
index 1a2f773950..0000000000
--- a/fdio.infra.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/fdio.infra.ansible/roles/kubernetes/tasks/main.yaml b/fdio.infra.ansible/roles/kubernetes/tasks/main.yaml
deleted file mode 100644
index 160ffb8c06..0000000000
--- a/fdio.infra.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/fdio.infra.ansible/roles/kubernetes/tasks/ubuntu_jammy.yaml b/fdio.infra.ansible/roles/kubernetes/tasks/ubuntu_jammy.yaml
deleted file mode 100644
index 5e155257ce..0000000000
--- a/fdio.infra.ansible/roles/kubernetes/tasks/ubuntu_jammy.yaml
+++ /dev/null
@@ -1,37 +0,0 @@
----
-# file: roles/kubernetes/tasks/ubuntu_jammy.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/fdio.infra.ansible/roles/mellanox/defaults/main.yaml b/fdio.infra.ansible/roles/mellanox/defaults/main.yaml
index a12a613f74..de66be2d6b 100644
--- a/fdio.infra.ansible/roles/mellanox/defaults/main.yaml
+++ b/fdio.infra.ansible/roles/mellanox/defaults/main.yaml
@@ -1,5 +1,5 @@
---
-# file: roles/mellanox/defaults/main.yaml
+# file: defaults/main.yaml
packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}"
@@ -21,10 +21,10 @@ packages_by_arch:
mellanox_download_url: "http://content.mellanox.com/ofed"
mellanox_extract_dir: "/opt"
-mellanox_cx5_compatibility_matrix:
- dpdk21.02:
- # https://doc.dpdk.org/guides/rel_notes/release_21_02.html
- ofed: "5.3-1.0.5.0"
- dpdk22.03:
- # https://doc.dpdk.org/guides/rel_notes/release_22_03.html
- ofed: "5.5-1.0.3.2"
+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
index 81fefc8ae3..53376eb997 100644
--- a/fdio.infra.ansible/roles/mellanox/tasks/main.yaml
+++ b/fdio.infra.ansible/roles/mellanox/tasks/main.yaml
@@ -1,5 +1,5 @@
---
-# file: roles/mellanox/tasks/main.yaml
+# file: tasks/main.yaml
- name: Inst - Update Package Cache (APT)
apt:
@@ -13,11 +13,11 @@
- name: Inst - Prerequisites
package:
name: "{{ packages | flatten(levels=1) }}"
- state: latest
+ state: "latest"
tags:
- mellanox-inst-drivers
-- name: Inst - Check Presence of Mellanox CX-5
+- name: Inst - Check Presence of Mellanox
shell: "lspci | grep Mellanox | awk '{print $1}'"
register: mellanox_pcis
failed_when: false
@@ -25,19 +25,19 @@
tags:
- mellanox-inst-drivers
-- name: Inst - Get Mellanox CX-5 OFED driver versions
+- name: Inst - Get Mellanox OFED driver versions
set_fact:
- ofed: "{{ mellanox_cx5_compatibility_matrix[mellanox_cx5_matrix]['ofed'] }}"
+ ofed: "{{ mellanox_compatibility_matrix[mellanox_matrix]['ofed'] }}"
when: >
mellanox_pcis.stdout_lines | length > 0 and
- mellanox_cx5_matrix is defined
+ mellanox_matrix is defined
tags:
- mellanox-inst-drivers
-- name: Inst - Driver Mellanox CX-5
+- name: Inst - Driver Mellanox
import_tasks: ofed.yaml
when: >
mellanox_pcis.stdout_lines | length > 0 and
- mellanox_cx5_matrix is defined
+ 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
index 2ad40b0afb..c39975bab6 100644
--- a/fdio.infra.ansible/roles/mellanox/tasks/ofed.yaml
+++ b/fdio.infra.ansible/roles/mellanox/tasks/ofed.yaml
@@ -1,8 +1,8 @@
---
-# file: roles/mellanox/tasks/ofed.yaml
+# file: tasks/ofed.yaml
- name: Inst - Get OFED
- get_url:
+ 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"
@@ -11,7 +11,7 @@
- mellanox-inst-drivers
- name: Inst - Extract OFED
- unarchive:
+ 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 }}/"
@@ -21,7 +21,7 @@
- mellanox-inst-drivers
- name: Inst - OFED
- command: "./mlnxofedinstall --with-mft --dpdk --force --upstream-libs --without-fw-update"
+ 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
@@ -29,14 +29,9 @@
- mellanox-inst-drivers
- name: Inst - Switch Infiniband to Ethernet
- command: "mlxconfig --yes --dev {{ item }} set LINK_TYPE_P1=2 LINK_TYPE_P2=2"
+ 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
-
-- name: FIX qemu-system removal
- package:
- name: "qemu-system"
- state: latest
- tags:
- - mellanox-inst-drivers
+ - 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
index b4741f8d43..535db2bb2c 100644
--- a/fdio.infra.ansible/roles/nomad/defaults/main.yaml
+++ b/fdio.infra.ansible/roles/nomad/defaults/main.yaml
@@ -16,7 +16,7 @@ packages_by_arch:
- []
# Package
-nomad_version: "{{ lookup('env','NOMAD_VERSION') | default('1.3.1', true) }}"
+nomad_version: "1.4.3"
nomad_architecture_map:
amd64: "amd64"
x86_64: "amd64"
@@ -28,12 +28,6 @@ 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_podman_enable: false
-nomad_podman_version: "{{ lookup('env','NOMAD_PODMAN_VERSION') | default('0.1.0', true) }}"
-nomad_podman_pkg: "nomad-driver-podman_{{ nomad_podman_version }}_linux_{{nomad_architecture}}.zip"
-nomad_podman_url: "https://releases.hashicorp.com/nomad-driver-podman/{{ nomad_podman_version }}"
-nomad_podman_zip_url: "{{ nomad_podman_url }}/{{ nomad_podman_pkg }}"
-nomad_podman_checksum_file_url: "{{ nomad_podman_url }}/nomad-driver-podman_{{ nomad_podman_version }}_SHA256SUMS"
nomad_force_update: false
# Paths
@@ -47,23 +41,20 @@ nomad_run_dir: "/var/run/nomad"
nomad_ssl_dir: "/etc/nomad.d/ssl"
# Initialization and startup script templates
-nomad_restart_handler_state: "restarted"
nomad_service_mgr: ""
# System user and group
nomad_group: "nomad"
-nomad_group_state: "present"
nomad_user: "nomad"
-nomad_user_state: "present"
# Nomad settings
nomad_datacenter: "dc1"
nomad_region: "global"
nomad_log_level: "INFO"
nomad_syslog_enable: true
-nomad_iface: "{{ lookup('env','NOMAD_IFACE') | default(ansible_default_ipv4.interface, true) }}"
+nomad_iface: "{{ ansible_default_ipv4.interface }}"
nomad_node_name: "{{ inventory_hostname }}"
-nomad_node_role: "{{ lookup('env','NOMAD_NODE_ROLE') | default('server', true) }}"
+nomad_node_role: "server"
nomad_leave_on_terminate: true
nomad_leave_on_interrupt: false
nomad_disable_update_check: true
@@ -88,7 +79,7 @@ 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: "{{ lookup('env','NOMAD_ENCRYPT_ENABLE') | default('false', true) }}"
+nomad_encrypt_enable: false
nomad_raft_protocol: 2
# Client settings
@@ -127,7 +118,7 @@ nomad_servers: "\
{% 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_node_role == 'server' or _nomad_node_role == 'both') %}\
{% if _nomad_servers.append(host) %}{% endif %}\
{% endif %}\
{% endfor %}\
@@ -144,56 +135,59 @@ 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: "{{ lookup('env', 'NOMAD_ACL_ENABLED') | default('no', true) }}"
+nomad_acl_enabled: false
nomad_acl_token_ttl: "30s"
nomad_acl_policy_ttl: "30s"
nomad_acl_replication_token: ""
-# Vault
-nomad_vault_enabled: "{{ lookup('env', 'NOMAD_VAULT_ENABLED') | default('no', true) }}"
-nomad_vault_address: "{{ vault_address | default('0.0.0.0', true) }}"
-nomad_vault_allow_unauthenticated: true
-nomad_vault_create_from_role: ""
-nomad_vault_task_token_ttl: ""
-nomad_vault_ca_file: ""
-nomad_vault_ca_path: ""
-nomad_vault_cert_file: ""
-nomad_vault_key_file: ""
-nomad_vault_tls_server_name: ""
-nomad_vault_tls_skip_verify: false
-nomad_vault_token: ""
-nomad_vault_namespace: ""
-
# Docker
-nomad_docker_enable: "{{ lookup('env','NOMAD_DOCKER_ENABLE') | default('false', true) }}"
+nomad_docker_enable: false
nomad_docker_dmsetup: true
-# TLS
-nomad_tls_enable: true
-nomad_ca_file: "{{ nomad_ssl_dir }}/nomad-ca.pem"
-nomad_cert_file: "{{ nomad_ssl_dir }}/nomad.pem"
-nomad_key_file: "{{ nomad_ssl_dir }}/nomad-key.pem"
-nomad_cli_cert_file: "{{ nomad_ssl_dir }}/nomad-cli.pem"
-nomad_cli_key_file: "{{ nomad_ssl_dir }}/nomad-cli-key.pem"
-nomad_http: false
-nomad_rpc: false
-nomad_rpc_upgrade_mode: false
-nomad_verify_server_hostname: false
-nomad_verify_https_client: false
-
-# Conf - autopilot.hcl
+# 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_telemetry: true
+# Telemetry.
+nomad_use_telemetry: true
nomad_telemetry_disable_hostname: false
-nomad_telemetry_collection_interval: 60s
+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
index 6263f3dda1..32e5798e3e 100644
--- a/fdio.infra.ansible/roles/nomad/handlers/main.yaml
+++ b/fdio.infra.ansible/roles/nomad/handlers/main.yaml
@@ -1,9 +1,9 @@
---
-# file roles/nomad/handlers/main.yaml
+# file handlers/main.yaml
- name: Restart Nomad
ansible.builtin.systemd:
daemon_reload: true
enabled: true
name: "nomad"
- state: "{{ nomad_restart_handler_state }}"
+ state: "restarted"
diff --git a/fdio.infra.ansible/roles/nomad/meta/main.yaml b/fdio.infra.ansible/roles/nomad/meta/main.yaml
index f7b25fe8eb..098aafe2fb 100644
--- a/fdio.infra.ansible/roles/nomad/meta/main.yaml
+++ b/fdio.infra.ansible/roles/nomad/meta/main.yaml
@@ -1,19 +1,21 @@
---
-# file: roles/nomad/meta/main.yaml
+# file: meta/main.yaml
-dependencies: [docker]
+dependencies: ["docker"]
galaxy_info:
- role_name: nomad
- author: fd.io
- description: Hashicorp Nomad.
- company: none
+ role_name: "nomad"
+ author: "pmikus"
+ description: "Hashicorp Nomad."
+ company: "none"
license: "license (Apache)"
- min_ansible_version: 2.9
+ min_ansible_version: "2.9"
platforms:
- - name: Ubuntu
- versions:
- - focal
- - jammy
+ - name: "Ubuntu"
+ release:
+ - "focal"
+ - "jammy"
+ - "kinetic"
galaxy_tags:
- - nomad
+ - "nomad"
+ - "hashicorp"
diff --git a/fdio.infra.ansible/roles/nomad/tasks/main.yaml b/fdio.infra.ansible/roles/nomad/tasks/main.yaml
index 0204c0591c..72b78458f8 100644
--- a/fdio.infra.ansible/roles/nomad/tasks/main.yaml
+++ b/fdio.infra.ansible/roles/nomad/tasks/main.yaml
@@ -1,7 +1,7 @@
---
# file: tasks/main.yaml
-- name: Inst - Update Repositories Cache
+- name: Update Repositories Cache
ansible.builtin.apt:
update_cache: true
when:
@@ -9,7 +9,7 @@
tags:
- nomad-inst-package
-- name: Inst - Dependencies
+- name: Dependencies
ansible.builtin.apt:
name: "{{ packages | flatten(levels=1) }}"
state: "present"
@@ -20,30 +20,31 @@
tags:
- nomad-inst-dependencies
-- name: Conf - Add Nomad Group
+- name: Add Nomad Group
ansible.builtin.group:
name: "{{ nomad_group }}"
- state: "{{ nomad_user_state }}"
+ state: "present"
tags:
- nomad-conf-user
-- name: Conf - Add Nomad user
+- name: Add Nomad user
ansible.builtin.user:
name: "{{ nomad_user }}"
group: "{{ nomad_group }}"
- state: "{{ nomad_group_state }}"
+ state: "present"
system: true
tags:
- nomad-conf-user
-- name: Inst - Download Nomad
+- name: Download Nomad
ansible.builtin.get_url:
url: "{{ nomad_zip_url }}"
dest: "{{ nomad_inst_dir }}/{{ nomad_pkg }}"
+ mode: 0644
tags:
- nomad-inst-package
-- name: Inst - Clean Nomad
+- name: Clean Nomad
ansible.builtin.file:
path: "{{ nomad_inst_dir }}/nomad"
state: "absent"
@@ -52,7 +53,7 @@
tags:
- nomad-inst-package
-- name: Inst - Unarchive Nomad
+- name: Unarchive Nomad
ansible.builtin.unarchive:
src: "{{ nomad_inst_dir }}/{{ nomad_pkg }}"
dest: "{{ nomad_inst_dir }}/"
@@ -60,7 +61,7 @@
tags:
- nomad-inst-package
-- name: Inst - Nomad
+- name: Nomad
ansible.builtin.copy:
src: "{{ nomad_inst_dir }}/nomad"
dest: "{{ nomad_bin_dir }}"
@@ -72,97 +73,35 @@
tags:
- nomad-inst-package
-- name: Conf - Create Directories "{{ nomad_data_dir }}"
- ansible.builtin.file:
- dest: "{{ nomad_data_dir }}"
- state: directory
- owner: "{{ nomad_user }}"
- group: "{{ nomad_group }}"
- mode: 0755
- tags:
- - nomad-conf
-
-- name: Conf - Create Directories "{{ nomad_ssl_dir }}"
- ansible.builtin.file:
- dest: "{{ nomad_ssl_dir }}"
- state: directory
- owner: "{{ nomad_user }}"
- group: "{{ nomad_group }}"
- mode: 0755
- tags:
- - nomad-conf
-
-- name: Conf - Create Config Directory
+- name: Create Directories
ansible.builtin.file:
- dest: "{{ nomad_config_dir }}"
- state: directory
+ 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: Conf - Base Configuration
- ansible.builtin.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
+- name: Base Configuration
ansible.builtin.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
- ansible.builtin.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
- ansible.builtin.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
- ansible.builtin.template:
- src: telemetry.hcl.j2
- dest: "{{ nomad_config_dir }}/telemetry.hcl"
- owner: "{{ nomad_user }}"
- group: "{{ nomad_group }}"
- mode: 0644
- tags:
- - nomad-conf
-
-- name: Conf - Consul Configuration
- ansible.builtin.template:
- src: consul.hcl.j2
- dest: "{{ nomad_config_dir }}/consul.hcl"
+ 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
@@ -180,20 +119,21 @@
tags:
- nomad-conf
-- name: Conf - Nomad CLI Environment Variables
+- name: Nomad CLI Environment Variables
ansible.builtin.lineinfile:
path: "/etc/profile.d/nomad.sh"
line: "{{ item }}"
+ mode: 0644
create: true
loop:
- - "export NOMAD_ADDR=http://nomad.service.consul:4646"
- - "export NOMAD_CACERT={{ nomad_ca_file }}"
-# - "export NOMAD_CLIENT_CERT={{ nomad_cli_cert_file }}"
-# - "export NOMAD_CLIENT_KEY={{ nomad_cli_key_file }}"
+ - "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: Conf - System.d Script
+- name: System.d Script
ansible.builtin.template:
src: "nomad_systemd.service.j2"
dest: "/lib/systemd/system/nomad.service"
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/consul.hcl.j2 b/fdio.infra.ansible/roles/nomad/templates/consul.hcl.j2
index 6d30676ca0..a9c1aff7b2 100644
--- a/fdio.infra.ansible/roles/nomad/templates/consul.hcl.j2
+++ b/fdio.infra.ansible/roles/nomad/templates/consul.hcl.j2
@@ -1,18 +1,63 @@
{% if nomad_use_consul | bool == True %}
consul {
- # The address to the Consul agent.
+ # Specifies the address to the local Consul agent, given in the format
+ # host:port.
address = "{{ nomad_consul_address }}"
- token = "{{ nomad_consul_token }}"
- # The service name to register the server and client with Consul.
- server_service_name = "{{ nomad_consul_servers_service_name }}"
- client_service_name = "{{ nomad_consul_clients_service_name }}"
- tags = {{ nomad_consul_tags | to_json }}
- # Enables automatically registering the services.
+ # 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
- # Enabling the server and client to bootstrap using Consul.
- server_auto_join = 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
index 61f07df5b6..564505781b 100644
--- a/fdio.infra.ansible/roles/nomad/templates/nomad_systemd.service.j2
+++ b/fdio.infra.ansible/roles/nomad/templates/nomad_systemd.service.j2
@@ -11,6 +11,11 @@ After=network-online.target
#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
diff --git a/fdio.infra.ansible/roles/nomad/templates/server.hcl.j2 b/fdio.infra.ansible/roles/nomad/templates/server.hcl.j2
index 570d92e0c1..e19dea9e6f 100644
--- a/fdio.infra.ansible/roles/nomad/templates/server.hcl.j2
+++ b/fdio.infra.ansible/roles/nomad/templates/server.hcl.j2
@@ -1,3 +1,4 @@
+{% if nomad_node_server | bool == True %}
server {
enabled = {{ nomad_node_server | bool | lower }}
@@ -54,3 +55,4 @@ server {
{%- 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
index 4ad5330d1b..14be0d9548 100644
--- a/fdio.infra.ansible/roles/nomad/templates/telemetry.hcl.j2
+++ b/fdio.infra.ansible/roles/nomad/templates/telemetry.hcl.j2
@@ -1,10 +1,26 @@
-{% if nomad_telemetry | bool == True %}
+{% if nomad_use_telemetry | bool == True %}
telemetry {
- disable_hostname = "{{ nomad_telemetry_disable_hostname | default(false) | bool | lower }}"
- collection_interval = "{{ nomad_telemetry_collection_interval | default("1s") }}"
- use_node_name = "{{ nomad_telemetry_use_node_name | default(false) | bool | lower }}"
- publish_allocation_metrics = "{{ nomad_telemetry_publish_allocation_metrics | default(false) | bool | lower }}"
- publish_node_metrics = "{{ nomad_telemetry_publish_node_metrics | default(false) | bool | lower }}"
- prometheus_metrics = "{{ nomad_telemetry_prometheus_metrics | default(false) | bool | lower }}"
+ # 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
index ceccdc8be5..0a1a5b20a4 100644
--- a/fdio.infra.ansible/roles/nomad/templates/tls.hcl.j2
+++ b/fdio.infra.ansible/roles/nomad/templates/tls.hcl.j2
@@ -1,12 +1,36 @@
-{% if nomad_tls_enable | bool %}
+{% if nomad_use_tls | bool %}
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 }}"
- rpc_upgrade_mode = {{ nomad_rpc_upgrade_mode | bool | lower }}
- verify_server_hostname = {{ nomad_verify_server_hostname | bool | lower }}
- verify_https_client = {{ nomad_verify_https_client | bool | lower }}
+ # 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
index a72222c992..791eeadb06 100644
--- a/fdio.infra.ansible/roles/nomad/vars/main.yaml
+++ b/fdio.infra.ansible/roles/nomad/vars/main.yaml
@@ -1,5 +1,5 @@
---
-# file: roles/nomad/vars/main.yaml
+# 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
index d07a75d446..5a732e5539 100644
--- a/fdio.infra.ansible/roles/performance_tuning/defaults/main.yaml
+++ b/fdio.infra.ansible/roles/performance_tuning/defaults/main.yaml
@@ -8,8 +8,6 @@ packages_base:
packages_by_distro:
ubuntu:
- focal:
- - []
jammy:
- []
diff --git a/fdio.infra.ansible/roles/performance_tuning/handlers/main.yaml b/fdio.infra.ansible/roles/performance_tuning/handlers/main.yaml
index fa2876b7ac..5a48fc37b4 100644
--- a/fdio.infra.ansible/roles/performance_tuning/handlers/main.yaml
+++ b/fdio.infra.ansible/roles/performance_tuning/handlers/main.yaml
@@ -1,13 +1,13 @@
---
-# file roles/performance_tuning/handlers/main.yaml
+# file handlers/main.yaml
- name: Update GRUB
- command: update-grub
+ ansible.builtin.command: update-grub
tags:
- update-grub
-- name: Reboot server
- reboot:
+- 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
index e3e22d03ac..cc904e23e9 100644
--- a/fdio.infra.ansible/roles/performance_tuning/tasks/main.yaml
+++ b/fdio.infra.ansible/roles/performance_tuning/tasks/main.yaml
@@ -2,7 +2,7 @@
# file: roles/performance_tuning/tasks/main.yaml
- name: Inst - Update Package Cache (APT)
- apt:
+ ansible.builtin.apt:
update_cache: true
cache_valid_time: 3600
when:
@@ -11,7 +11,7 @@
- perf-inst-prerequisites
- name: Inst - Machine Prerequisites
- package:
+ ansible.builtin.package:
name: "{{ packages | flatten(levels=1) }}"
state: latest
tags:
@@ -22,7 +22,8 @@
when: >
cpu_microarchitecture == "skylake" or
cpu_microarchitecture == "cascadelake" or
- cpu_microarchitecture == "icelake"
+ cpu_microarchitecture == "icelake" or
+ cpu_microarchitecture == "sapphirerapids"
tags:
- perf-conf-turbo-boost
@@ -36,7 +37,7 @@
# 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:
+ ansible.builtin.sysctl:
name: "vm.max_map_count"
value: "{{ sysctl.vm.nr_hugepages * 4 }}"
state: "present"
@@ -48,7 +49,7 @@
- name: Conf - Adjust hugetlb_shm_group
# hugetlb_shm_group contains group id that is allowed to create sysv
# shared memory segment using hugetlb page.
- sysctl:
+ ansible.builtin.sysctl:
name: "vm.hugetlb_shm_group"
value: "1000"
state: "present"
@@ -63,7 +64,7 @@
# 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:
+ ansible.builtin.sysctl:
name: "vm.swappiness"
value: "0"
state: "present"
@@ -78,7 +79,7 @@
# 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:
+ ansible.builtin.sysctl:
name: "kernel.shmmax"
value: "{{ sysctl.vm.nr_hugepages * 2 * 1024 * 1024 }}"
state: "present"
@@ -98,7 +99,7 @@
# 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:
+ ansible.builtin.sysctl:
name: "kernel.watchdog_cpumask"
value: "{{ sysctl.kernel.watchdog_cpumask }}"
state: "present"
@@ -114,7 +115,7 @@
# 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:
+ ansible.builtin.sysctl:
name: "kernel.randomize_va_space"
value: "0"
state: "present"
@@ -124,7 +125,7 @@
- perf-conf-sysctl
- name: Conf - Cpufrequtils
- copy:
+ ansible.builtin.copy:
src: "files/cpufrequtils"
dest: "/etc/default/cpufrequtils"
owner: "root"
@@ -134,7 +135,7 @@
- perf-conf-cpufrequtils
- name: Conf - Irqbalance
- template:
+ ansible.builtin.template:
src: "files/irqbalance"
dest: "/etc/default/irqbalance"
owner: "root"
@@ -143,15 +144,8 @@
tags:
- perf-conf-irqbalance
-- name: Conf - Set Ondemand Service To Disable
- service:
- name: "ondemand"
- enabled: "no"
- tags:
- - perf-conf-ondemand
-
- name: Conf - Kernel Parameters
- lineinfile:
+ ansible.builtin.lineinfile:
path: "/etc/default/grub"
state: "present"
regexp: "^GRUB_CMDLINE_LINUX="
@@ -164,7 +158,7 @@
- meta: flush_handlers
- name: Conf - Load Kernel Modules By Default
- lineinfile:
+ ansible.builtin.lineinfile:
path: "/etc/modules"
state: "present"
line: "{{ item }}"
@@ -176,7 +170,7 @@
- perf-conf-load-kernel-modules
- name: Conf - Create a directory for 1G HugeTLBs hugepages
- file:
+ ansible.builtin.file:
path: "/dev/hugepages1G"
state: "directory"
mode: 0755
@@ -184,7 +178,7 @@
- perf-conf-hugepages-1g
- name: Conf - Mount 1G HugeTLBs hugepages
- mount:
+ ansible.builtin.mount:
path: "/dev/hugepages1G"
src: "hugetlbfs"
opts: "pagesize=1G"
@@ -195,7 +189,7 @@
- perf-conf-hugepages-1g
- name: Create a directory if it does not exist
- file:
+ ansible.builtin.file:
path: "/dev/hugepages2M"
state: "directory"
mode: 0755
@@ -203,7 +197,7 @@
- perf-conf-hugepages-2m
- name: Conf - Create a directory for 2M HugeTLBs hugepages
- mount:
+ ansible.builtin.mount:
path: "/dev/hugepages2M"
src: "hugetlbfs"
opts: "pagesize=2M"
diff --git a/fdio.infra.ansible/roles/prometheus_exporter/meta/main.yaml b/fdio.infra.ansible/roles/prometheus_exporter/meta/main.yaml
index 0ee6c2c224..7d8b861882 100644
--- a/fdio.infra.ansible/roles/prometheus_exporter/meta/main.yaml
+++ b/fdio.infra.ansible/roles/prometheus_exporter/meta/main.yaml
@@ -13,7 +13,6 @@ galaxy_info:
platforms:
- name: Ubuntu
versions:
- - focal
- jammy
galaxy_tags:
- prometheus
diff --git a/fdio.infra.ansible/roles/python_env/defaults/main.yaml b/fdio.infra.ansible/roles/python_env/defaults/main.yaml
index 89e85d64fc..4b572c0dd0 100644
--- a/fdio.infra.ansible/roles/python_env/defaults/main.yaml
+++ b/fdio.infra.ansible/roles/python_env/defaults/main.yaml
@@ -1,5 +1,5 @@
---
-# file: roles/common/defaults/main.yaml
+# file: defaults/main.yaml
packages: "{{ packages_base + packages_by_distro[ansible_distribution|lower][ansible_distribution_release] + packages_by_arch[ansible_machine] }}"
@@ -8,15 +8,6 @@ packages_base:
packages_by_distro:
ubuntu:
- focal:
- - "python3-all"
- - "python3-apt"
- - "python3-cffi"
- - "python3-cffi-backend"
- - "python3-dev"
- - "python3-pip"
- - "python3-pyelftools"
- - "python3-setuptools"
jammy:
- "python3-all"
- "python3-apt"
diff --git a/fdio.infra.ansible/roles/python_env/tasks/main.yaml b/fdio.infra.ansible/roles/python_env/tasks/main.yaml
index 4e4cfb447c..02850110a9 100644
--- a/fdio.infra.ansible/roles/python_env/tasks/main.yaml
+++ b/fdio.infra.ansible/roles/python_env/tasks/main.yaml
@@ -1,8 +1,8 @@
---
-# file: roles/python_env/tasks/main.yaml
+# file: tasks/main.yaml
- name: Inst - Update package cache (apt)
- apt:
+ ansible.builtin.apt:
update_cache: true
cache_valid_time: 3600
when:
@@ -11,75 +11,52 @@
- common-inst-prerequisites
- name: Inst - Prerequisites
- package:
+ ansible.builtin.package:
name: "{{ packages | flatten(levels=1) }}"
state: latest
tags:
- common-inst-prerequisites
- name: Inst - CSIT PIP requirements
- pip:
+ ansible.builtin.pip:
name:
- - "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.25.1"
- - "robotframework==3.1.2"
- - "scapy==2.4.3"
- - "scp==0.13.2"
- - "ansible==2.10.7"
- - "dill==0.3.3"
- - "numpy==1.17.3"
- - "hdrhistogram==0.6.1"
- - "plotly==4.1.1"
- - "PTable==0.9.2"
- - "Sphinx==3.5.4"
- - "sphinx-rtd-theme==0.5.2"
- - "sphinxcontrib-programoutput==0.17"
- - "sphinxcontrib-robotdoc==0.11.0"
- - "alabaster==0.7.12"
- - "Babel==2.9.0"
- - "bcrypt==3.1.7"
- - "certifi==2020.12.5"
- - "cffi==1.13.2"
- - "chardet==4.0.0"
- - "cryptography==2.8"
- - "docutils==0.16"
- - "future==0.18.2"
- - "idna==2.10"
- - "imagesize==1.2.0"
- - "Jinja2==2.11.3"
- - "MarkupSafe==1.1.1"
- - "packaging==20.9"
- - "pbr==5.5.1"
- - "ply==3.11"
- - "pycparser==2.19"
- - "Pygments==2.8.1"
- - "PyNaCl==1.3.0"
- - "pyparsing==2.4.7"
- "python-dateutil==2.8.2"
- - "pytz==2021.1"
- - "retrying==1.3.3"
- - "six==1.15.0"
- - "snowballstemmer==2.1.0"
- - "sphinxcontrib-applehelp==1.0.2"
- - "sphinxcontrib-devhelp==1.0.2"
- - "sphinxcontrib-htmlhelp==1.0.3"
- - "sphinxcontrib-jsmath==1.0.1"
- - "sphinxcontrib-qthelp==1.0.3"
- - "sphinxcontrib-serializinghtml==1.1.4"
- - "urllib3==1.25.6"
+ - "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
-
-- name: Inst - CSIT PIP requirements - Pandas and SciPy workaround
- pip:
- name:
- - "pandas==0.25.3"
- - "scipy==1.5.4"
- tags:
- - common-inst-pip
diff --git a/fdio.infra.ansible/roles/tg/files/csit-initialize-docker-tg.service b/fdio.infra.ansible/roles/tg/files/csit-initialize-docker-tg.service
deleted file mode 100644
index 11911201d5..0000000000
--- a/fdio.infra.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/fdio.infra.ansible/roles/tg/files/csit-initialize-docker-tg.sh b/fdio.infra.ansible/roles/tg/files/csit-initialize-docker-tg.sh
deleted file mode 100755
index 0120795e9c..0000000000
--- a/fdio.infra.ansible/roles/tg/files/csit-initialize-docker-tg.sh
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/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.
-
-# 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="csit_sut-ubuntu2004:local"
- # 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}:2222 "
- # 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/fdio.infra.ansible/roles/tg/handlers/main.yaml b/fdio.infra.ansible/roles/tg/handlers/main.yaml
deleted file mode 100644
index b2c32a7078..0000000000
--- a/fdio.infra.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: true
- state: "started"
- name: "csit-initialize-docker-tg.service"
- tags:
- - docker-tg
diff --git a/fdio.infra.ansible/roles/tg/tasks/main.yaml b/fdio.infra.ansible/roles/tg/tasks/main.yaml
deleted file mode 100644
index 70ed384826..0000000000
--- a/fdio.infra.ansible/roles/tg/tasks/main.yaml
+++ /dev/null
@@ -1,30 +0,0 @@
----
-# file: roles/tg/tasks/main.yaml
-
-- name: Conf - 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: 0744
- when:
- - docker_tg is defined
- tags:
- - tg-conf-docker
-
-- name: Conf - Start csit-initialize-docker-tg.service
- 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"
- when:
- - docker_tg is defined
- tags:
- - tg-conf-docker
-
-- meta: flush_handlers
diff --git a/fdio.infra.ansible/roles/topology/tasks/main.yaml b/fdio.infra.ansible/roles/topology/tasks/main.yaml
index 4f94060cad..1dc704331d 100644
--- a/fdio.infra.ansible/roles/topology/tasks/main.yaml
+++ b/fdio.infra.ansible/roles/topology/tasks/main.yaml
@@ -1,22 +1,22 @@
---
-# file: roles/topology/tasks/main.yaml
+# file: tasks/main.yaml
- name: Create Topology File
- template:
+ 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
- file:
+ ansible.builtin.file:
path: "./inventories/cloud_inventory/"
state: directory
tags:
- create-inventory-folder-cloud
- name: Create Hosts File
- template:
+ ansible.builtin.template:
src: "templates/hosts.j2"
dest: "./inventories/cloud_inventory/hosts"
tags:
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-c6gn.j2 b/fdio.infra.ansible/roles/topology/templates/topology-2n-aws-c6gn.j2
deleted file mode 100644
index de43291cc6..0000000000
--- a/fdio.infra.ansible/roles/topology/templates/topology-2n-aws-c6gn.j2
+++ /dev/null
@@ -1,51 +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
- 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-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
index 180d635def..18a2b56bda 100644
--- a/fdio.infra.ansible/roles/trex/defaults/main.yaml
+++ b/fdio.infra.ansible/roles/trex/defaults/main.yaml
@@ -1,35 +1,25 @@
---
-# file: roles/trex/defaults/main.yaml
+# file: defaults/main.yaml
-packages: "{{ packages_base + packages_by_distro[ansible_distribution|lower][ansible_distribution_release] + packages_by_arch[ansible_machine] }}"
+packages: "{{ packages_base + packages_by_distro[ansible_distribution|lower] + packages_by_arch[ansible_machine] }}"
packages_base:
- []
packages_by_distro:
ubuntu:
- focal:
- - "build-essential"
- - "libmnl-dev"
- - "libnuma-dev"
- - "libpcap-dev"
- - "librdmacm-dev"
- - "librdmacm1"
- - "libssl-dev"
- - "pciutils"
- - "python3-pip"
- - "zlib1g-dev"
- jammy:
- - "build-essential"
- - "libmnl-dev"
- - "libnuma-dev"
- - "libpcap-dev"
- - "librdmacm-dev"
- - "librdmacm1"
- - "libssl-dev"
- - "pciutils"
- - "python3-pip"
- - "zlib1g-dev"
+ - "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:
@@ -40,6 +30,4 @@ packages_by_arch:
trex_target_dir: "/opt"
trex_url: "https://github.com/cisco-system-traffic-generator/trex-core/archive/"
trex_version:
- # master // ubuntu 20.04
- - "2.88"
- - "2.97"
+ - "3.03"
diff --git a/fdio.infra.ansible/roles/trex/tasks/deploy_block.yaml b/fdio.infra.ansible/roles/trex/tasks/deploy_block.yaml
index 9aeb1be023..1a747f68d5 100644
--- a/fdio.infra.ansible/roles/trex/tasks/deploy_block.yaml
+++ b/fdio.infra.ansible/roles/trex/tasks/deploy_block.yaml
@@ -1,8 +1,8 @@
---
-# file: roles/trex/tasks/deploy_block.yaml
+# file: tasks/deploy_block.yaml
- name: Get Release {{ item }}
- get_url:
+ ansible.builtin.get_url:
url: "{{ trex_url }}/v{{ item }}.tar.gz"
dest: "{{ trex_target_dir }}/trex-core-{{ item }}.tar.gz"
validate_certs: false
@@ -10,46 +10,54 @@
register: trex_downloaded
- name: Create Directory {{ item }}
- file:
+ ansible.builtin.file:
path: "{{ trex_target_dir }}/trex-core-{{ item }}"
state: "directory"
- name: Extract Release {{ item }}
- unarchive:
+ 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: 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"
+ 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
- command: "./b build"
+ 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
- command: "make -j 16"
+ 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
- command: "make install"
+ 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
index 8f659b697c..d0509f7544 100644
--- a/fdio.infra.ansible/roles/trex/tasks/main.yaml
+++ b/fdio.infra.ansible/roles/trex/tasks/main.yaml
@@ -1,8 +1,8 @@
---
-# file: roles/trex/tasks/main.yaml
+# file: tasks/main.yaml
-- name: Inst - Update Package Cache (APT)
- apt:
+- name: Update Package Cache (APT)
+ ansible.builtin.apt:
update_cache: true
cache_valid_time: 3600
when:
@@ -10,14 +10,14 @@
tags:
- trex-inst-prerequisites
-- name: Inst - Prerequisites
- package:
+- name: Prerequisites
+ ansible.builtin.package:
name: "{{ packages | flatten(levels=1) }}"
state: latest
tags:
- trex-inst-prerequisites
-- name: Inst - Multiple T-Rex Versions
+- name: Multiple T-Rex Versions
include_tasks: deploy_block.yaml
loop: "{{ trex_version }}"
tags:
diff --git a/fdio.infra.ansible/roles/vagrant/tasks/main.yml b/fdio.infra.ansible/roles/vagrant/tasks/main.yml
index 14e919cb31..1716ebe0d5 100644
--- a/fdio.infra.ansible/roles/vagrant/tasks/main.yml
+++ b/fdio.infra.ansible/roles/vagrant/tasks/main.yml
@@ -26,13 +26,14 @@
- name: Reload groups for current session
command: "/usr/bin/newgrp docker"
-- name: Clone CSIT repository
- become_user: vagrant
- git:
- repo: "{{ csit.repository.url }}"
- dest: "{{ csit.home }}"
- accept_hostkey: true
- version: "{{ csit.repository.version }}"
+# 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: |
diff --git a/fdio.infra.ansible/roles/vault/meta/main.yaml b/fdio.infra.ansible/roles/vault/meta/main.yaml
index 882dcc3a7b..22a62dd438 100644
--- a/fdio.infra.ansible/roles/vault/meta/main.yaml
+++ b/fdio.infra.ansible/roles/vault/meta/main.yaml
@@ -13,7 +13,6 @@ galaxy_info:
platforms:
- name: Ubuntu
versions:
- - focal
- jammy
galaxy_tags:
- vault
diff --git a/fdio.infra.ansible/roles/vpp/defaults/main.yaml b/fdio.infra.ansible/roles/vpp/defaults/main.yaml
index 55051b8c8f..00c56859d0 100644
--- a/fdio.infra.ansible/roles/vpp/defaults/main.yaml
+++ b/fdio.infra.ansible/roles/vpp/defaults/main.yaml
@@ -12,20 +12,12 @@ packages_base:
packages_by_distro:
ubuntu:
- focal:
- - "build-essential"
- - "libglib2.0-dev"
- - "libmbedcrypto3"
- - "libmbedtls12"
- - "libmbedx509-0"
- - "libnuma-dev"
- - "libpixman-1-dev"
jammy:
- "build-essential"
- "libglib2.0-dev"
- - "libmbedcrypto1"
- - "libmbedtls10"
- - "libmbedx509-0"
+ - "libmbedcrypto7"
+ - "libmbedtls14"
+ - "libmbedx509-1"
- "libnuma-dev"
- "libpixman-1-dev"
diff --git a/fdio.infra.ansible/roles/vpp/tasks/main.yaml b/fdio.infra.ansible/roles/vpp/tasks/main.yaml
index 320584c432..cea06b764d 100644
--- a/fdio.infra.ansible/roles/vpp/tasks/main.yaml
+++ b/fdio.infra.ansible/roles/vpp/tasks/main.yaml
@@ -2,7 +2,7 @@
# file: roles/vpp/tasks/main.yaml
- name: Inst - Update Package Cache (APT)
- apt:
+ ansible.builtin.apt:
update_cache: true
cache_valid_time: 3600
when:
@@ -11,14 +11,14 @@
- vpp-inst-prerequisites
- name: Inst - Prerequisites
- package:
+ ansible.builtin.package:
name: "{{ packages | flatten(levels=1) }}"
state: latest
tags:
- vpp-inst-prerequisites
- name: Conf - sysctl
- file:
+ ansible.builtin.file:
src: "/dev/null"
dest: "/etc/sysctl.d/80-vpp.conf"
state: "link"
diff --git a/fdio.infra.ansible/roles/vpp_device/defaults/main.yaml b/fdio.infra.ansible/roles/vpp_device/defaults/main.yaml
deleted file mode 100644
index 9816d7087c..0000000000
--- a/fdio.infra.ansible/roles/vpp_device/defaults/main.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
----
-# file: roles/vpp_device/defaults/main.yaml
-
-iavf_target_dir: "/opt"
-iavf_version: "4.1.1"
-iavf_url: "https://downloads.sourceforge.net/project/e1000/iavf%20stable/{{ iavf_version }}/iavf-{{ iavf_version }}.tar.gz?ts=gAAAAABgvfs_L6gSH8B09NfEc8fzoooS3M2wyuOxlFEK5EtTstZWFdb2dYcqJZNqiirAT87dbc3GeJJrRst9KfUgS-byAeyaLw%3D%3D&r=https%3A%2F%2Fsourceforge.net%2Fprojects%2Fe1000%2Ffiles%2Fiavf%2520stable%2F{{ iavf_version }}%2Fiavf-{{ iavf_version }}.tar.gz%2Fdownload"
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-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/fdio.infra.ansible/roles/vpp_device/handlers/main.yaml b/fdio.infra.ansible/roles/vpp_device/handlers/main.yaml
index 29342ae43c..3ac80cc16e 100644
--- a/fdio.infra.ansible/roles/vpp_device/handlers/main.yaml
+++ b/fdio.infra.ansible/roles/vpp_device/handlers/main.yaml
@@ -1,21 +1,21 @@
---
-# file: roles/vpp_device/handlers/main.yaml
+# file: handlers/main.yaml
-- name: Start csit-initialize-vfs.service
- systemd:
+- name: "Start csit-initialize-vfs.service"
+ ansible.builtin.systemd:
enabled: true
- state: started
- name: csit-initialize-vfs.service
+ state: "started"
+ name: "csit-initialize-vfs.service"
tags:
- start-vf-service
-- name: Update GRUB
- command: update-grub
+- name: "Update GRUB"
+ ansible.builtin.command: "update-grub"
tags:
- update-grub
-- name: Reboot server
- reboot:
+- 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
index 418217aaac..91916456af 100644
--- a/fdio.infra.ansible/roles/vpp_device/tasks/main.yaml
+++ b/fdio.infra.ansible/roles/vpp_device/tasks/main.yaml
@@ -1,20 +1,18 @@
---
-# file: roles/vpp_device/tasks/main.yaml
+# file: tasks/main.yaml
-- name: Load Kernel Modules By Default
- lineinfile:
+- name: "Load Kernel Modules On Startup (vfio-pci)"
+ ansible.builtin.lineinfile:
path: "/etc/modules"
state: "present"
line: "{{ item }}"
with_items:
- "vfio-pci"
- when:
- - cpu_microarchitecture == "thunderx2"
tags:
- load-kernel-modules
-- name: Disable IPv6 Router Advertisement
- sysctl:
+- name: "Disable IPv6 Router Advertisement"
+ ansible.builtin.sysctl:
name: "net.ipv6.conf.default.accept_ra"
value: "0"
state: "present"
@@ -23,9 +21,19 @@
tags:
- set-sysctl
-- name: Disable IPv6 Router Advertisement
- sysctl:
- name: "net.ipv6.conf.all.accept_ra"
+- 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"
@@ -33,9 +41,9 @@
tags:
- set-sysctl
-- name: Disable IPv6 MLDv1 interval
- sysctl:
- name: "net.ipv6.conf.all.mldv1_unsolicited_report_interval"
+- 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"
@@ -43,9 +51,9 @@
tags:
- set-sysctl
-- name: Disable IPv6 MLDv2 interval
- sysctl:
- name: "net.ipv6.conf.all.mldv2_unsolicited_report_interval"
+- 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"
@@ -53,9 +61,9 @@
tags:
- set-sysctl
-- name: Disable IPv6 Autoconf
- sysctl:
- name: "net.ipv6.conf.all.autoconf"
+- 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"
@@ -63,9 +71,9 @@
tags:
- set-sysctl
-- name: Disable IPv6 MC Forwarding
- sysctl:
- name: "net.ipv6.conf.all.mc_forwarding"
+- 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"
@@ -73,8 +81,8 @@
tags:
- set-sysctl
-- name: Copy csit-initialize-vfs.sh
- copy:
+- name: "Copy csit-initialize-vfs.sh"
+ ansible.builtin.copy:
src: "files/csit-initialize-vfs.sh"
dest: "/usr/local/bin/"
owner: "root"
@@ -83,8 +91,8 @@
tags:
- copy-vf-script
-- name: Copy csit-initialize-vfs-data.sh
- copy:
+- 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"
@@ -94,8 +102,8 @@
when:
- vfs_data_file is defined
-- name: Copy Default csit-initialize-vfs-data.sh
- copy:
+- 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"
@@ -105,8 +113,8 @@
when:
- vfs_data_file is not defined
-- name: Start csit-initialize-vfs.service
- copy:
+- name: "Start csit-initialize-vfs.service"
+ ansible.builtin.copy:
src: "files/csit-initialize-vfs.service"
dest: "/etc/systemd/system/"
owner: "root"
@@ -117,10 +125,10 @@
tags:
- start-vf-service
-- meta: flush_handlers
+- ansible.builtin.meta: "flush_handlers"
-- name: Set Hugepages In GRUB
- lineinfile:
+- name: "Set Hugepages In GRUB"
+ ansible.builtin.lineinfile:
path: "/etc/default/grub"
state: "present"
regexp: "^GRUB_CMDLINE_LINUX="
diff --git a/fdio.infra.ansible/site.yaml b/fdio.infra.ansible/site.yaml
index 9350a2c140..45a090344e 100644
--- a/fdio.infra.ansible/site.yaml
+++ b/fdio.infra.ansible/site.yaml
@@ -6,12 +6,14 @@
- 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:
diff --git a/fdio.infra.ansible/sut.yaml b/fdio.infra.ansible/sut.yaml
index d0faad10a7..57be961ee1 100644
--- a/fdio.infra.ansible/sut.yaml
+++ b/fdio.infra.ansible/sut.yaml
@@ -32,8 +32,8 @@
tags: dpdk
- role: kernel_vm
tags: kernel_vm
- - role: csit_sut_image
- tags: csit_sut_image
+ - role: docker_images
+ tags: docker_images
- role: performance_tuning
tags: performance_tuning
- role: cleanup
@@ -60,12 +60,12 @@
tags: python_env
- role: vpp
tags: vpp
- - role: dpdk
- tags: dpdk
- role: iperf
tags: iperf
- role: docker
tags: docker
+# - role: dpdk
+# tags: dpdk
- role: aws
tags: aws
- role: cleanup
@@ -103,3 +103,32 @@
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
index 86184e10a7..de8706ffd1 100644
--- a/fdio.infra.ansible/tg.yaml
+++ b/fdio.infra.ansible/tg.yaml
@@ -26,16 +26,14 @@
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: tg
- tags: tg
- - role: csit_sut_image
- tags: csit_sut_image
- role: performance_tuning
tags: performance_tuning
- role: cleanup
@@ -60,20 +58,18 @@
tags: common
- role: python_env
tags: python_env
- - role: dpdk
- tags: dpdk
- role: docker
tags: docker
- - role: tg
- tags: tg
- role: iperf
tags: iperf
+# - role: dpdk
+# tags: dpdk
+ - role: aws
+ tags: aws
- role: trex
tags: trex
- role: ab
tags: ab
- - role: aws
- tags: aws
- role: cleanup
tags: cleanup
- role: calibration
@@ -97,8 +93,6 @@
tags: python_env
- role: docker
tags: docker
- - role: tg
- tags: tg
- role: iperf
tags: iperf
- role: trex
@@ -111,3 +105,32 @@
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/vpp_device.yaml b/fdio.infra.ansible/vpp_device.yaml
index ced882a148..21676811c7 100644
--- a/fdio.infra.ansible/vpp_device.yaml
+++ b/fdio.infra.ansible/vpp_device.yaml
@@ -18,12 +18,14 @@
tags: baremetal
- role: common
tags: common
- - role: kernel
- tags: kernel
+# - role: kernel
+# tags: kernel
- role: intel
tags: intel
- role: docker
tags: docker
+ - role: docker_images
+ tags: docker_images
- role: nomad
tags: nomad
- role: consul
@@ -36,7 +38,5 @@
tags: vpp_device
- role: kernel_vm
tags: kernel_vm
- - role: csit_sut_image
- tags: csit_sut_image
- role: cleanup
tags: cleanup
diff --git a/fdio.infra.packer/aws_c5n/ubuntu_focal.pkr.hcl b/fdio.infra.packer/aws_c5n/ubuntu_focal.pkr.hcl
deleted file mode 100644
index 06d849abb3..0000000000
--- a/fdio.infra.packer/aws_c5n/ubuntu_focal.pkr.hcl
+++ /dev/null
@@ -1,128 +0,0 @@
-packer {
- required_plugins {
- amazon = {
- version = ">= 1.0.1"
- 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_c5n_ubuntu_focal_sut" {
- ami_name = "csit_c5n_ubuntu_focal_sut"
- ami_description = "CSIT SUT image based on Ubuntu Focal"
- 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-0a875db8a031a9efb"
- ssh_username = "ubuntu"
-}
-
-source "amazon-ebs" "csit_c5n_ubuntu_focal_tg" {
- ami_name = "csit_c5n_ubuntu_focal_tg"
- ami_description = "CSIT TG image based on Ubuntu Focal"
- 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-0a875db8a031a9efb"
- ssh_username = "ubuntu"
-}
-
-build {
- name = "csit_c5n_ubuntu_focal_sut-packer"
- sources = [
- "source.amazon-ebs.csit_c5n_ubuntu_focal_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_c5n_ubuntu_focal_tg-packer"
- sources = [
- "source.amazon-ebs.csit_c5n_ubuntu_focal_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.packer/aws_c6gn/ubuntu_focal.pkr.hcl b/fdio.infra.packer/aws_c6gn/ubuntu_focal.pkr.hcl
deleted file mode 100644
index 42cbb39443..0000000000
--- a/fdio.infra.packer/aws_c6gn/ubuntu_focal.pkr.hcl
+++ /dev/null
@@ -1,119 +0,0 @@
-
-packer {
- required_plugins {
- amazon = {
- version = ">= 1.0.1"
- 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_c6gn_ubuntu_focal_sut" {
- ami_name = "csit_c6gn_ubuntu_focal_sut"
- ami_description = "CSIT SUT image based on Ubuntu Focal"
- ena_support = true
- instance_type = "c6gn.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-0a875db8a031a9efb"
- ssh_username = "ubuntu"
-}
-source "amazon-ebs" "csit_c6gn_ubuntu_focal_tg" {
- ami_name = "csit_c6gn_ubuntu_focal_tg"
- ami_description = "CSIT TG image based on Ubuntu Focal"
- ena_support = true
- instance_type = "c6gn.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-0a875db8a031a9efb"
- ssh_username = "ubuntu"
-}
-build {
- name = "csit_c6gn_ubuntu_focal_sut-packer"
- sources = [
- "source.amazon-ebs.csit_c6gn_ubuntu_focal_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_c6gn_ubuntu_focal_tg-packer"
- sources = [
- "source.amazon-ebs.csit_c6gn_ubuntu_focal_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/docker-dnsmasq/Dockerfile b/fdio.infra.pxe/docker-dnsmasq/Dockerfile
deleted file mode 100644
index e15a05d676..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/Dockerfile
+++ /dev/null
@@ -1,61 +0,0 @@
-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/casper/ubuntu-focal-amd64/ \
- && mkdir -p /var/lib/tftpboot/casper/ubuntu-focal-arm64/ \
- && mkdir -p /var/lib/tftpboot/casper/ubuntu-jammy-amd64/ \
- && mkdir -p /var/lib/tftpboot/casper/ubuntu-jammy-arm64/
-
-ENV ISO_FOCAL_AMD64 https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso
-ENV ISO_FOCAL_ARM64 https://cdimage.ubuntu.com/releases/20.04/release/ubuntu-20.04.4-live-server-arm64.iso
-ENV EFI_FOCAL_AMD64 http://archive.ubuntu.com/ubuntu/dists/focal/main/uefi/grub2-amd64/current/grubnetx64.efi.signed
-ENV EFI_FOCAL_ARM64 http://ports.ubuntu.com/ubuntu-ports/dists/focal/main/uefi/grub2-arm64/current/grubnetaa64.efi.signed
-
-ENV ISO_JAMMY_AMD64 https://releases.ubuntu.com/22.04/ubuntu-22.04-live-server-amd64.iso
-ENV ISO_JAMMY_ARM64 https://cdimage.ubuntu.com/releases/22.04/release/ubuntu-22.04-live-server-arm64.iso
-ENV EFI_JAMMY_AMD64 http://archive.ubuntu.com/ubuntu/dists/focal/main/uefi/grub2-amd64/current/grubnetx64.efi.signed
-ENV EFI_JAMMY_ARM64 http://ports.ubuntu.com/ubuntu-ports/dists/focal/main/uefi/grub2-arm64/current/grubnetaa64.efi.signed
-
-RUN echo "Preparing Grub EFI Binary" \
- && wget $EFI_JAMMY_AMD64 -O /var/lib/tftpboot/grub/grubnetx64.efi.signed \
- && wget $EFI_JAMMY_ARM64 -O /var/lib/tftpboot/grub/grubnetaa64.efi.signed
-
-RUN echo "Preparing Casper Kernel" \
- && wget $ISO_FOCAL_AMD64 -O /ubuntu-20.04.4-live-server-amd64.iso \
- && isoinfo -i /ubuntu-20.04.4-live-server-amd64.iso -x "/CASPER/INITRD.;1" > /var/lib/tftpboot/casper/ubuntu-focal-amd64/initrd \
- && isoinfo -i /ubuntu-20.04.4-live-server-amd64.iso -x "/CASPER/VMLINUZ.;1" > /var/lib/tftpboot/casper/ubuntu-focal-amd64/vmlinuz\
- && wget $ISO_FOCAL_ARM64 -O /ubuntu-20.04.4-live-server-arm64.iso \
- && isoinfo -i /ubuntu-20.04.4-live-server-arm64.iso -x "/CASPER/INITRD.;1" > /var/lib/tftpboot/casper/ubuntu-focal-arm64/initrd \
- && isoinfo -i /ubuntu-20.04.4-live-server-arm64.iso -x "/CASPER/VMLINUZ.;1" > /var/lib/tftpboot/casper/ubuntu-focal-arm64/vmlinuz \
- && wget $ISO_JAMMY_AMD64 -O /ubuntu-22.04-live-server-amd64.iso \
- && isoinfo -i /ubuntu-22.04-live-server-amd64.iso -x "/CASPER/INITRD.;1" > /var/lib/tftpboot/casper/ubuntu-jammy-amd64/initrd \
- && isoinfo -i /ubuntu-22.04-live-server-amd64.iso -x "/CASPER/VMLINUZ.;1" > /var/lib/tftpboot/casper/ubuntu-jammy-amd64/vmlinuz\
- && wget $ISO_JAMMY_ARM64 -O /ubuntu-22.04-live-server-arm64.iso \
- && isoinfo -i /ubuntu-22.04-live-server-arm64.iso -x "/CASPER/INITRD.;1" > /var/lib/tftpboot/casper/ubuntu-jammy-arm64/initrd \
- && isoinfo -i /ubuntu-22.04-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
deleted file mode 100755
index 23b7285612..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/etc/dnsmasq.conf
+++ /dev/null
@@ -1,109 +0,0 @@
-# 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,grub/grubnetx64.efi.signed
-dhcp-boot=tag:efi-x86_64,grub/grubnetx64.efi.signed
-dhcp-boot=tag:efi-aa64,grub/grubnetaa64.efi.signed
-
-# General DHCP settings.
-dhcp-authoritative
-dhcp-broadcast
-
-# DHCP ranges for yul1_1.
-dhcp-range=yul1_1,10.30.51.16,10.30.51.92,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.10,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=00:fe:c8:58:1e:f6,10.30.51.16,s16-nomad,infinite # enp16s0f0
-dhcp-host=00:fe:c8:e5:68:c2,10.30.51.17,s17-nomad,infinite # enp8s0f0
-dhcp-host=00:f2:8b:7c:fb:4a,10.30.51.18,s18-nomad,infinite # enp16s0f0
-dhcp-host=58:ac:78:5c:90:78,10.30.51.19,s19-nomad,infinite # enp16s0f0
-dhcp-host=00:f2:8b:7c:fb:12,10.30.51.20,s20-nomad,infinite # enp8s0f0
-dhcp-host=00:42:68:6f:68:ee,10.30.51.21,s21-nomad,infinite # enp9s0f0
-dhcp-host=00:42:68:6f:6f:c0,10.30.51.22,s22-nomad,infinite # enp9s0f0
-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=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:8a:8d:b6,10.30.51.44,s3-t21-sut1,infinite # eno1
-dhcp-host=ac:1f:6b:8a:8d:94,10.30.51.45,s4-t21-tg1,infinite # eno1
-dhcp-host=ac:1f:6b:8b:54:c4,10.30.51.46,s11-t31-sut1,infinite # eno1
-dhcp-host=ac:1f:6b:8b:56:b6,10.30.51.47,s12-t31-sut2,infinite # eno1
-dhcp-host=ac:1f:6b:8b:55:78,10.30.51.48,s13-t31-tg1,infinite # eno1
-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=ac:1f:6b:ab:d9:ae,10.30.51.52,s5-t22-sut1,infinite # eno1
-dhcp-host=ac:1f:6b:ab:d7:4a,10.30.51.53,s6-t22-tg1,infinite # eno1
-dhcp-host=ac:1f:6b:ab:d7:92,10.30.51.54,s7-t23-sut1,infinite # eno1
-dhcp-host=ac:1f:6b:8b:56:8c,10.30.51.55,s8-t23-tg1,infinite # eno1
-dhcp-host=ac:1f:6b:8b:55:d8,10.30.51.56,s9-t24-sut1,infinite # eno1
-dhcp-host=ac:1f:6b:8a:8d:0a,10.30.51.57,s10-t24-tg1,infinite # eno1
-dhcp-host=ac:1f:6b:8b:53:64,10.30.51.58,s14-t32-sut1,infinite # eno1
-dhcp-host=ac:1f:6b:8b:56:e2,10.30.51.59,s15-t32-sut2,infinite # eno1
-dhcp-host=ac:1f:6b:8b:55:ae,10.30.51.60,s16-t32-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=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:8b:54:c8,10.32.8.10,s28-t26t35-tg1,infinite # eno1
-dhcp-host=0c:c4:7a:fc:ca:cc,10.32.8.11,s29-t26-sut1,infinite # eno3
-dhcp-host=0c:c4:7a:fc:c9:58,10.32.8.12,s30-t35-sut1,infinite # eno3
-dhcp-host=0c:c4:7a:fc:ca:90,10.32.8.13,s31-t35-sut2,infinite # eno3
-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 \ No newline at end of file
diff --git a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:42:68:6f:68:ee b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:42:68:6f:68:ee
deleted file mode 100644
index b0d67c8a22..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:42:68:6f:68:ee
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s21-nomad" {
- linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=00:42:68:6f:68:ee url=https://releases.ubuntu.com/22.04/ubuntu-22.04-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_jammy_amd64/00:42:68:6f:68:ee/ --- 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-00:42:68:6f:6f:c0 b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:42:68:6f:6f:c0
deleted file mode 100644
index 7d4c34b8f9..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:42:68:6f:6f:c0
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s21-nomad" {
- linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=00:42:68:6f:6f:c0 url=https://releases.ubuntu.com/22.04/ubuntu-22.04-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_jammy_amd64/00:42:68:6f:6f:c0/ --- 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-00:f2:8b:7c:fb:12 b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:f2:8b:7c:fb:12
deleted file mode 100644
index 0216a5af6a..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:f2:8b:7c:fb:12
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s20-nomad" {
- linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=00:f2:8b:7c:fb:12 url=https://releases.ubuntu.com/22.04/ubuntu-22.04-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.21:8081/ubuntu_jammy_amd64/00:f2:8b:7c:fb:12/ --- 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-00:f2:8b:7c:fb:4a b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:f2:8b:7c:fb:4a
deleted file mode 100644
index 3f4d5b2084..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:f2:8b:7c:fb:4a
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s18-nomad" {
- linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=00:f2:8b:7c:fb:4a url=https://releases.ubuntu.com/22.04/ubuntu-22.04-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_jammy_amd64/00:f2:8b:7c:fb:4a/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-jammy-amd64/initrd
-}
diff --git a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:fe:c8:58:1e:f6 b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:fe:c8:58:1e:f6
deleted file mode 100644
index 521ae1a466..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:fe:c8:58:1e:f6
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s16-nomad" {
- linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=00:fe:c8:58:1e:f6 url=https://releases.ubuntu.com/22.04/ubuntu-22.04-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_jammy_amd64/00:fe:c8:58:1e:f6/ --- 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-00:fe:c8:e5:68:32 b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:fe:c8:e5:68:32
deleted file mode 100644
index 3ee1863e34..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:fe:c8:e5:68:32
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install t1-sut1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=00:fe:c8:e5:68:32 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/00:fe:c8:e5:68:32/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-amd64/initrd
-} \ No newline at end of file
diff --git a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:fe:c8:e5:68:c2 b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:fe:c8:e5:68:c2
deleted file mode 100644
index 739076aded..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:fe:c8:e5:68:c2
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s17-nomad" {
- linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=00:fe:c8:e5:68:c2 url=https://releases.ubuntu.com/22.04/ubuntu-22.04-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_jammy_amd64/00:fe:c8:e5:68:c2/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-jammy-amd64/initrd
-}
diff --git a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:fe:c8:e5:68:e0 b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:fe:c8:e5:68:e0
deleted file mode 100644
index e21bfc07b4..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:fe:c8:e5:68:e0
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install t2-sut1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=00:fe:c8:e5:68:e0 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/00:fe:c8:e5:68:e0/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-amd64/initrd
-} \ No newline at end of file
diff --git a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:fe:c8:e5:6a:72 b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:fe:c8:e5:6a:72
deleted file mode 100644
index ab4d7db762..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:fe:c8:e5:6a:72
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install t2-tg1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=00:fe:c8:e5:6a:72 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/00:fe:c8:e5:6a:72/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-amd64/initrd
-} \ No newline at end of file
diff --git a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:fe:c8:e5:6c:76 b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:fe:c8:e5:6c:76
deleted file mode 100644
index 7496531bf0..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-00:fe:c8:e5:6c:76
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install t1-tg1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=00:fe:c8:e5:6c:76 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/00:fe:c8:e5:6c:76/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-amd64/initrd
-} \ No newline at end of file
diff --git a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-0c:c4:7a:fc:c9:58 b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-0c:c4:7a:fc:c9:58
deleted file mode 100644
index ec18099e77..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-0c:c4:7a:fc:c9:58
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s30-t35-sut1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=0c:c4:7a:fc:c9:58 url=http://10.32.8.14:8081/ubuntu_focal_amd64/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.32.8.14:8081/ubuntu_focal_amd64/0c:c4:7a:fc:c9:58/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-amd64/initrd
-}
diff --git a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-0c:c4:7a:fc:ca:90 b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-0c:c4:7a:fc:ca:90
deleted file mode 100644
index a802ac4eb7..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-0c:c4:7a:fc:ca:90
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s31-t35-sut2" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=0c:c4:7a:fc:ca:90 url=http://10.32.8.14:8081/ubuntu_focal_amd64/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.32.8.14:8081/ubuntu_focal_amd64/0c:c4:7a:fc:ca:90/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-amd64/initrd
-}
diff --git a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-0c:c4:7a:fc:ca:cc b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-0c:c4:7a:fc:ca:cc
deleted file mode 100644
index 4bad968ce3..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-0c:c4:7a:fc:ca:cc
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s29-t26-sut1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=0c:c4:7a:fc:ca:cc url=http://10.32.8.14:8081/ubuntu_focal_amd64/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.32.8.14:8081/ubuntu_focal_amd64/0c:c4:7a:fc:ca:cc/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-amd64/initrd
-}
diff --git a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-38:0e:4d:9c:4b:0c b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-38:0e:4d:9c:4b:0c
deleted file mode 100644
index 727a8fcfd5..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-38:0e:4d:9c:4b:0c
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s45-nomad" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=38:0e:4d:9c:4b:0c url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/38:0e:4d:9c:4b:0c/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-amd64/initrd
-} \ No newline at end of file
diff --git a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-38:0e:4d:9c:85:7a b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-38:0e:4d:9c:85:7a
deleted file mode 100644
index cf6174e207..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-38:0e:4d:9c:85:7a
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s42-nomad" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=38:0e:4d:9c:85:7a url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/38:0e:4d:9c:85:7a/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-amd64/initrd
-} \ No newline at end of file
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
deleted file mode 100644
index f0caf112a1..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:43:a3:ba
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s60-t210-sut1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:43:a3:ba url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.32.8.14:8081/ubuntu_focal_amd64/3c:ec:ef:43:a3:ba/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index 22a20e1afd..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:46:34:e8
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s61-t210-tg1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:46:34:e8 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.32.8.14:8081/ubuntu_focal_amd64/3c:ec:ef:46:34:e8/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index b500a07feb..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:7f:12
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s72-t212-tg1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:b9:7f:12 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/3c:ec:ef:b9:7f:12/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index a9ffc61191..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:a6:80
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s66-t37-sut2" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:b9:a6:80 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/3c:ec:ef:b9:a6:80/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index be73a66ed2..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:a6:92
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s85-t214-sut1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:b9:a6:92 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/3c:ec:ef:b9:a6:92/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index b734157ada..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:a6:ba
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s65-t37-sut1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:b9:a6:ba url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/3c:ec:ef:b9:a6:ba/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index cf2837b6c0..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:a6:c6
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s67-t37-tg1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:b9:a6:c6 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/3c:ec:ef:b9:a6:c6/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index 0509470c0d..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:a6:ca
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s71-t212-sut1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:b9:a6:ca url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/3c:ec:ef:b9:a6:ca/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index c7f5266a5d..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:cc:44
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s89-t39t310-tg1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:b9:cc:44 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/3c:ec:ef:b9:cc:44/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index 8c7859df8c..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:b9:cc:56
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s64-t34-tg1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:b9:cc:56 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/3c:ec:ef:b9:cc:56/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index c3a8c5b3bf..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:92:26
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s84-t213-tg1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:bc:92:26 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/3c:ec:ef:bc:92:26/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index 6167528635..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:92:b2
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s80-t38-tg1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:bc:92:b2 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/3c:ec:ef:bc:92:b2/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index d7885f5b78..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:92:e4
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s86-t214-tg1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:bc:92:e4 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/3c:ec:ef:bc:92:e4/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index 9937bb0d2c..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:92:e8
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s87-t215-sut1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:bc:92:e8 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/3c:ec:ef:bc:92:e8/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index 21e8bd7721..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:a0:d4
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s79-t38-sut2" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:bc:a0:d4 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/3c:ec:ef:bc:a0:d4/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index aeafd9f9dd..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:a0:ec
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s78-t38-sut1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:bc:a0:ec url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/3c:ec:ef:bc:a0:ec/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index 808916286a..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:a1:ac
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s88-t215-tg1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:bc:a1:ac url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/3c:ec:ef:bc:a1:ac/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index 6c5780b303..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-3c:ec:ef:bc:a1:ea
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s83-t213-sut1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=3c:ec:ef:bc:a1:ea url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/3c:ec:ef:bc:a1:ea/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index 68548be134..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-40:8d:5c:e7:b2:6e
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install fdio-marvell-dev" {
- linux /casper/ubuntu-focal-arm64/vmlinuz ip=dhcp interface=40:8d:5c:e7:b2:6e url=http://10.30.51.20:8081/ubuntu_focal_arm64/ubuntu-20.04.4-live-server-arm64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_arm64/40:8d:5c:e7:b2:6e/ --- console=ttyAMA0,115200n8 quiet
- initrd /casper/ubuntu-focal-arm64/initrd
-} \ No newline at end of file
diff --git a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-4c:00:82:ae:5a:f8 b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-4c:00:82:ae:5a:f8
deleted file mode 100644
index 37cba4d8c5..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-4c:00:82:ae:5a:f8
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s43-nomad" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=4c:00:82:ae:5a:f8 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/4c:00:82:ae:5a:f8/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-amd64/initrd
-} \ No newline at end of file
diff --git a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-58:ac:78:5c:90:78 b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-58:ac:78:5c:90:78
deleted file mode 100644
index f893352c23..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-58:ac:78:5c:90:78
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s19-nomad" {
- linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=58:ac:78:5c:90:78 url=https://releases.ubuntu.com/22.04/ubuntu-22.04-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_jammy_amd64/58:ac:78:5c:90:78/ --- 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-6c:41:6a:1f:39:26 b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-6c:41:6a:1f:39:26
deleted file mode 100644
index 7adb118f4e..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-6c:41:6a:1f:39:26
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s42-nomad" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=6c:41:6a:1f:39:26 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/6c:41:6a:1f:39:26/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-amd64/initrd
-} \ No newline at end of file
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
deleted file mode 100644
index a641c2616c..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-90:e2:ba:49:db:b4
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s63-t34-sut2" {
- linux /casper/ubuntu-focal-arm64/vmlinuz ip=dhcp interface=90:e2:ba:49:db:b4 url=http://10.30.51.20:8081/ubuntu_focal_arm64/ubuntu-20.04.4-live-server-arm64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_arm64/90:e2:ba:49:db:b4/ --- console=ttyAMA0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index 412265e144..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-90:e2:ba:55:be:32
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s62-t34-sut1" {
- linux /casper/ubuntu-focal-arm64/vmlinuz ip=dhcp interface=90:e2:ba:55:be:32 url=http://10.30.51.20:8081/ubuntu_focal_arm64/ubuntu-20.04.4-live-server-arm64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_arm64/90:e2:ba:55:be:32/ --- console=ttyAMA0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index 968abb4f6c..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-a0:a3:3b:c1:12:fa
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s18-t33-sut2" {
- linux /casper/ubuntu-focal-arm64/vmlinuz ip=dhcp interface=a0:a3:3b:c1:12:fa url=http://10.30.51.20:8081/ubuntu_focal_arm64/ubuntu-20.04.4-live-server-arm64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_arm64/a0:a3:3b:c1:12:fa/ --- console=ttyAMA0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index 87c837752c..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-a0:a3:3b:c1:14:28
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s17-t33-sut1" {
- linux /casper/ubuntu-focal-arm64/vmlinuz ip=dhcp interface=a0:a3:3b:c1:14:28 url=http://10.30.51.20:8081/ubuntu_focal_arm64/ubuntu-20.04.4-live-server-arm64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_arm64/a0:a3:3b:c1:14:28/ --- console=ttyAMA0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index 316563c5b3..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-a4:bf:01:55:ac:39
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s93-t39-sut1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=a4:bf:01:55:ac:39 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/a4:bf:01:55:ac:39/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index 773136c4b2..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-a4:bf:01:55:af:5e
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s94-t39-sut2" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=a4:bf:01:55:af:5e url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/a4:bf:01:55:af:5e/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index 5faf0ff0e8..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:5a:6a:b4
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s24-nomad" {
- linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:5a:6a:b4 url=https://releases.ubuntu.com/22.04/ubuntu-22.04-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20: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
deleted file mode 100644
index 8c6162b1fc..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:5a:6a:d4
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s23-nomad" {
- linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:5a:6a:d4 url=https://releases.ubuntu.com/22.04/ubuntu-22.04-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20: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
deleted file mode 100644
index 4e2e1c75b9..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:5a:6b:08
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s25-nomad" {
- linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:5a:6b:08 url=https://releases.ubuntu.com/22.04/ubuntu-22.04-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20: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
deleted file mode 100644
index 1da85032c8..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8a:8c:76
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s1-t11-sut1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:8a:8c:76 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/ac:1f:6b:8a:8c:76/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index 40262136d8..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8a:8d:0a
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s10-t24-tg1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:8a:8d:0a url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/ac:1f:6b:8a:8d:0a/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-amd64/initrd
-}
diff --git a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8a:8d:94 b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8a:8d:94
deleted file mode 100644
index a38ed4ac64..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8a:8d:94
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s4-t21-tg1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:8a:8d:94 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/ac:1f:6b:8a:8d:94/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-amd64/initrd
-}
diff --git a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8a:8d:b6 b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8a:8d:b6
deleted file mode 100644
index eb07940cee..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8a:8d:b6
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s3-t21-sut1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:8a:8d:b6 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/ac:1f:6b:8a:8d:b6/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index 41b8781cdc..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:53:60
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s19-t33t211-tg1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:8b:53:60 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/ac:1f:6b:8b:53:60/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-amd64/initrd
-}
diff --git a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:53:64 b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:53:64
deleted file mode 100644
index 67c0a047d1..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:53:64
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s14-t32-sut1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:8b:53:64 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/ac:1f:6b:8b:53:64/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index cac8c05a79..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:53:96
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s2-t12-sut1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:8b:53:96 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/ac:1f:6b:8b:53:96/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-amd64/initrd
-}
diff --git a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:54:c4 b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:54:c4
deleted file mode 100644
index f1cfea35a2..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:54:c4
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s11-t31-sut1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:8b:54:c4 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/ac:1f:6b:8b:54:c4/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-amd64/initrd
-}
diff --git a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:54:c8 b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:54:c8
deleted file mode 100644
index e6cee6d4c5..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:54:c8
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s28-t26t35-tg1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:8b:54:c8 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.32.8.14:8081/ubuntu_focal_amd64/ac:1f:6b:8b:54:c8/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-amd64/initrd
-}
diff --git a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:55:78 b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:55:78
deleted file mode 100644
index 0c0d4925cd..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:55:78
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s13-t31-tg1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:8b:55:78 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/ac:1f:6b:8b:55:78/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-amd64/initrd
-}
diff --git a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:55:ae b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:55:ae
deleted file mode 100644
index 6e2cf29d7a..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:55:ae
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s16-t32-tg1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:8b:55:ae url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/ac:1f:6b:8b:55:ae/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index 7dd4cd593f..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:55:d8
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s9-t24-sut1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:8b:55:d8 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/ac:1f:6b:8b:55:d8/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-amd64/initrd
-}
diff --git a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:56:8c b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:56:8c
deleted file mode 100644
index 857d0949d2..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:56:8c
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s8-t23-tg1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:8b:56:8c url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/ac:1f:6b:8b:56:8c/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-amd64/initrd
-}
diff --git a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:56:b6 b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:56:b6
deleted file mode 100644
index 46a50ad34b..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:56:b6
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s12-t31-sut2" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:8b:56:b6 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/ac:1f:6b:8b:56:b6/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-amd64/initrd
-}
diff --git a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:56:e2 b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:56:e2
deleted file mode 100644
index efb4ddcb4e..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:8b:56:e2
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s15-t32-sut2" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:8b:56:e2 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/ac:1f:6b:8b:56:e2/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-amd64/initrd
-}
diff --git a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ab:d7:4a b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ab:d7:4a
deleted file mode 100644
index 3f3d907f1f..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ab:d7:4a
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s6-t22-tg1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:ab:d7:4a url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/ac:1f:6b:ab:d7:4a/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-amd64/initrd
-}
diff --git a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ab:d7:92 b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ab:d7:92
deleted file mode 100644
index 06fc20fe70..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ab:d7:92
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s7-t23-sut1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:ab:d7:92 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/ac:1f:6b:ab:d7:92/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-amd64/initrd
-}
diff --git a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ab:d9:ae b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ab:d9:ae
deleted file mode 100644
index e776d32fb8..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ab:d9:ae
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s5-t22-sut1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:ab:d9:ae url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/ac:1f:6b:ab:d9:ae/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index 4c64e339cd..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d7:56
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s36-t28-tg1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:ac:d7:56 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/ac:1f:6b:ac:d7:56/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index 14b8862257..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d7:76
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s38-t29-tg1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:ac:d7:76 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/ac:1f:6b:ac:d7:76/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index d643bcf355..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d7:8c
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s34-t27-tg1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:ac:d7:8c url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/ac:1f:6b:ac:d7:8c/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index 2daf31d0c0..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d7:ba
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s37-t29-sut1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:ac:d7:ba url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/ac:1f:6b:ac:d7:ba/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index a138ea19a2..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d7:c0
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s35-t28-sut1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:ac:d7:c0 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/ac:1f:6b:ac:d7:c0/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index 834587d75c..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d7:d6
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s33-t27-sut1" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:ac:d7:d6 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/ac:1f:6b:ac:d7:d6/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-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
deleted file mode 100644
index 1a5ae0b0d0..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-ac:1f:6b:ac:d9:2e
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s26-nomad" {
- linux /casper/ubuntu-jammy-amd64/vmlinuz ip=dhcp interface=ac:1f:6b:ac:d9:2e url=https://releases.ubuntu.com/22.04/ubuntu-22.04-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20: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-b4:2e:99:ab:1d:dc b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-b4:2e:99:ab:1d:dc
deleted file mode 100644
index 7ddaaa1a9a..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-b4:2e:99:ab:1d:dc
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s56-t14-sut1" {
- linux /casper/ubuntu-focal-arm64/vmlinuz ip=dhcp interface=b4:2e:99:ab:1d:dc url=http://10.30.51.20:8081/ubuntu_focal_arm64/ubuntu-20.04.4-live-server-arm64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_arm64/b4:2e:99:ab:1d:dc/ --- console=ttyAMA0,115200n8 quiet
- initrd /casper/ubuntu-focal-arm64/initrd
-} \ No newline at end of file
diff --git a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-b4:2e:99:ab:1d:e8 b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-b4:2e:99:ab:1d:e8
deleted file mode 100644
index fc96e6be9d..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-b4:2e:99:ab:1d:e8
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s55-t13-sut1" {
- linux /casper/ubuntu-focal-arm64/vmlinuz ip=dhcp interface=b4:2e:99:ab:1d:e8 url=http://10.30.51.20:8081/ubuntu_focal_arm64/ubuntu-20.04.4-live-server-arm64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_arm64/b4:2e:99:ab:1d:e8/ --- console=ttyAMA0,115200n8 quiet
- initrd /casper/ubuntu-focal-arm64/initrd
-} \ No newline at end of file
diff --git a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-cc:46:d6:17:e0:58 b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-cc:46:d6:17:e0:58
deleted file mode 100644
index 141e66960d..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-cc:46:d6:17:e0:58
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install t1-sut2" {
- linux /casper/ubuntu-focal-amd64/vmlinuz ip=dhcp interface=cc:46:d6:17:e0:58 url=https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_amd64/cc:46:d6:17:e0:58/ --- console=ttyS0,115200n8 quiet
- initrd /casper/ubuntu-focal-amd64/initrd
-} \ No newline at end of file
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
deleted file mode 100644
index 9c17102ad2..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-d8:5e:d3:02:b1:9f
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s92-nomad" {
- linux /casper/ubuntu-jammy-arm64/vmlinuz ip=dhcp interface=d8:5e:d3:02:b1:9f url=http://10.30.51.20:8081/ubuntu_jammy_arm64/ubuntu-22.04-live-server-arm64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20: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
deleted file mode 100644
index 814b717899..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-d8:5e:d3:02:b1:bb
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s91-nomad" {
- linux /casper/ubuntu-jammy-arm64/vmlinuz ip=dhcp interface=d8:5e:d3:02:b1:bb url=http://10.30.51.20:8081/ubuntu_jammy_arm64/ubuntu-22.04-live-server-arm64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20: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-e0:d5:5e:ae:70:26 b/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-e0:d5:5e:ae:70:26
deleted file mode 100644
index 9e5a262647..0000000000
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg-e0:d5:5e:ae:70:26
+++ /dev/null
@@ -1,4 +0,0 @@
-menuentry "Install s27-t211-sut1" {
- linux /casper/ubuntu-focal-arm64/vmlinuz ip=dhcp interface=e0:d5:5e:ae:70:26 url=http://10.30.51.20:8081/ubuntu_focal_arm64/ubuntu-20.04.4-live-server-arm64.iso autoinstall ds=nocloud-net\;s=http://10.30.51.20:8081/ubuntu_focal_arm64/e0:d5:5e:ae:70:26/ --- console=ttyAMA0,115200n8 quiet
- initrd /casper/ubuntu-focal-arm64/initrd
-} \ No newline at end of file
diff --git a/fdio.infra.pxe/docker-nginx/Dockerfile b/fdio.infra.pxe/docker-nginx/Dockerfile
deleted file mode 100644
index 45151ae83d..0000000000
--- a/fdio.infra.pxe/docker-nginx/Dockerfile
+++ /dev/null
@@ -1,41 +0,0 @@
-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_FOCAL_AMD64 https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso
-ENV ISO_FOCAL_ARM64 https://cdimage.ubuntu.com/releases/20.04/release/ubuntu-20.04.4-live-server-arm64.iso
-ENV ISO_JAMMY_AMD64 https://releases.ubuntu.com/22.04/ubuntu-22.04-live-server-amd64.iso
-ENV ISO_JAMMY_ARM64 https://cdimage.ubuntu.com/releases/22.04/release/ubuntu-22.04-live-server-arm64.iso
-
-RUN echo "Preparing ISO Pre-cache" \
- && wget $ISO_FOCAL_AMD64 -O /ubuntu-20.04.4-live-server-amd64.iso \
- && wget $ISO_FOCAL_ARM64 -O /ubuntu-20.04.4-live-server-arm64.iso \
- && wget $ISO_JAMMY_AMD64 -O /ubuntu-22.04-live-server-amd64.iso \
- && wget $ISO_JAMMY_ARM64 -O /ubuntu-22.04-live-server-arm64.iso
-
-
-FROM nginx:stable-alpine
-
-LABEL Description="nginx service image"
-LABEL Version="2.0"
-
-ENV NGINX_FOCAL_AMD64 /usr/share/nginx/html/ubuntu_focal_amd64/
-ENV NGINX_FOCAL_ARM64 /usr/share/nginx/html/ubuntu_focal_arm64/
-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_FOCAL_AMD64 \
- && mkdir -p $NGINX_FOCAL_ARM64 \
- && mkdir -p $NGINX_JAMMY_AMD64 \
- && mkdir -p $NGINX_JAMMY_ARM64
-
-COPY --from=ubuntu_jammy /ubuntu-20.04.4-live-server-amd64.iso $NGINX_FOCAL_AMD64/ubuntu-20.04.4-live-server-amd64.iso
-COPY --from=ubuntu_jammy /ubuntu-20.04.4-live-server-arm64.iso $NGINX_FOCAL_ARM64/ubuntu-20.04.4-live-server-arm64.iso
-COPY --from=ubuntu_jammy /ubuntu-22.04-live-server-amd64.iso $NGINX_JAMMY_AMD64/ubuntu-22.04-live-server-amd64.iso
-COPY --from=ubuntu_jammy /ubuntu-22.04-live-server-arm64.iso $NGINX_JAMMY_ARM64/ubuntu-22.04-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_focal_amd64/00:42:68:6f:68:ee/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:42:68:6f:68:ee/user-data
deleted file mode 100644
index 2f7d13e26d..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:42:68:6f:68:ee/user-data
+++ /dev/null
@@ -1,83 +0,0 @@
-#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: s39-nomad
- password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
- realname: localadmin
- username: localadmin
- keyboard:
- layout: us
- toggle: null
- variant: ''
- locale: en_US.UTF-8
- network:
- ethernets:
- enp9s0f0:
- addresses: [ 10.30.51.29/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_focal_amd64/00:42:68:6f:6f:c0/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:42:68:6f:6f:c0/user-data
deleted file mode 100644
index 02e9161b87..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:42:68:6f:6f:c0/user-data
+++ /dev/null
@@ -1,83 +0,0 @@
-#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: s40-nomad
- password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
- realname: localadmin
- username: localadmin
- keyboard:
- layout: us
- toggle: null
- variant: ''
- locale: en_US.UTF-8
- network:
- ethernets:
- enp9s0f0:
- 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
- - 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_focal_amd64/00:f2:8b:7c:fb:12/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:f2:8b:7c:fb:12/user-data
deleted file mode 100644
index 435d37be63..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:f2:8b:7c:fb:12/user-data
+++ /dev/null
@@ -1,83 +0,0 @@
-#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: s41-nomad
- password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
- realname: localadmin
- username: localadmin
- keyboard:
- layout: us
- toggle: null
- variant: ''
- locale: en_US.UTF-8
- network:
- ethernets:
- enp8s0f0:
- 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
- - 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_focal_amd64/00:f2:8b:7c:fb:4a/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:f2:8b:7c:fb:4a/user-data
deleted file mode 100644
index 674512a288..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:f2:8b:7c:fb:4a/user-data
+++ /dev/null
@@ -1,83 +0,0 @@
-#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: s44-nomad
- password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
- realname: localadmin
- username: localadmin
- keyboard:
- layout: us
- toggle: null
- variant: ''
- locale: en_US.UTF-8
- network:
- ethernets:
- enp16s0f0:
- 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
- - 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_focal_amd64/00:fe:c8:58:1e:f6/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:58:1e:f6/user-data
deleted file mode 100644
index e562a65562..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:58:1e:f6/user-data
+++ /dev/null
@@ -1,83 +0,0 @@
-#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: s42-nomad
- password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
- realname: localadmin
- username: localadmin
- keyboard:
- layout: us
- toggle: null
- variant: ''
- locale: en_US.UTF-8
- network:
- ethernets:
- enp16s0f0:
- 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
- - 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_focal_amd64/00:fe:c8:e5:68:32/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:e5:68:32/user-data
deleted file mode 100644
index f36d6968b5..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:e5:68:32/user-data
+++ /dev/null
@@ -1,83 +0,0 @@
-#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: t1-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:
- enp23s0f0:
- addresses: [ 10.30.51.17/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_focal_amd64/00:fe:c8:e5:68:c2/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:e5:68:c2/user-data
deleted file mode 100644
index 64fb9f2423..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:e5:68:c2/user-data
+++ /dev/null
@@ -1,83 +0,0 @@
-#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: s43-nomad
- password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
- realname: localadmin
- username: localadmin
- keyboard:
- layout: us
- toggle: null
- variant: ''
- locale: en_US.UTF-8
- network:
- ethernets:
- enp8s0f0:
- 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
- - 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_focal_amd64/00:fe:c8:e5:68:e0/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:e5:68:e0/user-data
deleted file mode 100644
index fdeb827156..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:e5:68:e0/user-data
+++ /dev/null
@@ -1,83 +0,0 @@
-#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: t2-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:
- enp25s0f0:
- 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
- - 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_focal_amd64/00:fe:c8:e5:6a:72/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:e5:6a:72/user-data
deleted file mode 100644
index a0dd687517..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:e5:6a:72/user-data
+++ /dev/null
@@ -1,83 +0,0 @@
-#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: t2-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:
- enp11s0f0:
- addresses: [ 10.30.51.20/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_focal_amd64/00:fe:c8:e5:6c:76/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:e5:6c:76/user-data
deleted file mode 100644
index 06a13851fa..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:e5:6c:76/user-data
+++ /dev/null
@@ -1,83 +0,0 @@
-#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: t1-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:
- enp11s0f0:
- addresses: [ 10.30.51.16/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_focal_amd64/0c:c4:7a:fc:c9:58/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/0c:c4:7a:fc:c9:58/user-data
deleted file mode 100644
index 015444e2aa..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/0c:c4:7a:fc:c9:58/user-data
+++ /dev/null
@@ -1,83 +0,0 @@
-#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-t35-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:
- eno3:
- addresses: [ 10.32.8.12/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_focal_amd64/0c:c4:7a:fc:ca:90/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/0c:c4:7a:fc:ca:90/user-data
deleted file mode 100644
index eb845e2d78..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/0c:c4:7a:fc:ca:90/user-data
+++ /dev/null
@@ -1,83 +0,0 @@
-#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-t35-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:
- eno3:
- addresses: [ 10.32.8.13/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_focal_amd64/0c:c4:7a:fc:ca:cc/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/0c:c4:7a:fc:ca:cc/user-data
deleted file mode 100644
index 571ac721eb..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/0c:c4:7a:fc:ca:cc/user-data
+++ /dev/null
@@ -1,83 +0,0 @@
-#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: s29-t26-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:
- eno3:
- addresses: [ 10.32.8.11/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_focal_amd64/38:0e:4d:9c:4b:0c/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/38:0e:4d:9c:4b:0c/user-data
deleted file mode 100644
index 0f7e640bf6..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/38:0e:4d:9c:4b:0c/user-data
+++ /dev/null
@@ -1,83 +0,0 @@
-#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: s45-nomad
- password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
- realname: localadmin
- username: localadmin
- keyboard:
- layout: us
- toggle: null
- variant: ''
- locale: en_US.UTF-8
- network:
- ethernets:
- enp1s0f0:
- 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 \ No newline at end of file
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/38:0e:4d:9c:85:7a/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/38:0e:4d:9c:85:7a/user-data
deleted file mode 100644
index 3644cbfd77..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/38:0e:4d:9c:85:7a/user-data
+++ /dev/null
@@ -1,83 +0,0 @@
-#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: s44-nomad
- password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
- realname: localadmin
- username: localadmin
- keyboard:
- layout: us
- toggle: null
- variant: ''
- locale: en_US.UTF-8
- network:
- ethernets:
- enp1s0f0:
- 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 \ No newline at end of file
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/4c:00:82:ae:5a:f8/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/4c:00:82:ae:5a:f8/user-data
deleted file mode 100644
index 565e271ed8..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/4c:00:82:ae:5a:f8/user-data
+++ /dev/null
@@ -1,120 +0,0 @@
-#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: s43-nomad
- password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
- realname: localadmin
- username: localadmin
- keyboard:
- layout: us
- toggle: null
- variant: ''
- locale: en_US.UTF-8
- network:
- ethernets:
- enp1s0f0:
- 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-nvme0n1
- path: /dev/nvme0n1
- ptable: gpt
- preserve: false
- type: disk
- wipe: superblock-recursive
- - grub_device: false
- id: disk-nvme1n1
- path: /dev/nvme1n1
- 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
- - device: disk-nvme1n1
- 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-nvme0n1
- flag: ''
- grub_device: false
- id: partition-2
- number: 2
- preserve: false
- size: -1
- type: partition
- wipe: superblock
- - device: disk-nvme1n1
- 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_focal_amd64/58:ac:78:5c:90:78/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/58:ac:78:5c:90:78/user-data
deleted file mode 100644
index 541941e068..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/58:ac:78:5c:90:78/user-data
+++ /dev/null
@@ -1,83 +0,0 @@
-#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: s45-nomad
- password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
- realname: localadmin
- username: localadmin
- keyboard:
- layout: us
- toggle: null
- variant: ''
- locale: en_US.UTF-8
- network:
- ethernets:
- enp16s0f0:
- 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
- - 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_focal_amd64/6c:41:6a:1f:39:26/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/6c:41:6a:1f:39:26/user-data
deleted file mode 100644
index 0db693010f..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/6c:41:6a:1f:39:26/user-data
+++ /dev/null
@@ -1,120 +0,0 @@
-#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: s44-nomad
- password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
- realname: localadmin
- username: localadmin
- keyboard:
- layout: us
- toggle: null
- variant: ''
- locale: en_US.UTF-8
- network:
- ethernets:
- enp2s0f0:
- 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-nvme0n1
- path: /dev/nvme0n1
- ptable: gpt
- preserve: false
- type: disk
- wipe: superblock-recursive
- - grub_device: false
- id: disk-nvme1n1
- path: /dev/nvme1n1
- 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
- - device: disk-nvme1n1
- 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-nvme0n1
- flag: ''
- grub_device: false
- id: partition-2
- number: 2
- preserve: false
- size: -1
- type: partition
- wipe: superblock
- - device: disk-nvme1n1
- 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_focal_amd64/ac:1f:6b:8a:8d:0a/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8a:8d:0a/user-data
deleted file mode 100644
index d7c357ec39..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8a:8d:0a/user-data
+++ /dev/null
@@ -1,120 +0,0 @@
-#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: s7-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.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_focal_amd64/ac:1f:6b:8a:8d:94/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8a:8d:94/user-data
deleted file mode 100644
index 5ed996cf0b..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8a:8d:94/user-data
+++ /dev/null
@@ -1,120 +0,0 @@
-#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: s7-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.45/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_focal_amd64/ac:1f:6b:8a:8d:b6/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8a:8d:b6/user-data
deleted file mode 100644
index 8b6569059e..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8a:8d:b6/user-data
+++ /dev/null
@@ -1,120 +0,0 @@
-#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: s7-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.44/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_focal_amd64/ac:1f:6b:8b:53:64/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:53:64/user-data
deleted file mode 100644
index 07ef06132d..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:53:64/user-data
+++ /dev/null
@@ -1,120 +0,0 @@
-#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: s14-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:
- 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_focal_amd64/ac:1f:6b:8b:54:c4/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:54:c4/user-data
deleted file mode 100644
index 96ef675356..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:54:c4/user-data
+++ /dev/null
@@ -1,120 +0,0 @@
-#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: s11-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:
- eno1:
- addresses: [ 10.30.51.46/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_focal_amd64/ac:1f:6b:8b:54:c8/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:54:c8/user-data
deleted file mode 100644
index c773483892..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:54:c8/user-data
+++ /dev/null
@@ -1,83 +0,0 @@
-#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-t26t35-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.10/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_focal_amd64/ac:1f:6b:8b:55:78/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:55:78/user-data
deleted file mode 100644
index d4b3ac0d47..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:55:78/user-data
+++ /dev/null
@@ -1,120 +0,0 @@
-#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: s13-t31-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.48/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_focal_amd64/ac:1f:6b:8b:55:ae/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:55:ae/user-data
deleted file mode 100644
index 5d0acbc84b..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:55:ae/user-data
+++ /dev/null
@@ -1,120 +0,0 @@
-#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: s16-t32-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.60/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_focal_amd64/ac:1f:6b:8b:55:d8/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:55:d8/user-data
deleted file mode 100644
index b87fe6e928..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:55:d8/user-data
+++ /dev/null
@@ -1,120 +0,0 @@
-#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: s7-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.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_focal_amd64/ac:1f:6b:8b:56:8c/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:56:8c/user-data
deleted file mode 100644
index 65fa7ab737..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:56:8c/user-data
+++ /dev/null
@@ -1,120 +0,0 @@
-#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: s7-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.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_focal_amd64/ac:1f:6b:8b:56:b6/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:56:b6/user-data
deleted file mode 100644
index bc7af07360..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:56:b6/user-data
+++ /dev/null
@@ -1,120 +0,0 @@
-#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: s12-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:
- eno1:
- addresses: [ 10.30.51.47/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_focal_amd64/ac:1f:6b:8b:56:e2/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:56:e2/user-data
deleted file mode 100644
index 241639c10d..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:56:e2/user-data
+++ /dev/null
@@ -1,120 +0,0 @@
-#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: s15-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:
- 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_focal_amd64/ac:1f:6b:ab:d7:4a/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ab:d7:4a/user-data
deleted file mode 100644
index 375bb89f84..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ab:d7:4a/user-data
+++ /dev/null
@@ -1,120 +0,0 @@
-#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: s7-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.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_focal_amd64/ac:1f:6b:ab:d7:92/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ab:d7:92/user-data
deleted file mode 100644
index 6b74efa8e9..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ab:d7:92/user-data
+++ /dev/null
@@ -1,83 +0,0 @@
-#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: s7-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.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
- - 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_focal_amd64/ac:1f:6b:ab:d9:ae/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ab:d9:ae/user-data
deleted file mode 100644
index cd69f48904..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ab:d9:ae/user-data
+++ /dev/null
@@ -1,120 +0,0 @@
-#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: s7-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.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_focal_amd64/ac:1f:6b:ac:d7:c0/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ac:d7:c0/user-data
deleted file mode 100644
index c773483892..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ac:d7:c0/user-data
+++ /dev/null
@@ -1,83 +0,0 @@
-#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-t26t35-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.10/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_focal_amd64/cc:46:d6:17:e0:58/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/cc:46:d6:17:e0:58/user-data
deleted file mode 100644
index dc9d39c111..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/cc:46:d6:17:e0:58/user-data
+++ /dev/null
@@ -1,83 +0,0 @@
-#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: t1-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:
- enp25s0f0:
- addresses: [ 10.30.51.18/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_focal_arm64/b4:2e:99:ab:1d:dc/meta-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/b4:2e:99:ab:1d:dc/meta-data
deleted file mode 100644
index e69de29bb2..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/b4:2e:99:ab:1d:dc/meta-data
+++ /dev/null
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/b4:2e:99:ab:1d:dc/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/b4:2e:99:ab:1d:dc/user-data
deleted file mode 100644
index 2a5157ec4c..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/b4:2e:99:ab:1d:dc/user-data
+++ /dev/null
@@ -1,83 +0,0 @@
-#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-t14-sut1
- password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
- realname: localadmin
- username: localadmin
- keyboard:
- layout: us
- toggle: null
- variant: ''
- locale: en_US.UTF-8
- network:
- ethernets:
- enp8s0f0:
- 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-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_focal_arm64/b4:2e:99:ab:1d:e8/meta-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/b4:2e:99:ab:1d:e8/meta-data
deleted file mode 100644
index e69de29bb2..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/b4:2e:99:ab:1d:e8/meta-data
+++ /dev/null
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/b4:2e:99:ab:1d:e8/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/b4:2e:99:ab:1d:e8/user-data
deleted file mode 100644
index 649d2c27b4..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/b4:2e:99:ab:1d:e8/user-data
+++ /dev/null
@@ -1,83 +0,0 @@
-#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-t13-sut1
- password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
- realname: localadmin
- username: localadmin
- keyboard:
- layout: us
- toggle: null
- variant: ''
- locale: en_US.UTF-8
- network:
- ethernets:
- enp8s0f0:
- 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-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_focal_arm64/e0:d5:5e:ae:70:26/meta-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/e0:d5:5e:ae:70:26/meta-data
deleted file mode 100644
index e69de29bb2..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/e0:d5:5e:ae:70:26/meta-data
+++ /dev/null
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:42:68:6f:68:ee/meta-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:42:68:6f:68:ee/meta-data
deleted file mode 100644
index e69de29bb2..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:42:68:6f:68:ee/meta-data
+++ /dev/null
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:42:68:6f:68:ee/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:42:68:6f:68:ee/user-data
deleted file mode 100644
index 0b9c7552ad..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:42:68:6f:68:ee/user-data
+++ /dev/null
@@ -1,83 +0,0 @@
-#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:
- enp9s0f0:
- 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
- - 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/00:42:68:6f:6f:c0/meta-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:42:68:6f:6f:c0/meta-data
deleted file mode 100644
index e69de29bb2..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:42:68:6f:6f:c0/meta-data
+++ /dev/null
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:42:68:6f:6f:c0/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:42:68:6f:6f:c0/user-data
deleted file mode 100644
index 4f4d35826f..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:42:68:6f:6f:c0/user-data
+++ /dev/null
@@ -1,83 +0,0 @@
-#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:
- enp9s0f0:
- 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
- - 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/00:f2:8b:7c:fb:12/meta-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:f2:8b:7c:fb:12/meta-data
deleted file mode 100644
index e69de29bb2..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:f2:8b:7c:fb:12/meta-data
+++ /dev/null
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:f2:8b:7c:fb:12/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:f2:8b:7c:fb:12/user-data
deleted file mode 100644
index 831dff83f3..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:f2:8b:7c:fb:12/user-data
+++ /dev/null
@@ -1,83 +0,0 @@
-#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: s20-nomad
- password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
- realname: localadmin
- username: localadmin
- keyboard:
- layout: us
- toggle: null
- variant: ''
- locale: en_US.UTF-8
- network:
- ethernets:
- enp8s0f0:
- addresses: [ 10.30.51.20/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/00:f2:8b:7c:fb:4a/meta-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:f2:8b:7c:fb:4a/meta-data
deleted file mode 100644
index e69de29bb2..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:f2:8b:7c:fb:4a/meta-data
+++ /dev/null
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:f2:8b:7c:fb:4a/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:f2:8b:7c:fb:4a/user-data
deleted file mode 100644
index d3fa450d20..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:f2:8b:7c:fb:4a/user-data
+++ /dev/null
@@ -1,83 +0,0 @@
-#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-nomad
- password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
- realname: localadmin
- username: localadmin
- keyboard:
- layout: us
- toggle: null
- variant: ''
- locale: en_US.UTF-8
- network:
- ethernets:
- enp16s0f0:
- addresses: [ 10.30.51.18/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/00:fe:c8:58:1e:f6/meta-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:fe:c8:58:1e:f6/meta-data
deleted file mode 100644
index e69de29bb2..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:fe:c8:58:1e:f6/meta-data
+++ /dev/null
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:fe:c8:58:1e:f6/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:fe:c8:58:1e:f6/user-data
deleted file mode 100644
index 55d01b402b..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:fe:c8:58:1e:f6/user-data
+++ /dev/null
@@ -1,83 +0,0 @@
-#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: s16-nomad
- password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
- realname: localadmin
- username: localadmin
- keyboard:
- layout: us
- toggle: null
- variant: ''
- locale: en_US.UTF-8
- network:
- ethernets:
- enp16s0f0:
- addresses: [ 10.30.51.16/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/00:fe:c8:e5:68:c2/meta-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:fe:c8:e5:68:c2/meta-data
deleted file mode 100644
index e69de29bb2..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:fe:c8:e5:68:c2/meta-data
+++ /dev/null
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:fe:c8:e5:68:c2/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:fe:c8:e5:68:c2/user-data
deleted file mode 100644
index 992ac00e6d..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/00:fe:c8:e5:68:c2/user-data
+++ /dev/null
@@ -1,83 +0,0 @@
-#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-nomad
- password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
- realname: localadmin
- username: localadmin
- keyboard:
- layout: us
- toggle: null
- variant: ''
- locale: en_US.UTF-8
- network:
- ethernets:
- enp8s0f0:
- addresses: [ 10.30.51.17/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/58:ac:78:5c:90:78/meta-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/58:ac:78:5c:90:78/meta-data
deleted file mode 100644
index e69de29bb2..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/58:ac:78:5c:90:78/meta-data
+++ /dev/null
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/58:ac:78:5c:90:78/user-data b/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/58:ac:78:5c:90:78/user-data
deleted file mode 100644
index 44e8e41777..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/58:ac:78:5c:90:78/user-data
+++ /dev/null
@@ -1,83 +0,0 @@
-#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-nomad
- password: $6$FIsbVDQR$5D0wgufOd2FtnmOiRNsGlgg6Loh.0x3dWSj72DSQnqisSyE9DROfgSgA6s0yxDwz4Jd5SRTXiTKuRYuSQ5POI1
- realname: localadmin
- username: localadmin
- keyboard:
- layout: us
- toggle: null
- variant: ''
- locale: en_US.UTF-8
- network:
- ethernets:
- enp16s0f0:
- addresses: [ 10.30.51.19/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
deleted file mode 100644
index e69de29bb2..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:b4/meta-data
+++ /dev/null
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
deleted file mode 100644
index e69de29bb2..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:d4/meta-data
+++ /dev/null
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
deleted file mode 100644
index e69de29bb2..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6b:08/meta-data
+++ /dev/null
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
deleted file mode 100644
index e69de29bb2..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d9:2e/meta-data
+++ /dev/null
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
deleted file mode 100644
index e69de29bb2..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:02:b1:9f/meta-data
+++ /dev/null
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
deleted file mode 100644
index e69de29bb2..0000000000
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:02:b1:bb/meta-data
+++ /dev/null
diff --git a/fdio.infra.terraform/1n_nmd/main.tf b/fdio.infra.terraform/1n_nmd/main.tf
deleted file mode 100644
index 77701835aa..0000000000
--- a/fdio.infra.terraform/1n_nmd/main.tf
+++ /dev/null
@@ -1,60 +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.2021-07-27T02-40-15Z"
-# 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_buckets = ["logs.fd.io"]
-#}
-
-data "vault_generic_secret" "minio_creds" {
- path = "kv/secret/data/minio"
-}
-
-module "vpp_device" {
- source = "./vpp_device"
- providers = {
- nomad = nomad.yul1
- }
-
- # nomad
- nomad_datacenters = ["yul1"]
-
- # csit_shim
- csit_shim_job_name = "prod-device-csit-shim"
- csit_shim_group_count = "1"
- csit_shim_cpu = "1500"
- csit_shim_mem = "4096"
- csit_shim_image_aarch64 = "fdiotools/csit_shim-ubuntu2004:2021_03_02_143938_UTC-aarch64"
- csit_shim_image_x86_64 = "fdiotools/csit_shim-ubuntu2004:2021_03_04_142103_UTC-x86_64"
-}
diff --git a/fdio.infra.terraform/1n_nmd/minio/conf/nomad/mc.hcl b/fdio.infra.terraform/1n_nmd/minio/conf/nomad/mc.hcl
deleted file mode 100644
index 238003bb00..0000000000
--- a/fdio.infra.terraform/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/fdio.infra.terraform/1n_nmd/minio/conf/nomad/minio.hcl b/fdio.infra.terraform/1n_nmd/minio/conf/nomad/minio.hcl
deleted file mode 100644
index 3889b51a9f..0000000000
--- a/fdio.infra.terraform/1n_nmd/minio/conf/nomad/minio.hcl
+++ /dev/null
@@ -1,223 +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.
- #
- # 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 = 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.
- #
- # https://www.nomadproject.io/docs/job-specification/group
- #
- 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 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 "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.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 = [ "172.17.0.1" ]
- 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.
- #
- # https://www.nomadproject.io/docs/job-specification/service
- #
- 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.
- #
- # https://www.nomadproject.io/docs/job-specification/resources
- #
- 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.
- #
- # https://www.nomadproject.io/docs/job-specification/network
- #
- network {
- port "http" {
- static = ${port}
- }
- }
- }
- }
- }
-}
diff --git a/fdio.infra.terraform/1n_nmd/minio/main.tf b/fdio.infra.terraform/1n_nmd/minio/main.tf
deleted file mode 100644
index 6954cc2f05..0000000000
--- a/fdio.infra.terraform/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/fdio.infra.terraform/1n_nmd/minio/outputs.tf b/fdio.infra.terraform/1n_nmd/minio/outputs.tf
deleted file mode 100644
index 309cd3b9d0..0000000000
--- a/fdio.infra.terraform/1n_nmd/minio/outputs.tf
+++ /dev/null
@@ -1,4 +0,0 @@
-output "minio_service_name" {
- description = "Minio service name"
- value = data.template_file.nomad_job_minio.vars.service_name
-} \ No newline at end of file
diff --git a/fdio.infra.terraform/1n_nmd/minio/providers.tf b/fdio.infra.terraform/1n_nmd/minio/providers.tf
deleted file mode 100644
index 1399201d21..0000000000
--- a/fdio.infra.terraform/1n_nmd/minio/providers.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 = ">= 1.0.3"
-}
diff --git a/fdio.infra.terraform/1n_nmd/minio/variables.tf b/fdio.infra.terraform/1n_nmd/minio/variables.tf
deleted file mode 100644
index ab9d07f0d7..0000000000
--- a/fdio.infra.terraform/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/fdio.infra.terraform/1n_nmd/providers.tf b/fdio.infra.terraform/1n_nmd/providers.tf
deleted file mode 100644
index 92ddb553e7..0000000000
--- a/fdio.infra.terraform/1n_nmd/providers.tf
+++ /dev/null
@@ -1,13 +0,0 @@
-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 = "http://10.30.51.28:8200"
- skip_tls_verify = true
- token = var.token
-} \ No newline at end of file
diff --git a/fdio.infra.terraform/1n_nmd/variables.tf b/fdio.infra.terraform/1n_nmd/variables.tf
deleted file mode 100644
index 598770eb13..0000000000
--- a/fdio.infra.terraform/1n_nmd/variables.tf
+++ /dev/null
@@ -1,35 +0,0 @@
-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://nomad.service.consul: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 "token" {
- description = "Vault root token"
- type = string
- sensitive = true
-} \ No newline at end of file
diff --git a/fdio.infra.terraform/1n_nmd/versions.tf b/fdio.infra.terraform/1n_nmd/versions.tf
deleted file mode 100644
index 556ddbaee4..0000000000
--- a/fdio.infra.terraform/1n_nmd/versions.tf
+++ /dev/null
@@ -1,21 +0,0 @@
-terraform {
- backend "consul" {
- address = "consul.service.consul:8500"
- scheme = "http"
- path = "terraform/nomad"
- }
- required_providers {
- nomad = {
- source = "hashicorp/nomad"
- version = "~> 1.4.9"
- }
- template = {
- source = "hashicorp/template"
- version = "~> 2.2.0"
- }
- vault = {
- version = ">=2.14.0"
- }
- }
- required_version = ">= 1.0.3"
-} \ No newline at end of file
diff --git a/fdio.infra.terraform/1n_nmd/vpp_device/conf/nomad/csit_shim.hcl b/fdio.infra.terraform/1n_nmd/vpp_device/conf/nomad/csit_shim.hcl
deleted file mode 100644
index 9763088dcd..0000000000
--- a/fdio.infra.terraform/1n_nmd/vpp_device/conf/nomad/csit_shim.hcl
+++ /dev/null
@@ -1,169 +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 = "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 = ${group_count}
-
- 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 = "${image_x86_64}"
- 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 = ${cpu}
- memory = ${mem}
- network {
- 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 = ${group_count}
-
- 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 = "${image_aarch64}"
- 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 = ${cpu}
- memory = ${mem}
- network {
- port "ssh" {
- static = 6022
- }
- port "ssh2" {
- static = 6023
- }
- }
- }
- }
- }
-} \ No newline at end of file
diff --git a/fdio.infra.terraform/1n_nmd/vpp_device/main.tf b/fdio.infra.terraform/1n_nmd/vpp_device/main.tf
deleted file mode 100644
index 89b28ce385..0000000000
--- a/fdio.infra.terraform/1n_nmd/vpp_device/main.tf
+++ /dev/null
@@ -1,21 +0,0 @@
-locals {
- datacenters = join(",", var.nomad_datacenters)
-}
-
-data "template_file" "nomad_job_csit_shim" {
- template = file("${path.module}/conf/nomad/csit_shim.hcl")
- vars = {
- datacenters = local.datacenters
- job_name = var.csit_shim_job_name
- group_count = var.csit_shim_group_count
- cpu = var.csit_shim_cpu
- mem = var.csit_shim_mem
- image_aarch64 = var.csit_shim_image_aarch64
- image_x86_64 = var.csit_shim_image_x86_64
- }
-}
-
-resource "nomad_job" "nomad_job_csit_shim" {
- jobspec = data.template_file.nomad_job_csit_shim.rendered
- detach = false
-} \ No newline at end of file
diff --git a/fdio.infra.terraform/1n_nmd/vpp_device/variables.tf b/fdio.infra.terraform/1n_nmd/vpp_device/variables.tf
deleted file mode 100644
index 401be66f27..0000000000
--- a/fdio.infra.terraform/1n_nmd/vpp_device/variables.tf
+++ /dev/null
@@ -1,43 +0,0 @@
-# Nomad
-variable "nomad_datacenters" {
- description = "Nomad data centers"
- type = list(string)
- default = ["dc1"]
-}
-
-# CSIT SHIM
-variable "csit_shim_job_name" {
- description = "CSIT SHIM job name"
- type = string
- default = "prod-csit-shim"
-}
-
-variable "csit_shim_group_count" {
- description = "Number of CSIT SHIM group instances"
- type = number
- default = 1
-}
-
-variable "csit_shim_cpu" {
- description = "CSIT SHIM task CPU"
- type = number
- default = 2000
-}
-
-variable "csit_shim_mem" {
- description = "CSIT SHIM task memory"
- type = number
- default = 10000
-}
-
-variable "csit_shim_image_aarch64" {
- description = "CSIT SHIM AARCH64 docker image"
- type = string
- default = "fdiotools/csit_shim-ubuntu2004:prod-aarch64"
-}
-
-variable "csit_shim_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/1n_nmd/vpp_device/versions.tf b/fdio.infra.terraform/1n_nmd/vpp_device/versions.tf
deleted file mode 100644
index b80610a525..0000000000
--- a/fdio.infra.terraform/1n_nmd/vpp_device/versions.tf
+++ /dev/null
@@ -1,13 +0,0 @@
-terraform {
- required_providers {
- nomad = {
- source = "hashicorp/nomad"
- version = "~> 1.4.15"
- }
- template = {
- source = "hashicorp/template"
- version = "~> 2.2.0"
- }
- }
- required_version = ">= 1.0.3"
-}
diff --git a/fdio.infra.terraform/3n_azure_fsv2/main.tf b/fdio.infra.terraform/3n_azure_fsv2/main.tf
deleted file mode 100644
index f84f521ecd..0000000000
--- a/fdio.infra.terraform/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.yaml"
- force_handlers = true
- }
- hosts = ["tg_azure"]
- 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.yaml"
- force_handlers = true
- }
- hosts = ["sut_azure"]
- 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.yaml"
- force_handlers = true
- }
- hosts = ["sut_azure"]
- 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/fdio.infra.terraform/3n_azure_fsv2/nic.tf b/fdio.infra.terraform/3n_azure_fsv2/nic.tf
deleted file mode 100644
index 0bc9e900a7..0000000000
--- a/fdio.infra.terraform/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/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
index c99d839bd2..e455b6b104 100644
--- a/fdio.infra.terraform/terraform-aws-1n-aws-c5n/main.tf
+++ b/fdio.infra.terraform/terraform-aws-1n-aws-c5n/main.tf
@@ -38,19 +38,24 @@ module "subnet_b" {
}
# Create Private Key
-resource "tls_private_key" "private_key" {
- algorithm = var.private_key_algorithm
- ecdsa_curve = var.private_key_ecdsa_curve
- rsa_bits = var.private_key_rsa_bits
+module "private_key" {
+ source = "pmikus/private-key/tls"
+ version = "4.0.4"
+
+ private_key_algorithm = var.private_key_algorithm
}
# Create Key Pair
-resource "aws_key_pair" "key_pair" {
- depends_on = [
- tls_private_key.private_key
- ]
- key_name = local.key_pair_key_name
- public_key = tls_private_key.private_key.public_key_openssh
+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
@@ -70,7 +75,7 @@ resource "aws_instance" "tg" {
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 = aws_key_pair.key_pair.key_name
+ 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
@@ -167,7 +172,7 @@ resource "null_resource" "deploy_tg" {
connection {
user = "ubuntu"
host = aws_instance.tg.public_ip
- private_key = tls_private_key.private_key.private_key_pem
+ private_key = module.private_key.private_key_pem
}
provisioner "remote-exec" {
@@ -175,27 +180,32 @@ resource "null_resource" "deploy_tg" {
}
}
+resource "local_file" "topology_file" {
+ depends_on = [
+ aws_instance.tg
+ ]
-resource "null_resource" "deploy_topology" {
+ 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
]
- 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}"
- }
+ 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/providers.tf b/fdio.infra.terraform/terraform-aws-1n-aws-c5n/providers.tf
index d0e7490d38..2482ca2839 100644
--- a/fdio.infra.terraform/terraform-aws-1n-aws-c5n/providers.tf
+++ b/fdio.infra.terraform/terraform-aws-1n-aws-c5n/providers.tf
@@ -5,7 +5,7 @@ provider "aws" {
}
provider "vault" {
- address = "http://vault.service.consul:8200"
+ 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
index 0eb6bcc769..566a073266 100644
--- a/fdio.infra.terraform/terraform-aws-1n-aws-c5n/variables.tf
+++ b/fdio.infra.terraform/terraform-aws-1n-aws-c5n/variables.tf
@@ -24,19 +24,7 @@ variable "testbed_name" {
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
+ default = "ED25519"
}
# Variables for Placement Group
@@ -50,7 +38,7 @@ variable "placement_group_strategy" {
variable "tg_ami" {
description = "AMI to use for the instance."
type = string
- default = "ami-01d1d62914ef00b25"
+ default = "ami-07430bfa17fd4e597"
}
variable "tg_associate_public_ip_address" {
diff --git a/fdio.infra.terraform/terraform-aws-1n-aws-c5n/versions.tf b/fdio.infra.terraform/terraform-aws-1n-aws-c5n/versions.tf
index 0eead1fc01..7e17bb4924 100644
--- a/fdio.infra.terraform/terraform-aws-1n-aws-c5n/versions.tf
+++ b/fdio.infra.terraform/terraform-aws-1n-aws-c5n/versions.tf
@@ -2,19 +2,19 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 4.3.0"
+ version = ">= 5.7.0"
}
null = {
source = "hashicorp/null"
- version = "~> 3.1.0"
+ version = ">= 3.2.1"
}
tls = {
source = "hashicorp/tls"
- version = "~> 3.1.0"
+ version = ">= 4.0.4"
}
vault = {
- version = ">=2.22.1"
+ version = ">= 3.15.2"
}
}
- required_version = ">= 1.0.4"
+ 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-2n-aws-c6gn/output.tf b/fdio.infra.terraform/terraform-aws-1n-c6in/output.tf
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.terraform/terraform-aws-2n-aws-c6gn/output.tf
+++ 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
index 699992db98..a7abab1214 100644
--- a/fdio.infra.terraform/terraform-aws-2n-aws-c5n/main.tf
+++ b/fdio.infra.terraform/terraform-aws-2n-aws-c5n/main.tf
@@ -49,19 +49,24 @@ module "subnet_d" {
}
# Create Private Key
-resource "tls_private_key" "private_key" {
- algorithm = var.private_key_algorithm
- ecdsa_curve = var.private_key_ecdsa_curve
- rsa_bits = var.private_key_rsa_bits
+module "private_key" {
+ source = "pmikus/private-key/tls"
+ version = "4.0.4"
+
+ private_key_algorithm = var.private_key_algorithm
}
# Create Key Pair
-resource "aws_key_pair" "key_pair" {
- depends_on = [
- tls_private_key.private_key
- ]
- key_name = local.key_pair_key_name
- public_key = tls_private_key.private_key.public_key_openssh
+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
@@ -81,7 +86,7 @@ resource "aws_instance" "tg" {
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 = aws_key_pair.key_pair.key_name
+ 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
@@ -180,7 +185,7 @@ resource "aws_instance" "sut1" {
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 = aws_key_pair.key_pair.key_name
+ 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
@@ -264,7 +269,7 @@ resource "null_resource" "deploy_tg" {
connection {
user = "ubuntu"
host = aws_instance.tg.public_ip
- private_key = tls_private_key.private_key.private_key_pem
+ private_key = module.private_key.private_key_pem
}
provisioner "remote-exec" {
@@ -285,7 +290,7 @@ resource "null_resource" "deploy_sut1" {
connection {
user = "ubuntu"
host = aws_instance.sut1.public_ip
- private_key = tls_private_key.private_key.private_key_pem
+ private_key = module.private_key.private_key_pem
}
provisioner "remote-exec" {
@@ -293,30 +298,38 @@ resource "null_resource" "deploy_sut1" {
}
}
-resource "null_resource" "deploy_topology" {
+resource "local_file" "topology_file" {
depends_on = [
aws_instance.tg,
aws_instance.sut1
]
- 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
- 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
- public_ip_list = "${aws_instance.tg.public_ip},${aws_instance.sut1.public_ip}"
- }
+ 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/providers.tf b/fdio.infra.terraform/terraform-aws-2n-aws-c5n/providers.tf
index d0e7490d38..2482ca2839 100644
--- a/fdio.infra.terraform/terraform-aws-2n-aws-c5n/providers.tf
+++ b/fdio.infra.terraform/terraform-aws-2n-aws-c5n/providers.tf
@@ -5,7 +5,7 @@ provider "aws" {
}
provider "vault" {
- address = "http://vault.service.consul:8200"
+ 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
index e2ec8aa70c..de113166e6 100644
--- a/fdio.infra.terraform/terraform-aws-2n-aws-c5n/variables.tf
+++ b/fdio.infra.terraform/terraform-aws-2n-aws-c5n/variables.tf
@@ -24,19 +24,7 @@ variable "testbed_name" {
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
+ default = "ED25519"
}
# Variables for Placement Group
@@ -50,7 +38,7 @@ variable "placement_group_strategy" {
variable "tg_ami" {
description = "AMI to use for the instance."
type = string
- default = "ami-01d1d62914ef00b25"
+ default = "ami-07430bfa17fd4e597"
}
variable "tg_associate_public_ip_address" {
@@ -86,7 +74,7 @@ variable "tg_source_dest_check" {
variable "sut1_ami" {
description = "AMI to use for the instance."
type = string
- default = "ami-0bfdf32a014984d8a"
+ default = "ami-0a890555652963ec2"
}
variable "sut1_associate_public_ip_address" {
diff --git a/fdio.infra.terraform/terraform-aws-2n-aws-c5n/versions.tf b/fdio.infra.terraform/terraform-aws-2n-aws-c5n/versions.tf
index 0eead1fc01..589699691e 100644
--- a/fdio.infra.terraform/terraform-aws-2n-aws-c5n/versions.tf
+++ b/fdio.infra.terraform/terraform-aws-2n-aws-c5n/versions.tf
@@ -2,19 +2,19 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 4.3.0"
+ version = ">= 5.7.0"
}
null = {
source = "hashicorp/null"
- version = "~> 3.1.0"
+ version = ">= 3.2.1"
}
tls = {
source = "hashicorp/tls"
- version = "~> 3.1.0"
+ version = ">= 4.0.4"
}
vault = {
- version = ">=2.22.1"
+ version = ">= 3.15.2"
}
}
- required_version = ">= 1.0.4"
-}
+ required_version = ">= 1.4.2"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-2n-aws-c6gn/main.tf b/fdio.infra.terraform/terraform-aws-2n-aws-c6gn/main.tf
deleted file mode 100644
index 1f190426ad..0000000000
--- a/fdio.infra.terraform/terraform-aws-2n-aws-c6gn/main.tf
+++ /dev/null
@@ -1,322 +0,0 @@
-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-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
-resource "tls_private_key" "private_key" {
- algorithm = var.private_key_algorithm
- ecdsa_curve = var.private_key_ecdsa_curve
- rsa_bits = var.private_key_rsa_bits
-}
-
-# Create Key Pair
-resource "aws_key_pair" "key_pair" {
- depends_on = [
- tls_private_key.private_key
- ]
- key_name = local.key_pair_key_name
- public_key = tls_private_key.private_key.public_key_openssh
-}
-
-# 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 = aws_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 = aws_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 = tls_private_key.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 = tls_private_key.private_key.private_key_pem
- }
-
- provisioner "remote-exec" {
- inline = var.first_run_commands
- }
-}
-
-resource "null_resource" "deploy_topology" {
- depends_on = [
- aws_instance.tg,
- aws_instance.sut1
- ]
-
- 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
- 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
- public_ip_list = "${aws_instance.tg.public_ip},${aws_instance.sut1.public_ip}"
- }
- }
- }
-} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-2n-aws-c6gn/variables.tf b/fdio.infra.terraform/terraform-aws-2n-aws-c6gn/variables.tf
deleted file mode 100644
index 5ac9ad8735..0000000000
--- a/fdio.infra.terraform/terraform-aws-2n-aws-c6gn/variables.tf
+++ /dev/null
@@ -1,180 +0,0 @@
-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-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-0c2d02d48236a23dd"
-}
-
-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 = "c6gn.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-05ea90e57d2df4368"
-}
-
-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-aws-c6gn/versions.tf b/fdio.infra.terraform/terraform-aws-2n-aws-c6gn/versions.tf
deleted file mode 100644
index 0eead1fc01..0000000000
--- a/fdio.infra.terraform/terraform-aws-2n-aws-c6gn/versions.tf
+++ /dev/null
@@ -1,20 +0,0 @@
-terraform {
- required_providers {
- aws = {
- source = "hashicorp/aws"
- version = ">= 4.3.0"
- }
- null = {
- source = "hashicorp/null"
- version = "~> 3.1.0"
- }
- tls = {
- source = "hashicorp/tls"
- version = "~> 3.1.0"
- }
- vault = {
- version = ">=2.22.1"
- }
- }
- required_version = ">= 1.0.4"
-}
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.pxe/docker-nginx/html/ubuntu_focal_amd64/00:42:68:6f:68:ee/meta-data b/fdio.infra.terraform/terraform-aws-2n-c6gn/output.tf
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:42:68:6f:68:ee/meta-data
+++ b/fdio.infra.terraform/terraform-aws-2n-c6gn/output.tf
diff --git a/fdio.infra.terraform/terraform-aws-2n-aws-c6gn/providers.tf b/fdio.infra.terraform/terraform-aws-2n-c6gn/providers.tf
index d0e7490d38..d0e7490d38 100644
--- a/fdio.infra.terraform/terraform-aws-2n-aws-c6gn/providers.tf
+++ b/fdio.infra.terraform/terraform-aws-2n-c6gn/providers.tf
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.pxe/docker-nginx/html/ubuntu_focal_amd64/00:42:68:6f:6f:c0/meta-data b/fdio.infra.terraform/terraform-aws-2n-c6in/output.tf
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:42:68:6f:6f:c0/meta-data
+++ 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.pxe/docker-nginx/html/ubuntu_focal_amd64/00:f2:8b:7c:fb:12/meta-data b/fdio.infra.terraform/terraform-aws-2n-c7gn/output.tf
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:f2:8b:7c:fb:12/meta-data
+++ 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
index bb8efffc96..c95c8a6588 100644
--- a/fdio.infra.terraform/terraform-aws-3n-aws-c5n/main.tf
+++ b/fdio.infra.terraform/terraform-aws-3n-aws-c5n/main.tf
@@ -59,19 +59,24 @@ module "subnet_d" {
}
# Create Private Key
-resource "tls_private_key" "private_key" {
- algorithm = var.private_key_algorithm
- ecdsa_curve = var.private_key_ecdsa_curve
- rsa_bits = var.private_key_rsa_bits
+module "private_key" {
+ source = "pmikus/private-key/tls"
+ version = "4.0.4"
+
+ private_key_algorithm = var.private_key_algorithm
}
# Create Key Pair
-resource "aws_key_pair" "key_pair" {
- depends_on = [
- tls_private_key.private_key
- ]
- key_name = local.key_pair_key_name
- public_key = tls_private_key.private_key.public_key_openssh
+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
@@ -91,7 +96,7 @@ resource "aws_instance" "tg" {
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 = aws_key_pair.key_pair.key_name
+ 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
@@ -189,7 +194,7 @@ resource "aws_instance" "sut1" {
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 = aws_key_pair.key_pair.key_name
+ 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
@@ -268,7 +273,7 @@ resource "aws_instance" "sut2" {
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 = aws_key_pair.key_pair.key_name
+ 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
@@ -353,7 +358,7 @@ resource "null_resource" "deploy_tg" {
connection {
user = "ubuntu"
host = aws_instance.tg.public_ip
- private_key = tls_private_key.private_key.private_key_pem
+ private_key = module.private_key.private_key_pem
}
provisioner "remote-exec" {
@@ -377,7 +382,7 @@ resource "null_resource" "deploy_sut1" {
connection {
user = "ubuntu"
host = aws_instance.sut1.public_ip
- private_key = tls_private_key.private_key.private_key_pem
+ private_key = module.private_key.private_key_pem
}
provisioner "remote-exec" {
@@ -401,7 +406,7 @@ resource "null_resource" "deploy_sut2" {
connection {
user = "ubuntu"
host = aws_instance.sut2.public_ip
- private_key = tls_private_key.private_key.private_key_pem
+ private_key = module.private_key.private_key_pem
}
provisioner "remote-exec" {
@@ -409,34 +414,44 @@ resource "null_resource" "deploy_sut2" {
}
}
-resource "null_resource" "deploy_topology" {
+resource "local_file" "topology_file" {
depends_on = [
aws_instance.tg,
aws_instance.sut1,
aws_instance.sut2
]
- 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
- 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
- public_ip_list = "${aws_instance.tg.public_ip},${aws_instance.sut1.public_ip},${aws_instance.sut2.public_ip}"
- }
+ 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/providers.tf b/fdio.infra.terraform/terraform-aws-3n-aws-c5n/providers.tf
index d0e7490d38..2482ca2839 100644
--- a/fdio.infra.terraform/terraform-aws-3n-aws-c5n/providers.tf
+++ b/fdio.infra.terraform/terraform-aws-3n-aws-c5n/providers.tf
@@ -5,7 +5,7 @@ provider "aws" {
}
provider "vault" {
- address = "http://vault.service.consul:8200"
+ 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
index 3f6a96d66f..d64dd5b241 100644
--- a/fdio.infra.terraform/terraform-aws-3n-aws-c5n/variables.tf
+++ b/fdio.infra.terraform/terraform-aws-3n-aws-c5n/variables.tf
@@ -11,7 +11,7 @@ variable "region" {
variable "resource_prefix" {
description = "Resources name prefix."
type = string
- default = "csit-2n-aws-c5n"
+ default = "csit-3n-aws-c5n"
}
variable "testbed_name" {
@@ -24,19 +24,7 @@ variable "testbed_name" {
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
+ default = "ED25519"
}
# Variables for Placement Group
@@ -50,7 +38,7 @@ variable "placement_group_strategy" {
variable "tg_ami" {
description = "AMI to use for the instance."
type = string
- default = "ami-01d1d62914ef00b25"
+ default = "ami-07430bfa17fd4e597"
}
variable "tg_associate_public_ip_address" {
@@ -86,7 +74,7 @@ variable "tg_source_dest_check" {
variable "sut1_ami" {
description = "AMI to use for the instance."
type = string
- default = "ami-0bfdf32a014984d8a"
+ default = "ami-0a890555652963ec2"
}
variable "sut1_associate_public_ip_address" {
@@ -122,7 +110,7 @@ variable "sut1_source_dest_check" {
variable "sut2_ami" {
description = "AMI to use for the instance."
type = string
- default = "ami-05ea90e57d2df4368"
+ default = "ami-07898402cb1fd6561"
}
variable "sut2_associate_public_ip_address" {
diff --git a/fdio.infra.terraform/terraform-aws-3n-aws-c5n/versions.tf b/fdio.infra.terraform/terraform-aws-3n-aws-c5n/versions.tf
index 0eead1fc01..589699691e 100644
--- a/fdio.infra.terraform/terraform-aws-3n-aws-c5n/versions.tf
+++ b/fdio.infra.terraform/terraform-aws-3n-aws-c5n/versions.tf
@@ -2,19 +2,19 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 4.3.0"
+ version = ">= 5.7.0"
}
null = {
source = "hashicorp/null"
- version = "~> 3.1.0"
+ version = ">= 3.2.1"
}
tls = {
source = "hashicorp/tls"
- version = "~> 3.1.0"
+ version = ">= 4.0.4"
}
vault = {
- version = ">=2.22.1"
+ version = ">= 3.15.2"
}
}
- required_version = ">= 1.0.4"
-}
+ 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.pxe/docker-nginx/html/ubuntu_focal_amd64/00:f2:8b:7c:fb:4a/meta-data b/fdio.infra.terraform/terraform-aws-3n-c6gn/output.tf
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:f2:8b:7c:fb:4a/meta-data
+++ 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.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:58:1e:f6/meta-data b/fdio.infra.terraform/terraform-aws-3n-c6in/output.tf
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:58:1e:f6/meta-data
+++ 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.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:e5:68:32/meta-data b/fdio.infra.terraform/terraform-aws-3n-c7gn/output.tf
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:e5:68:32/meta-data
+++ 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/main.tf b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/main.tf
index 4a9f473baa..ace3aebbbc 100644
--- a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/main.tf
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/main.tf
@@ -1,7 +1,5 @@
locals {
- bucket = "${var.application_name}-bucket"
- key = "${var.application_name}.zip"
- source = "app.zip"
+ key = "${var.application_name_version}-${uuid()}.zip"
tags = {
"Name" = "${var.application_name}"
"Environment" = "${var.application_name}"
@@ -9,23 +7,22 @@ locals {
}
# Create elastic beanstalk Application Version
-resource "aws_s3_bucket" "bucket" {
- bucket = local.bucket
- tags = local.tags
-}
-
+# resource "aws_s3_bucket" "bucket" {
+# bucket = var.application_bucket
+# tags = local.tags
+# }
resource "aws_s3_object" "object" {
- bucket = aws_s3_bucket.bucket.id
+ bucket = var.application_bucket
key = local.key
- source = local.source
+ source = var.application_source
tags = local.tags
}
resource "aws_elastic_beanstalk_application_version" "application_version" {
application = var.application_name
description = var.application_description
- bucket = aws_s3_bucket.bucket.id
+ bucket = var.application_bucket
key = aws_s3_object.object.id
- name = var.application_version_name
+ 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
index e69de29bb2..4262bbe6cf 100644
--- a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/output.tf
+++ 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
index 6ac2ae7bfe..8d7dd45755 100644
--- a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/variables.tf
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/variables.tf
@@ -1,3 +1,9 @@
+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
@@ -5,13 +11,19 @@ variable "application_description" {
}
variable "application_name" {
- description = "Name of the Beanstalk Application the version is associated."
+ description = "Name of the Beanstalk Application."
+ type = string
+ default = "beanstalk"
+}
+
+variable "application_name_version" {
+ description = "Version of the Beanstalk Application."
type = string
- default = "Beanstalk"
+ default = "beanstalk-1"
}
-variable "application_version_name" {
- description = "Unique name for the this Application Version."
+variable "application_source" {
+ description = "The source file with application code."
type = string
- default = "Beanstalk Version"
+ 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
index 66b9c17f9b..1c82745471 100644
--- a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/versions.tf
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application-version/versions.tf
@@ -2,8 +2,8 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = "~> 4.3.0"
+ version = ">= 5.7.0"
}
}
- required_version = ">= 1.1.4"
+ required_version = ">= 1.4.2"
}
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/versions.tf b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/versions.tf
index 66b9c17f9b..8ad3fd72c6 100644
--- a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/versions.tf
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-application/versions.tf
@@ -2,8 +2,8 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = "~> 4.3.0"
+ version = ">= 5.7.0"
}
}
- required_version = ">= 1.1.4"
+ required_version = ">= 1.5.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
index fd570ab575..44373ed4de 100644
--- a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/main.tf
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/main.tf
@@ -3,6 +3,118 @@ locals {
"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
@@ -16,19 +128,32 @@ resource "aws_vpc" "vpc" {
}
# Create elastic beanstalk Subnets
-resource "aws_subnet" "subnet" {
+resource "aws_subnet" "subnet_a" {
depends_on = [
aws_vpc.vpc
]
- availability_zone = var.subnet_availability_zone
+ availability_zone = var.subnet_a_availability_zone
assign_ipv6_address_on_creation = true
- cidr_block = aws_vpc.vpc.cidr_block
+ 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
@@ -308,7 +433,8 @@ resource "aws_iam_role_policy" "default" {
resource "aws_elastic_beanstalk_environment" "environment" {
depends_on = [
aws_vpc.vpc,
- aws_subnet.subnet,
+ aws_subnet.subnet_a,
+ aws_subnet.subnet_b,
aws_ssm_activation.ec2
]
application = var.environment_application
@@ -337,19 +463,7 @@ resource "aws_elastic_beanstalk_environment" "environment" {
setting {
namespace = "aws:ec2:vpc"
name = "Subnets"
- value = aws_subnet.subnet.id
- }
-
- setting {
- namespace = "aws:ec2:vpc"
- name = "ELBSubnets"
- value = aws_subnet.subnet.id
- }
-
- setting {
- namespace = "aws:ec2:vpc"
- name = "ELBScheme"
- value = var.environment_type == "LoadBalanced" ? var.elb_scheme : ""
+ value = join(",", [aws_subnet.subnet_a.id, aws_subnet.subnet_b.id])
}
setting {
@@ -359,67 +473,31 @@ resource "aws_elastic_beanstalk_environment" "environment" {
}
setting {
- namespace = "aws:elasticbeanstalk:application"
- name = "Application Healthcheck URL"
- value = "/"
- }
-
- # aws:elbv2:listener:default
- setting {
- namespace = "aws:elbv2:listener:default"
- name = "ListenerEnabled"
- value = var.default_listener_enabled
- }
-
- # aws:elasticbeanstalk:environment
- setting {
- namespace = "aws:elasticbeanstalk:environment"
- name = "LoadBalancerType"
- value = var.environment_loadbalancer_type
- }
-
- setting {
namespace = "aws:elasticbeanstalk:environment"
name = "ServiceRole"
value = aws_iam_role.service.name
}
- # aws:elasticbeanstalk:environment:process:default
- setting {
- namespace = "aws:elasticbeanstalk:environment:process:default"
- name = "HealthCheckInterval"
- value = var.environment_process_default_healthcheck_interval
- }
-
- setting {
- namespace = "aws:elasticbeanstalk:environment:process:default"
- name = "HealthyThresholdCount"
- value = var.environment_process_default_healthy_threshold_count
- }
-
- setting {
- namespace = "aws:elasticbeanstalk:environment:process:default"
- name = "Port"
- value = var.environment_process_default_port
- }
-
+ # aws:autoscaling:launchconfiguration
setting {
- namespace = "aws:elasticbeanstalk:environment:process:default"
- name = "Protocol"
- value = var.environment_loadbalancer_type == "network" ? "TCP" : "HTTP"
+ namespace = "aws:autoscaling:launchconfiguration"
+ name = "IamInstanceProfile"
+ value = aws_iam_instance_profile.ec2_iam_instance_profile.name
}
setting {
- namespace = "aws:elasticbeanstalk:environment:process:default"
- name = "UnhealthyThresholdCount"
- value = var.environment_process_default_unhealthy_threshold_count
+ namespace = "aws:autoscaling:launchconfiguration"
+ name = "DisableIMDSv1"
+ value = true
}
- # aws:autoscaling:launchconfiguration
- setting {
- namespace = "aws:autoscaling:launchconfiguration"
- name = "IamInstanceProfile"
- value = aws_iam_instance_profile.ec2_iam_instance_profile.name
+ dynamic "setting" {
+ for_each = local.elb
+ content {
+ namespace = setting.value["namespace"]
+ name = setting.value["name"]
+ value = setting.value["value"]
+ }
}
# aws:autoscaling:updatepolicy:rollingupdate
@@ -441,6 +519,12 @@ resource "aws_elastic_beanstalk_environment" "environment" {
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"
@@ -488,6 +572,12 @@ resource "aws_elastic_beanstalk_environment" "environment" {
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"
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/variables.tf b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/variables.tf
index b0c41899b7..a442215a9e 100644
--- a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/variables.tf
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/variables.tf
@@ -2,7 +2,7 @@
variable "vpc_cidr_block" {
description = "The CIDR block for the association."
type = string
- default = "192.168.0.0/24"
+ default = "10.0.0.0/16"
}
variable "vpc_enable_dns_hostnames" {
@@ -24,12 +24,30 @@ variable "vpc_instance_tenancy" {
}
# Variables for elastic beanstalk Subnet
-variable "subnet_availability_zone" {
- description = "AWS availability zone"
+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."
@@ -135,7 +153,25 @@ variable "default_listener_enabled" {
variable "environment_loadbalancer_type" {
description = "Load Balancer type, e.g. 'application' or 'classic'."
type = string
- default = "network"
+ 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
@@ -182,6 +218,30 @@ variable "autoscaling_updatepolicy_min_instance_in_service" {
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`."
@@ -229,6 +289,12 @@ variable "managedactions_platformupdate_instance_refresh_enabled" {
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"
diff --git a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/versions.tf b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/versions.tf
index d0e9db34f5..5aa6f2519e 100644
--- a/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/versions.tf
+++ b/fdio.infra.terraform/terraform-aws-elastic-beanstalk-environment/versions.tf
@@ -2,11 +2,11 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = "~> 4.3.0"
+ version = ">= 5.7.0"
}
vault = {
version = ">= 3.2.1"
}
}
- required_version = ">= 1.1.4"
+ 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
index 7ecca06394..7eb5ea59b9 100644
--- 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
@@ -1,6 +1,9 @@
locals {
- name = "fdio-csit-dash-app"
- version = "fdio-csit-dash-app-${var.version}"
+ 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" {
@@ -10,7 +13,9 @@ data "vault_aws_access_credentials" "creds" {
module "elastic_beanstalk_application_version" {
source = "../terraform-aws-elastic-beanstalk-application-version"
- application_description = "FD.io CSIT Results Dashboard"
+ application_bucket = local.bucket
+ application_description = local.description
application_name = local.name
- application_version_name = local.version
+ 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
index e69de29bb2..0126e7a9c7 100644
--- 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
@@ -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/variables.tf b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-app-base/variables.tf
index ec8a47e73f..653a92b970 100644
--- 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
@@ -1,13 +1,13 @@
variable "region" {
description = "AWS Region."
type = string
- default = "eu-central-1"
+ default = "eu-north-1"
}
variable "vault_provider_address" {
description = "Vault cluster address."
type = string
- default = "http://vault.service.consul:8200"
+ default = "http://10.30.51.24:8200"
}
variable "vault_provider_skip_tls_verify" {
@@ -19,7 +19,7 @@ variable "vault_provider_skip_tls_verify" {
variable "vault_provider_token" {
description = "Vault root token."
type = string
- sensitive = true
+ default = "s.4z5PsufFwV3sHbCzK9Y2Cojd"
}
variable "vault_name" {
@@ -27,7 +27,31 @@ variable "vault_name" {
default = "dynamic-aws-creds-vault-fdio-csit-jenkins"
}
-variable "version" {
+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
index 4b05b16b27..cd4761e34c 100644
--- 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
@@ -1,17 +1,12 @@
terraform {
- backend "consul" {
- address = "10.32.8.14:8500"
- scheme = "http"
- path = "terraform/app-base"
- }
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 4.3.0"
+ version = ">= 5.31.0"
}
vault = {
- version = ">= 3.2.1"
+ version = ">= 3.23.0"
}
}
- required_version = ">= 1.1.4"
+ 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
index 65dc59f999..9f115cd6c6 100644
--- a/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/main.tf
+++ b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/main.tf
@@ -11,36 +11,42 @@ module "elastic_beanstalk_application" {
source = "../terraform-aws-elastic-beanstalk-application"
# application
- application_description = "FD.io CSIT Results Dashboard"
- application_name = "fdio-csit-dash-app"
- appversion_lifecycle_service_role_arn = ""
- appversion_lifecycle_max_count = 2
+ 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 = "192.168.0.0/24"
+ vpc_cidr_block = "10.0.0.0/16"
vpc_enable_dns_hostnames = true
vpc_enable_dns_support = true
vpc_instance_tenancy = "default"
# subnet
- subnet_availability_zone = "eu-central-1a"
+ 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"
- environment_solution_stack_name = "64bit Amazon Linux 2 v3.3.13 running Python 3.8"
+ 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 = "t3a.medium"
+ instances_instance_types = "m7g.2xlarge"
# aws:ec2:vpc
associate_public_ip_address = true
@@ -50,7 +56,8 @@ module "elastic_beanstalk_environment" {
default_listener_enabled = true
# aws:elasticbeanstalk:environment
- environment_loadbalancer_type = "network"
+ 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
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
index a107571bb6..d7ff1d19ff 100644
--- a/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/variables.tf
+++ b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/variables.tf
@@ -1,13 +1,13 @@
variable "region" {
description = "AWS Region."
type = string
- default = "eu-central-1"
+ default = "eu-north-1"
}
variable "vault_provider_address" {
description = "Vault cluster address."
type = string
- default = "http://vault.service.consul:8200"
+ default = "http://10.30.51.24:8200"
}
variable "vault_provider_skip_tls_verify" {
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
index 4afbbc00a7..153890e01b 100644
--- a/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/versions.tf
+++ b/fdio.infra.terraform/terraform-aws-fdio-csit-dash-env/versions.tf
@@ -1,17 +1,17 @@
terraform {
backend "consul" {
- address = "10.32.8.14:8500"
+ address = "10.30.51.24:8500"
scheme = "http"
- path = "terraform/dash"
+ path = "terraform/dash_m7g"
}
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 4.3.0"
+ version = ">= 5.31.0"
}
vault = {
- version = ">= 3.2.1"
+ version = ">= 3.23.0"
}
}
- required_version = ">= 1.1.4"
+ required_version = ">= 1.4.2"
}
diff --git a/fdio.infra.terraform/terraform-aws-subnet/example/versions.tf b/fdio.infra.terraform/terraform-aws-subnet/example/versions.tf
index af1be4a4e1..7afde83d1b 100644
--- a/fdio.infra.terraform/terraform-aws-subnet/example/versions.tf
+++ b/fdio.infra.terraform/terraform-aws-subnet/example/versions.tf
@@ -2,8 +2,8 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 4.3.0"
+ version = ">= 5.1.0"
}
}
- required_version = ">= 1.1.4"
-}
+ required_version = ">= 1.4.2"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-subnet/versions.tf b/fdio.infra.terraform/terraform-aws-subnet/versions.tf
index eed543f20a..7afde83d1b 100644
--- a/fdio.infra.terraform/terraform-aws-subnet/versions.tf
+++ b/fdio.infra.terraform/terraform-aws-subnet/versions.tf
@@ -2,8 +2,8 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = "~> 4.3.0"
+ version = ">= 5.1.0"
}
}
- required_version = ">= 1.0.4"
-}
+ required_version = ">= 1.4.2"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-vpc/example/versions.tf b/fdio.infra.terraform/terraform-aws-vpc/example/versions.tf
index af1be4a4e1..7afde83d1b 100644
--- a/fdio.infra.terraform/terraform-aws-vpc/example/versions.tf
+++ b/fdio.infra.terraform/terraform-aws-vpc/example/versions.tf
@@ -2,8 +2,8 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = ">= 4.3.0"
+ version = ">= 5.1.0"
}
}
- required_version = ">= 1.1.4"
-}
+ required_version = ">= 1.4.2"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-aws-vpc/versions.tf b/fdio.infra.terraform/terraform-aws-vpc/versions.tf
index eed543f20a..7afde83d1b 100644
--- a/fdio.infra.terraform/terraform-aws-vpc/versions.tf
+++ b/fdio.infra.terraform/terraform-aws-vpc/versions.tf
@@ -2,8 +2,8 @@ terraform {
required_providers {
aws = {
source = "hashicorp/aws"
- version = "~> 4.3.0"
+ version = ">= 5.1.0"
}
}
- required_version = ">= 1.0.4"
-}
+ required_version = ">= 1.4.2"
+} \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-nomad-loki/README.md b/fdio.infra.terraform/terraform-nomad-loki/README.md
deleted file mode 100644
index 7fec0932db..0000000000
--- a/fdio.infra.terraform/terraform-nomad-loki/README.md
+++ /dev/null
@@ -1,52 +0,0 @@
-<!-- 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) | Loki data dir allocation | `string` | `""` | 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_gl_version"></a> [gl\_version](#input\_gl\_version) | Grafana Loki version | `string` | `"2.4.2"` | 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` | `"loki"` | 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_port"></a> [port](#input\_port) | Specifies the static TCP/UDP port to allocate | `number` | `3100` | 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` | `"loki"` | 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/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` | `""` | no |
-| <a name="input_volume_source"></a> [volume\_source](#input\_volume\_source) | The name of the volume to request | `string` | `""` | no |
-
-## Outputs
-
-No outputs.
-<!-- END_TF_DOCS --> \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-nomad-loki/conf/nomad/loki.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-loki/conf/nomad/loki.hcl.tftpl
deleted file mode 100644
index 7b38437566..0000000000
--- a/fdio.infra.terraform/terraform-nomad-loki/conf/nomad/loki.hcl.tftpl
+++ /dev/null
@@ -1,261 +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 = "${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 }
- }
-
- # 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/loki-linux-amd64"
- }
-
- # 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}"
- args = [
- "-config.file secrets/config.yml"
- ]
- }
-
- template {
- change_mode = "noop"
- change_signal = "SIGINT"
- destination = "secrets/loki.yml"
- data = <<EOH
----
-auth_enabled: false
-
-server:
- http_listen_port: 3100
- http_listen_address: 127.0.0.1
-
-schema_config:
- configs:
- - from: 2020-05-15
- store: boltdb
- object_store: filesystem
- schema: v11
- index:
- prefix: index_
- period: 168h
-
-storage_config:
- boltdb:
- directory: /tmp/loki/index
-
- filesystem:
- directory: /tmp/loki/chunks
-
- aws:
- bucketnames: loki
- endpoint: http://storage.service.consul:9000
- access_key_id: storage
- secret_access_key: Storage1234
- insecure: false
- sse_encryption: false
- http_config:
- idle_conn_timeout: 90s
- response_header_timeout: 0s
- insecure_skip_verify: false
- s3forcepathstyle: true
-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 = "Loki 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-loki/main.tf b/fdio.infra.terraform/terraform-nomad-loki/main.tf
deleted file mode 100644
index a2fc70d254..0000000000
--- a/fdio.infra.terraform/terraform-nomad-loki/main.tf
+++ /dev/null
@@ -1,40 +0,0 @@
-locals {
- datacenters = join(",", var.datacenters)
- url = join("",
- [
- "https://github.com",
- "/grafana/loki/releases/download/v${var.gl_version}/loki-linux-amd64.zip"
- ]
- )
-}
-
-resource "nomad_job" "nomad_job_prometheus" {
- jobspec = templatefile(
- "${path.module}/conf/nomad/loki.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,
- 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.gl_version,
- volume_destination = var.volume_destination,
- volume_source = var.volume_source
- })
- detach = false
-}
diff --git a/fdio.infra.terraform/terraform-nomad-loki/variables.tf b/fdio.infra.terraform/terraform-nomad-loki/variables.tf
deleted file mode 100644
index 049290f5a8..0000000000
--- a/fdio.infra.terraform/terraform-nomad-loki/variables.tf
+++ /dev/null
@@ -1,127 +0,0 @@
-# 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 = ""
-}
-
-# Grafana Loki
-variable "gl_version" {
- description = "Grafana Loki version"
- type = string
- default = "2.4.2"
-}
-
-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 "data_dir" {
- description = "Loki data dir allocation"
- type = string
- default = ""
-}
-
-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 = "loki"
-}
-
-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 = 3100
-}
-
-variable "service_name" {
- description = "Specifies the name this service will be advertised in Consul"
- type = string
- default = "loki"
-}
-
-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 "volume_destination" {
- description = "Specifies where the volume should be mounted inside the task"
- type = string
- default = ""
-}
-
-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-loki/versions.tf b/fdio.infra.terraform/terraform-nomad-loki/versions.tf
deleted file mode 100644
index a01708f28a..0000000000
--- a/fdio.infra.terraform/terraform-nomad-loki/versions.tf
+++ /dev/null
@@ -1,9 +0,0 @@
-terraform {
- required_providers {
- nomad = {
- source = "hashicorp/nomad"
- version = ">= 1.4.16"
- }
- }
- required_version = ">= 1.1.4"
-}
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
index e3c508dd32..4eb4428988 100644
--- a/fdio.infra.terraform/terraform-nomad-prometheus/conf/nomad/prometheus.hcl.tftpl
+++ b/fdio.infra.terraform/terraform-nomad-prometheus/conf/nomad/prometheus.hcl.tftpl
@@ -8,18 +8,15 @@ job "${job_name}" {
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.
+ # decision on placement.
#
- # https://www.nomadproject.io/docs/jobspec/schedulers
+ # 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.
+ # perform in parallel.
max_parallel = ${max_parallel}
health_check = "checks"
@@ -73,12 +70,11 @@ job "${job_name}" {
# the same Nomad client. Any task within a group will be placed on the same
# client.
#
- # https://www.nomadproject.io/docs/job-specification/group
+ # 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.
+ # 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
@@ -86,6 +82,7 @@ job "${job_name}" {
# 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"
@@ -100,23 +97,22 @@ job "${job_name}" {
# https://www.nomadproject.io/docs/job-specification/restart
#
restart {
- interval = "30m"
- attempts = 40
- delay = "15s"
- mode = "delay"
+ 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
+ # https://www.nomadproject.io/docs/job-specification/constraint
#
constraint {
attribute = "$${attr.cpu.arch}"
operator = "!="
value = "arm64"
}
-
constraint {
attribute = "$${node.class}"
value = "builder"
@@ -129,7 +125,7 @@ job "${job_name}" {
# 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
+ # https://www.nomadproject.io/docs/job-specification/network
#
network {
port "${service_name}" {
@@ -141,49 +137,164 @@ job "${job_name}" {
# 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
+ # 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 }
+ %{ if use_host_volume }
volume_mount {
volume = "${job_name}-volume-1"
destination = "${volume_destination}"
read_only = false
}
- %{ endif }
+ %{ endif }
- %{ if use_vault_provider }
+ %{ if use_vault_provider }
vault {
policies = "${vault_kv_policy_name}"
}
- %{ endif }
+ %{ 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 = [
+ 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.
+ # 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
+ # https://www.nomadproject.io/docs/job-specification/artifact
#
artifact {
- source = "${url}"
+ 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
@@ -335,24 +446,6 @@ groups:
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: "Min.io"
- rules:
- - alert: MinioDiskOffline
- expr: minio_offline_disks > 0
- for: 0m
- labels:
- severity: critical
- annotations:
- summary: "Minio disk offline (instance {{ $labels.instance }})"
- description: "Minio disk is offline."
- - alert: MinioStorageSpaceExhausted
- expr: minio_disk_storage_free_bytes / 1024 / 1024 / 1024 < 10
- for: 2m
- labels:
- severity: warning
- annotations:
- summary: "Minio storage space exhausted (instance {{ $labels.instance }})."
- description: "Minio storage space is low (< 10 GB)."
- name: "Prometheus"
rules:
- alert: PrometheusConfigurationReloadFailure
@@ -451,7 +544,6 @@ rule_files:
- 'alerts.yml'
scrape_configs:
-
- job_name: 'Nomad Cluster'
consul_sd_configs:
- server: '{{ env "NOMAD_IP_prometheus" }}:8500'
@@ -466,17 +558,12 @@ scrape_configs:
- job_name: 'Consul Cluster'
static_configs:
- - targets: [ '10.30.51.16:8500' ]
- - targets: [ '10.30.51.17:8500' ]
- - targets: [ '10.30.51.18:8500' ]
- - targets: [ '10.30.51.19:8500' ]
- - targets: [ '10.30.51.20:8500' ]
- - targets: [ '10.30.51.21:8500' ]
- - targets: [ '10.30.51.22:8500' ]
- 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' ]
@@ -503,17 +590,12 @@ scrape_configs:
- job_name: 'Node Exporter'
static_configs:
- - targets: [ '10.30.51.16:9100' ]
- - targets: [ '10.30.51.17:9100' ]
- - targets: [ '10.30.51.18:9100' ]
- - targets: [ '10.30.51.19:9100' ]
- - targets: [ '10.30.51.20:9100' ]
- - targets: [ '10.30.51.21:9100' ]
- - targets: [ '10.30.51.22:9100' ]
- 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' ]
@@ -526,39 +608,55 @@ scrape_configs:
- server: '{{ env "NOMAD_IP_prometheus" }}:8500'
services: [ 'alertmanager' ]
- - job_name: 'Grafana'
- consul_sd_configs:
- - server: '{{ env "NOMAD_IP_prometheus" }}:8500'
- services: [ 'grafana' ]
-
- job_name: 'Prometheus'
+ honor_timestamps: true
+ params:
+ format:
+ - prometheus
+ scheme: https
+ follow_redirects: true
+ enable_http2: true
consul_sd_configs:
- - server: '{{ env "NOMAD_IP_prometheus" }}:8500'
- services: [ 'prometheus' ]
+ - server: {{ env "CONSUL_HTTP_ADDR" }}
+ services:
+ - prometheus
+ tls_config:
+ cert_file: cert_file.crt
+ key_file: key_file.key
+ insecure_skip_verify: true
+EOH
+ }
- - job_name: 'Minio'
- bearer_token: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJleHAiOjQ3NjQ1ODEzMzcsImlzcyI6InByb21ldGhldXMiLCJzdWIiOiJtaW5pbyJ9.oeTw3EIaiFmlDikrHXWiWXMH2vxLfDLkfjEC7G2N3M_keH_xyA_l2ofLLNYtopa_3GCEZnxLQdPuFZrmgpkDWg
- consul_sd_configs:
- - server: '{{ env "NOMAD_IP_prometheus" }}:8500'
- services: [ 'storage' ]
- metrics_path: /minio/prometheus/metrics
+ 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
+ # 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"
- interval = "10s"
- timeout = "2s"
+ name = "Prometheus Check Live"
+ type = "http"
+ path = "/-/healthy"
+ protocol = "https"
+ tls_skip_verify = true
+ interval = "10s"
+ timeout = "2s"
}
}
@@ -567,7 +665,7 @@ EOH
# This ensures the task will execute on a machine that contains enough
# resource capacity.
#
- # https://www.nomadproject.io/docs/job-specification/resources
+ # https://www.nomadproject.io/docs/job-specification/resources
#
resources {
cpu = ${cpu}
diff --git a/fdio.infra.terraform/terraform-nomad-prometheus/fdio/main.tf b/fdio.infra.terraform/terraform-nomad-prometheus/fdio/main.tf
index e0ca417a78..054360c838 100644
--- a/fdio.infra.terraform/terraform-nomad-prometheus/fdio/main.tf
+++ b/fdio.infra.terraform/terraform-nomad-prometheus/fdio/main.tf
@@ -6,5 +6,5 @@ module "prometheus" {
# prometheus
datacenters = ["yul1"]
- pm_version = "2.33.1"
+ pm_version = "2.42.0"
} \ 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
index 409f47958f..97a7173a64 100644
--- a/fdio.infra.terraform/terraform-nomad-prometheus/fdio/versions.tf
+++ b/fdio.infra.terraform/terraform-nomad-prometheus/fdio/versions.tf
@@ -1,17 +1,17 @@
terraform {
backend "consul" {
- address = "consul.service.consul:8500"
+ address = "10.30.51.23:8500"
scheme = "http"
path = "terraform/prometheus"
}
required_providers {
nomad = {
source = "hashicorp/nomad"
- version = ">= 1.4.16"
+ version = ">= 1.4.19"
}
vault = {
- version = ">= 3.2.1"
+ version = ">= 3.12.0"
}
}
- required_version = ">= 1.1.4"
+ 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
index 10b71b8c82..0c609066e4 100644
--- a/fdio.infra.terraform/terraform-nomad-prometheus/main.tf
+++ b/fdio.infra.terraform/terraform-nomad-prometheus/main.tf
@@ -1,22 +1,25 @@
locals {
- datacenters = join(",", var.datacenters)
- url = join("",
+ 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,
@@ -25,7 +28,6 @@ resource "nomad_job" "nomad_job_prometheus" {
port = var.port,
region = var.region,
service_name = var.service_name,
- url = local.url,
use_canary = var.use_canary,
use_host_volume = var.use_host_volume,
use_vault_provider = var.vault_secret.use_vault_provider,
diff --git a/fdio.infra.terraform/terraform-nomad-prometheus/variables.tf b/fdio.infra.terraform/terraform-nomad-prometheus/variables.tf
index eab4d3b466..3c8c4b7a26 100644
--- a/fdio.infra.terraform/terraform-nomad-prometheus/variables.tf
+++ b/fdio.infra.terraform/terraform-nomad-prometheus/variables.tf
@@ -21,7 +21,7 @@ variable "volume_source" {
variable "pm_version" {
description = "Prometheus version"
type = string
- default = "2.33.1"
+ default = "2.42.0"
}
variable "auto_promote" {
@@ -48,6 +48,12 @@ variable "cpu" {
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
@@ -102,6 +108,12 @@ variable "use_host_volume" {
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
diff --git a/fdio.infra.terraform/terraform-nomad-prometheus/versions.tf b/fdio.infra.terraform/terraform-nomad-prometheus/versions.tf
index a01708f28a..a319c35908 100644
--- a/fdio.infra.terraform/terraform-nomad-prometheus/versions.tf
+++ b/fdio.infra.terraform/terraform-nomad-prometheus/versions.tf
@@ -2,8 +2,8 @@ terraform {
required_providers {
nomad = {
source = "hashicorp/nomad"
- version = ">= 1.4.16"
+ version = ">= 1.4.19"
}
}
- required_version = ">= 1.1.4"
+ 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
index 1147ddb16a..d61c8778d4 100644
--- a/fdio.infra.terraform/terraform-nomad-pyspark-etl/README.md
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/README.md
@@ -3,14 +3,14 @@
| Name | Version |
|------|---------|
-| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.1.4 |
-| <a name="requirement_nomad"></a> [nomad](#requirement\_nomad) | >= 1.4.16 |
+| <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.16 |
+| <a name="provider_nomad"></a> [nomad](#provider\_nomad) | >= 1.4.20 |
## Modules
@@ -20,7 +20,7 @@ No modules.
| Name | Type |
|------|------|
-| [nomad_job.nomad_job_etl](https://registry.terraform.io/providers/hashicorp/nomad/latest/docs/resources/job) | resource |
+| [nomad_job.nomad_job](https://registry.terraform.io/providers/hashicorp/nomad/latest/docs/resources/job) | resource |
## Inputs
@@ -35,7 +35,7 @@ No modules.
| <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` | `20000` | 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 |
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/conf/nomad/etl-trending-soak.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-trending-soak.hcl.tftpl
new file mode 100644
index 0000000000..6d77a898df
--- /dev/null
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl-trending-soak.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_soak.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.hcl.tftpl b/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl.hcl.tftpl
deleted file mode 100644
index 0d0ecfa318..0000000000
--- a/fdio.infra.terraform/terraform-nomad-pyspark-etl/conf/nomad/etl.hcl.tftpl
+++ /dev/null
@@ -1,322 +0,0 @@
-job "${job_name}" {
- # 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. For a full list of job types and their differences,
- # please see the online documentation.
- #
- # https://www.nomadproject.io/docs/jobspec/schedulers
- #
- type = "${type}"
-
- # The periodic stanza allows a job to run at fixed times, dates, or intervals.
- # The easiest way to think about the periodic scheduler is "Nomad cron" or
- # "distributed cron".
- #
- # https://www.nomadproject.io/docs/job-specification/periodic
- #
- periodic {
- cron = "${cron}"
- prohibit_overlap = "${prohibit_overlap}"
- time_zone = "${time_zone}"
- }
-
- # 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}-master" {
- # 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 {
- mode = "fail"
- }
-
- # The constraint allows restricting the set of eligible nodes. Constraints
- # may filter on attributes or client metadata.
- #
- # For more information and examples on the "volume" stanza, please see
- # the online documentation at:
- #
- # https://www.nomadproject.io/docs/job-specification/constraint
- #
- constraint {
- attribute = "$${attr.cpu.arch}"
- operator = "!="
- value = "arm64"
- }
-
- constraint {
- attribute = "$${node.class}"
- value = "builder"
- }
-
- # 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.html
- #
- task "${job_name}-trending" {
- # The artifact stanza instructs Nomad to fetch and unpack a remote
- # resource, such as a file, tarball, or binary.
- #
- # https://www.nomadproject.io/docs/job-specification/artifact
- #
- artifact {
- source = "git::https://github.com/FDio/csit"
- destination = "local/csit"
- }
-
- # 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 = "${image}"
- command = "gluesparksubmit"
- args = [
- "--driver-memory", "30g",
- "--executor-memory", "30g",
- "trending.py"
- ]
- work_dir = "/local/csit/csit.infra.etl"
- }
-
- # The env stanza configures a list of environment variables to populate
- # the task's environment before starting.
- 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 }
- }
-
- # 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}
- }
- }
- task "${job_name}-stats" {
- # The artifact stanza instructs Nomad to fetch and unpack a remote
- # resource, such as a file, tarball, or binary.
- #
- # https://www.nomadproject.io/docs/job-specification/artifact
- #
- artifact {
- source = "git::https://github.com/FDio/csit"
- destination = "local/csit"
- }
-
- # 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 = "${image}"
- command = "gluesparksubmit"
- args = [
- "--driver-memory", "10g",
- "--executor-memory", "10g",
- "stats.py"
- ]
- work_dir = "/local/csit/csit.infra.etl"
- }
-
- # The env stanza configures a list of environment variables to populate
- # the task's environment before starting.
- 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 }
- }
-
- # 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}
- }
- }
- }
-# group "${job_name}-rls2206" {
-# # 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 {
-# mode = "fail"
-# }
-#
-# # The constraint allows restricting the set of eligible nodes. Constraints
-# # may filter on attributes or client metadata.
-# #
-# # For more information and examples on the "volume" stanza, please see
-# # the online documentation at:
-# #
-# # https://www.nomadproject.io/docs/job-specification/constraint
-# #
-# constraint {
-# attribute = "$${attr.cpu.arch}"
-# operator = "!="
-# value = "arm64"
-# }
-#
-# constraint {
-# attribute = "$${node.class}"
-# value = "builder"
-# }
-#
-# # 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.html
-# #
-# task "${job_name}-coverage" {
-# # The artifact stanza instructs Nomad to fetch and unpack a remote
-# # resource, such as a file, tarball, or binary.
-# #
-# # https://www.nomadproject.io/docs/job-specification/artifact
-# #
-# artifact {
-# source = "git::https://github.com/FDio/csit"
-# destination = "local/csit"
-# }
-#
-# # 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 = "${image}"
-# command = "gluesparksubmit"
-# args = [
-# "--driver-memory", "20g",
-# "--executor-memory", "20g",
-# "--executor-cores", "2",
-# "--master", "local[2]",
-# "coverage_rls2206.py"
-# ]
-# work_dir = "/local/csit/csit.infra.etl"
-# }
-#
-# # The env stanza configures a list of environment variables to populate
-# # the task's environment before starting.
-# 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 }
-# }
-#
-# # 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}
-# }
-# }
-# task "${job_name}-iterative" {
-# # The artifact stanza instructs Nomad to fetch and unpack a remote
-# # resource, such as a file, tarball, or binary.
-# #
-# # https://www.nomadproject.io/docs/job-specification/artifact
-# #
-# artifact {
-# source = "git::https://github.com/FDio/csit"
-# destination = "local/csit"
-# }
-#
-# # 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 = "${image}"
-# command = "gluesparksubmit"
-# args = [
-# "--driver-memory", "20g",
-# "--executor-memory", "20g",
-# "--executor-cores", "2",
-# "--master", "local[2]",
-# "iterative_rls2206.py"
-# ]
-# work_dir = "/local/csit/csit.infra.etl"
-# }
-#
-# # The env stanza configures a list of environment variables to populate
-# # the task's environment before starting.
-# 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 }
-# }
-#
-# # 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-pyspark-etl/fdio/main.tf b/fdio.infra.terraform/terraform-nomad-pyspark-etl/fdio/main.tf
index 3d2026f0f9..aac81d9b78 100644
--- a/fdio.infra.terraform/terraform-nomad-pyspark-etl/fdio/main.tf
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/fdio/main.tf
@@ -6,7 +6,7 @@ data "vault_generic_secret" "fdio_docs" {
path = "kv/secret/data/etl/fdio_docs"
}
-module "etl" {
+module "etl-stats" {
providers = {
nomad = nomad.yul1
}
@@ -18,6 +18,266 @@ module "etl" {
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 = "@daily"
+ 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-trending-soak" {
+ 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-soak"
+ 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"
+#}
+# \ No newline at end of file
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/fdio/variables.tf b/fdio.infra.terraform/terraform-nomad-pyspark-etl/fdio/variables.tf
index 31c462632b..db24bdf0fa 100644
--- a/fdio.infra.terraform/terraform-nomad-pyspark-etl/fdio/variables.tf
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/fdio/variables.tf
@@ -7,7 +7,7 @@ variable "nomad_acl" {
variable "nomad_provider_address" {
description = "FD.io Nomad cluster address."
type = string
- default = "http://nomad.service.consul:4646"
+ default = "http://10.30.51.23:4646"
}
variable "nomad_provider_ca_file" {
@@ -31,7 +31,7 @@ variable "nomad_provider_key_file" {
variable "vault_provider_address" {
description = "Vault cluster address."
type = string
- default = "http://vault.service.consul:8200"
+ default = "http://10.30.51.23:8200"
}
variable "vault_provider_skip_tls_verify" {
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/fdio/versions.tf b/fdio.infra.terraform/terraform-nomad-pyspark-etl/fdio/versions.tf
index 24e7c94564..0c05e76d65 100644
--- a/fdio.infra.terraform/terraform-nomad-pyspark-etl/fdio/versions.tf
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/fdio/versions.tf
@@ -1,17 +1,17 @@
terraform {
backend "consul" {
- address = "vault.service.consul:8500"
+ address = "10.30.51.23:8500"
scheme = "http"
path = "terraform/etl"
}
required_providers {
nomad = {
source = "hashicorp/nomad"
- version = ">= 1.4.16"
+ version = ">= 1.4.20"
}
vault = {
- version = ">= 3.2.1"
+ version = ">= 3.12.0"
}
}
- required_version = ">= 1.1.4"
+ 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
index c477da81a8..cd6a9a52ff 100644
--- a/fdio.infra.terraform/terraform-nomad-pyspark-etl/main.tf
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/main.tf
@@ -3,9 +3,9 @@ locals {
envs = join("\n", concat([], var.envs))
}
-resource "nomad_job" "nomad_job_etl" {
+resource "nomad_job" "nomad_job" {
jobspec = templatefile(
- "${path.module}/conf/nomad/etl.hcl.tftpl",
+ "${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,
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/variables.tf b/fdio.infra.terraform/terraform-nomad-pyspark-etl/variables.tf
index 9357c096f3..f6d318e855 100644
--- a/fdio.infra.terraform/terraform-nomad-pyspark-etl/variables.tf
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/variables.tf
@@ -27,7 +27,7 @@ variable "aws_default_region" {
variable "cpu" {
description = "Specifies the CPU required to run this task in MHz."
type = number
- default = 20000
+ default = 10000
}
variable "cron" {
@@ -57,7 +57,7 @@ variable "job_name" {
variable "memory" {
description = "Specifies the memory required in MB."
type = number
- default = 60000
+ default = 50000
}
variable "out_aws_access_key_id" {
diff --git a/fdio.infra.terraform/terraform-nomad-pyspark-etl/versions.tf b/fdio.infra.terraform/terraform-nomad-pyspark-etl/versions.tf
index a01708f28a..f40435fe77 100644
--- a/fdio.infra.terraform/terraform-nomad-pyspark-etl/versions.tf
+++ b/fdio.infra.terraform/terraform-nomad-pyspark-etl/versions.tf
@@ -2,8 +2,8 @@ terraform {
required_providers {
nomad = {
source = "hashicorp/nomad"
- version = ">= 1.4.16"
+ version = ">= 1.4.20"
}
}
- required_version = ">= 1.1.4"
+ 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/fdio/variables.tf b/fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/variables.tf
index ed4ecc007d..d3d728a49d 100644
--- a/fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/variables.tf
+++ b/fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/variables.tf
@@ -1,17 +1,17 @@
variable "vault_provider_address" {
description = "Vault cluster address."
type = string
- default = "vault.service.consul:8200"
+ default = "http://10.30.51.23:8200"
}
variable "vault_provider_skip_tls_verify" {
- description = "Verification of the Vault server's TLS certificate"
+ description = "Verification of the Vault server's TLS certificate."
type = bool
default = false
}
variable "vault_provider_token" {
- description = "Vault root 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
index 2b62d8d1ee..4c93000093 100644
--- a/fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/versions.tf
+++ b/fdio.infra.terraform/terraform-vault-aws-secret-backend/fdio/versions.tf
@@ -1,13 +1,13 @@
terraform {
backend "consul" {
- address = "consul.service.consul:8500"
+ address = "10.30.51.23:8500"
scheme = "http"
path = "terraform/aws-secret-backend"
}
required_providers {
vault = {
- version = ">= 3.2.1"
+ version = ">= 3.12.0"
}
}
- required_version = ">= 1.1.4"
+ required_version = ">= 1.5.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
index bd28a4227f..bd28a4227f 100755
--- a/fdio.infra.pxe/build.sh
+++ b/fdio.infra/pxe/build.sh
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
index 969b530b7c..dc4801de1d 100644
--- a/fdio.infra.pxe/docker-dnsmasq/tftpboot/grub/grub.cfg
+++ b/fdio.infra/pxe/docker-dnsmasq/tftpboot/grub/grub.cfg
@@ -3,5 +3,8 @@ 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_focal_amd64/00:fe:c8:e5:68:c2/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:43:a3:ba/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:e5:68:c2/meta-data
+++ 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_focal_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
index abc84c418a..abc84c418a 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:e5:68:e0/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:46:34:e8/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:e5:68:e0/meta-data
+++ 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_focal_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
index b2a733efd0..b2a733efd0 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:e5:6a:72/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:7f:12/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:e5:6a:72/meta-data
+++ 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_focal_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
index 94e68fc526..94e68fc526 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:e5:6c:76/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:80/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/00:fe:c8:e5:6c:76/meta-data
+++ 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_focal_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
index ed8a9fca90..ed8a9fca90 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/0c:c4:7a:fc:c9:58/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:92/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/0c:c4:7a:fc:c9:58/meta-data
+++ 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_focal_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
index 8dc6443604..8dc6443604 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/0c:c4:7a:fc:ca:90/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:ba/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/0c:c4:7a:fc:ca:90/meta-data
+++ 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_focal_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
index 9599e3cb09..9599e3cb09 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/0c:c4:7a:fc:ca:cc/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:c6/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/0c:c4:7a:fc:ca:cc/meta-data
+++ 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_focal_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
index 1c0b06f9cf..1c0b06f9cf 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/38:0e:4d:9c:4b:0c/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:a6:ca/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/38:0e:4d:9c:4b:0c/meta-data
+++ 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_focal_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
index 18e99b2b2a..18e99b2b2a 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/38:0e:4d:9c:85:7a/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:cc:44/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/38:0e:4d:9c:85:7a/meta-data
+++ 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_focal_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
index 1e89ddb092..1e89ddb092 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:43:a3:ba/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:b9:cc:56/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:43:a3:ba/meta-data
+++ 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_focal_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
index 650857a96b..650857a96b 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:46:34:e8/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:85:8a/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:46:34:e8/meta-data
+++ 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_focal_amd64/3c:ec:ef:b9:7f:12/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:26/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:b9:7f:12/meta-data
+++ 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_focal_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
index 2ab6db73f1..2ab6db73f1 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:b9:a6:80/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:b2/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:b9:a6:80/meta-data
+++ 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_focal_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
index 9f8042de92..9f8042de92 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:b9:a6:92/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:e4/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:b9:a6:92/meta-data
+++ 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_focal_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
index 8e8fc04ebd..8e8fc04ebd 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:b9:a6:ba/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:92:e8/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:b9:a6:ba/meta-data
+++ 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_focal_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
index c408cf6923..c408cf6923 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:b9:a6:c6/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a0:d4/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:b9:a6:c6/meta-data
+++ 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_focal_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
index 5911fafcfe..5911fafcfe 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:b9:a6:ca/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a0:ec/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:b9:a6:ca/meta-data
+++ 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_focal_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
index 4b59cb41bf..4b59cb41bf 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:b9:cc:44/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a1:ac/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:b9:cc:44/meta-data
+++ 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_focal_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
index b384f124a9..b384f124a9 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:b9:cc:56/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:bc:a1:ea/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:b9:cc:56/meta-data
+++ 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_focal_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
index 412400cc4b..412400cc4b 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:bc:92:26/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:dd:6b/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:bc:92:26/meta-data
+++ 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_focal_amd64/3c:ec:ef:bc:92:b2/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:dd:77/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:bc:92:b2/meta-data
+++ 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_focal_amd64/3c:ec:ef:bc:92:e4/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:dd:eb/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:bc:92:e4/meta-data
+++ 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_focal_amd64/3c:ec:ef:bc:92:e8/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/3c:ec:ef:d9:de:27/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:bc:92:e8/meta-data
+++ 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_focal_amd64/3c:ec:ef:bc:a0:d4/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:25:3b:2e/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:bc:a0:d4/meta-data
+++ 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_focal_amd64/3c:ec:ef:bc:a0:ec/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:25:3b:4a/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:bc:a0:ec/meta-data
+++ 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_focal_amd64/3c:ec:ef:bc:a1:ac/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:25:3b:4c/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:bc:a1:ac/meta-data
+++ 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_focal_amd64/3c:ec:ef:bc:a1:ea/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:1c/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/3c:ec:ef:bc:a1:ea/meta-data
+++ 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_focal_amd64/4c:00:82:ae:5a:f8/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:36/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/4c:00:82:ae:5a:f8/meta-data
+++ 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_focal_amd64/58:ac:78:5c:90:78/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:42/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/58:ac:78:5c:90:78/meta-data
+++ 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_focal_amd64/6c:41:6a:1f:39:26/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:44/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/6c:41:6a:1f:39:26/meta-data
+++ 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_focal_amd64/a4:bf:01:55:ac:39/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:27:58:5c/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/a4:bf:01:55:ac:39/meta-data
+++ 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_focal_amd64/a4:bf:01:55:af:5e/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:6c/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/a4:bf:01:55:af:5e/meta-data
+++ 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_focal_amd64/ac:1f:6b:8a:8c:76/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:74/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8a:8c:76/meta-data
+++ 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_focal_amd64/ac:1f:6b:8a:8d:0a/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:78/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8a:8d:0a/meta-data
+++ 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_focal_amd64/ac:1f:6b:8a:8d:94/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/7c:c2:55:55:c0:7a/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8a:8d:94/meta-data
+++ 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_focal_amd64/ac:1f:6b:8a:8d:b6/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/a4:bf:01:55:ac:39/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8a:8d:b6/meta-data
+++ 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_focal_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
index 45cf743fed..45cf743fed 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:53:60/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/a4:bf:01:55:af:5e/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:53:60/meta-data
+++ 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_focal_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
index 5d33054455..5d33054455 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:53:64/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:b4/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:53:64/meta-data
+++ 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
index f1377ea653..f1377ea653 100644
--- 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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:53:96/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6a:d4/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:53:96/meta-data
+++ 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
index f44fd70dc0..f44fd70dc0 100644
--- 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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:54:c4/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:5a:6b:08/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:54:c4/meta-data
+++ 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
index f1ebe8eb0d..f1ebe8eb0d 100644
--- 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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:54:c8/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8a:8c:76/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:54:c8/meta-data
+++ 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_focal_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
index c7c1e3ff44..c7c1e3ff44 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:55:78/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8a:8d:0a/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:55:78/meta-data
+++ 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_focal_amd64/ac:1f:6b:8b:55:ae/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8b:53:60/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:55:ae/meta-data
+++ 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_focal_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
index 840df570ee..840df570ee 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:55:d8/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8b:53:96/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:55:d8/meta-data
+++ 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_focal_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
index 2be2225ad5..2be2225ad5 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:56:8c/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:8b:55:d8/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:56:8c/meta-data
+++ 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_focal_amd64/ac:1f:6b:8b:56:b6/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:56/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:56:b6/meta-data
+++ 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_focal_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
index 7dda8a91a9..7dda8a91a9 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:56:e2/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:76/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:8b:56:e2/meta-data
+++ 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_focal_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
index c516b55e22..c516b55e22 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ab:d7:4a/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:8c/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ab:d7:4a/meta-data
+++ 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_focal_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
index b8fb31684e..b8fb31684e 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ab:d7:92/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:ba/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ab:d7:92/meta-data
+++ 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_focal_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
index 0af7b187b3..0af7b187b3 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ab:d9:ae/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:c0/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ab:d9:ae/meta-data
+++ 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_focal_amd64/ac:1f:6b:ac:d7:56/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d7:d6/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ac:d7:56/meta-data
+++ 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_focal_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
index 4e6022b9ca..4e6022b9ca 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ac:d7:76/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_amd64/ac:1f:6b:ac:d9:2e/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ac:d7:76/meta-data
+++ 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
index f70804134b..f70804134b 100644
--- 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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ac:d7:8c/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/40:8d:5c:e7:b2:6e/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ac:d7:8c/meta-data
+++ 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_focal_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
index 90594af8cf..90594af8cf 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ac:d7:ba/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/90:e2:ba:49:db:b4/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ac:d7:ba/meta-data
+++ 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_focal_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
index d910c0cf0c..d910c0cf0c 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ac:d7:c0/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/90:e2:ba:55:be:32/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ac:d7:c0/meta-data
+++ 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_focal_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
index 69a6785d2e..69a6785d2e 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ac:d7:d6/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/a0:a3:3b:c1:12:fa/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/ac:1f:6b:ac:d7:d6/meta-data
+++ 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_focal_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
index 5cab627253..5cab627253 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/cc:46:d6:17:e0:58/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/a0:a3:3b:c1:14:28/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_amd64/cc:46:d6:17:e0:58/meta-data
+++ 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_focal_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
index 41afad4742..41afad4742 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/40:8d:5c:e7:b2:6e/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:02:b1:9f/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/40:8d:5c:e7:b2:6e/meta-data
+++ 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
index 42de9bb956..42de9bb956 100644
--- 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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/90:e2:ba:49:db:b4/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:02:b1:bb/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/90:e2:ba:49:db:b4/meta-data
+++ 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
index 3418e78c32..3418e78c32 100644
--- 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
diff --git a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/90:e2:ba:55:be:32/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:e7:a9:6c/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/90:e2:ba:55:be:32/meta-data
+++ 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_focal_arm64/a0:a3:3b:c1:12:fa/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/d8:5e:d3:e7:aa:4c/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/a0:a3:3b:c1:12:fa/meta-data
+++ 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_focal_arm64/a0:a3:3b:c1:14:28/meta-data b/fdio.infra/pxe/docker-nginx/html/ubuntu_jammy_arm64/e0:d5:5e:ae:70:26/meta-data
index e69de29bb2..e69de29bb2 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_arm64/a0:a3:3b:c1:14:28/meta-data
+++ 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_focal_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
index 7995120a60..7995120a60 100644
--- a/fdio.infra.pxe/docker-nginx/html/ubuntu_focal_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
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 e933025a3d..398d6896ed 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -18,77 +18,51 @@
#
# CSIT Core dependencies
ecdsa==0.18.0
-paramiko==2.9.3
+paramiko==3.3.1
pycrypto==2.6.1
-PyYAML==5.4.1
-requests==2.25.1
-robotframework==5.0.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.4
+scp==0.14.5
# IaaC dependencies
-ansible==5.10.0
-ansible-core==2.12.7
+ansible==8.2.0
+ansible-core==2.15.2
# PLRsearch dependencies
-dill==0.3.5.1
-numpy==1.22.4
-scipy==1.8.1
-
-# PAL/DOC dependencies
-boto3==1.17.78
-botocore==1.20.78
-hdrhistogram==0.6.1
-pandas==1.4.2
-plotly==4.1.1
-PTable==0.9.2
-Sphinx==3.5.4
-sphinx-rtd-theme==0.5.2
-sphinxcontrib-applehelp==1.0.2
-sphinxcontrib-devhelp==1.0.2
-sphinxcontrib-htmlhelp==2.0.0
-sphinxcontrib-jsmath==1.0.1
-sphinxcontrib-programoutput==0.17
-sphinxcontrib-qthelp==1.0.3
-sphinxcontrib-robotdoc==0.11.0
-sphinxcontrib-serializinghtml==1.1.5
+dill==0.3.7
+numpy==1.25.2
+scipy==1.11.1
# VPP requirements
ply==3.11
# JSON schema validation
-jsonschema==4.1.0
+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.
-alabaster==0.7.12
-attrs==21.4.0
-Babel==2.10.3
-bcrypt==3.2.2
-certifi==2022.6.15
+attrs==23.1.0
+bcrypt==4.0.1
+certifi==2023.7.22
cffi==1.15.1
-chardet==4.0.0
-cryptography==36.0.2
-docutils==0.16
-future==0.18.2
-idna==2.10
-imagesize==1.4.1
+charset-normalizer==3.2.0
+cryptography==41.0.3
+idna==3.4
Jinja2==3.1.2
-jmespath==0.10.0
-MarkupSafe==2.1.1
-packaging==21.3
-pbr==5.9.0
+jsonschema-specifications==2023.7.1
+MarkupSafe==2.1.3
+packaging==23.1
pycparser==2.21
-Pygments==2.12.0
PyNaCl==1.5.0
-pyparsing==3.0.9
-pyrsistent==0.18.1
-python-dateutil==2.8.2
-pytz==2022.1
-resolvelib==0.5.4
-retrying==1.3.3
-s3transfer==0.4.2
+referencing==0.30.0
+resolvelib==1.0.1
+rpds-py==0.9.2
six==1.16.0
-snowballstemmer==2.2.0
-urllib3==1.26.10
+urllib3==2.0.4
diff --git a/resources/api/vpp/supported_crcs.yaml b/resources/api/vpp/supported_crcs.yaml
index 30ea8bf6a2..fb6a499d42 100644
--- a/resources/api/vpp/supported_crcs.yaml
+++ b/resources/api/vpp/supported_crcs.yaml
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 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,21 +17,400 @@
# 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://packagecloud.io/app/fdio/release
-# /search?q=21.06&filter=debs&filter=all&dist=debian
-21.06-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: '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^ 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
@@ -40,25 +419,39 @@
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
- af_xdp_create: '0x21226c99' # dev
- af_xdp_create_reply: '0x5383d31f' # 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^ 64B-1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr
# ^ ndrpdrAND1cAND64bAND1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm
- bridge_domain_add_del: '0x600b7170' # dev
- bridge_domain_add_del_reply: '0xe8d4e804' # dev
+
+ # 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
@@ -66,23 +459,39 @@
# 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
- # ^^ 64B-1c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
+ # 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
@@ -96,49 +505,73 @@
det44_session_dump: '0xe45a3af7' # dev
# TODO: Which test to run to verify det44_* messages?
# dhcp_proxy_dump / details # honeycomb
- flow_add: '0xf946ed84' # dev
- flow_add_reply: '0x8587dc85' # dev
+
+ # 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
- flow_disable: '0x2024be69' #dev
- flow_disable_reply: '0xe8d4e804' #dev
- flow_del: '0xb6b9b02c' #dev
- flow_del_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
- gtpu_add_del_tunnel: '0xca983a2b' # perf
- gtpu_add_del_tunnel_reply: '0x5383d31f' # perf
+
+ # 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_v3_details: '0x2fc991ee' # dev
- ipsec_sa_v3_dump: '0x2076c2f4' # dev
- ipsec_sad_entry_add_del_v3: '0xc77ebd92' # dev
- ipsec_sad_entry_add_del_v3_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
# ^^ 64B-1c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr
@@ -147,12 +580,14 @@
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: '0x338b7411' # dev
- ipsec_spd_entry_add_del_reply: '0x9ffac24b' # 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
@@ -161,16 +596,20 @@
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: '0x6fa569c7' # perf
- lb_add_del_vip_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
@@ -186,6 +625,8 @@
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
@@ -194,12 +635,16 @@
macip_acl_interface_add_del_reply: '0xe8d4e804' # dev
macip_acl_interface_get: '0x51077d14' # dev teardown
macip_acl_interface_get_reply: '0xaccf9b05' # dev teardown
- memif_create: '0xb1b25061' # dev
- memif_create_reply: '0x5383d31f' # dev
+
+ # 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
+ 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
@@ -216,68 +661,89 @@
nat44_show_running_config_reply: '0x93d8e267' # dev teardown
nat44_static_mapping_details: '0x06cb40b2' # dev teardown
nat44_static_mapping_dump: '0x51077d14' # dev teardown
- nat44_user_details: '0x355896c2' # not used
- nat44_user_dump: '0x51077d14' # not used
- nat44_user_session_details: '0x2cf6e16d' # not used
- nat44_user_session_dump: '0xe1899c98' # not used
# 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
- policer_add_del: '0x2b31dd38' # dev
- policer_add_del_reply: '0xa177cef2' # dev
+
+ # 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
- rdma_create_v3: '0xc6287ea8' # perf
- rdma_create_v3_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
+
+ # 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_details: '0xdb6ff2a1' # dev teardown
- sr_policies_dump: '0x51077d14' # dev teardown
- sr_policy_add: '0x44ac92e8' # dev
- sr_policy_add_reply: '0xe8d4e804' # dev
+ 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_*
+
+ # 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: '0x65247409' # not used
- sw_interface_set_geneve_bypass_reply: '0xe8d4e804' # not used
+
# 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
@@ -286,25 +752,42 @@
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_*
- tap_create_v2: '0x2d0d6570' # dev
- tap_create_v2_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
+
+ # 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.
@@ -313,6 +796,7 @@
# 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.
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/docs/job_specs/mrr_daily/vpp-2n-aws.md b/resources/job_specs/mrr_daily/vpp-2n-aws.md
index 965e53fa4e..965e53fa4e 120000
--- a/docs/job_specs/mrr_daily/vpp-2n-aws.md
+++ b/resources/job_specs/mrr_daily/vpp-2n-aws.md
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/docs/job_specs/mrr_daily/vpp-2n-icx.md b/resources/job_specs/mrr_daily/vpp-2n-icx.md
index 7ff928265e..7ff928265e 120000
--- a/docs/job_specs/mrr_daily/vpp-2n-icx.md
+++ b/resources/job_specs/mrr_daily/vpp-2n-icx.md
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/docs/job_specs/mrr_daily/vpp-2n-zn2.md b/resources/job_specs/mrr_daily/vpp-2n-zn2.md
index 73776daa0a..73776daa0a 120000
--- a/docs/job_specs/mrr_daily/vpp-2n-zn2.md
+++ b/resources/job_specs/mrr_daily/vpp-2n-zn2.md
diff --git a/docs/job_specs/mrr_daily/vpp-3n-alt.md b/resources/job_specs/mrr_daily/vpp-3n-alt.md
index 1b9596d9af..1b9596d9af 120000
--- a/docs/job_specs/mrr_daily/vpp-3n-alt.md
+++ b/resources/job_specs/mrr_daily/vpp-3n-alt.md
diff --git a/docs/job_specs/mrr_daily/vpp-3n-aws.md b/resources/job_specs/mrr_daily/vpp-3n-aws.md
index 50ba8409ce..50ba8409ce 120000
--- a/docs/job_specs/mrr_daily/vpp-3n-aws.md
+++ b/resources/job_specs/mrr_daily/vpp-3n-aws.md
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/docs/job_specs/mrr_daily/vpp-3n-icx.md b/resources/job_specs/mrr_daily/vpp-3n-icx.md
index d0b496b069..d0b496b069 120000
--- a/docs/job_specs/mrr_daily/vpp-3n-icx.md
+++ b/resources/job_specs/mrr_daily/vpp-3n-icx.md
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/docs/job_specs/mrr_daily/vpp-3n-snr.md b/resources/job_specs/mrr_daily/vpp-3n-snr.md
index 65b6a2831c..65b6a2831c 120000
--- a/docs/job_specs/mrr_daily/vpp-3n-snr.md
+++ b/resources/job_specs/mrr_daily/vpp-3n-snr.md
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/docs/job_specs/mrr_weekly/dpdk-3n-alt.md b/resources/job_specs/mrr_weekly/dpdk-3n-alt.md
index 1f9d6df133..1f9d6df133 120000
--- a/docs/job_specs/mrr_weekly/dpdk-3n-alt.md
+++ b/resources/job_specs/mrr_weekly/dpdk-3n-alt.md
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/docs/job_specs/mrr_weekly/vpp-2n-aws.md b/resources/job_specs/mrr_weekly/vpp-2n-aws.md
index 965e53fa4e..965e53fa4e 120000
--- a/docs/job_specs/mrr_weekly/vpp-2n-aws.md
+++ b/resources/job_specs/mrr_weekly/vpp-2n-aws.md
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/docs/job_specs/mrr_weekly/vpp-2n-icx.md b/resources/job_specs/mrr_weekly/vpp-2n-icx.md
index 0a77ba6cb2..0a77ba6cb2 120000
--- a/docs/job_specs/mrr_weekly/vpp-2n-icx.md
+++ b/resources/job_specs/mrr_weekly/vpp-2n-icx.md
diff --git a/docs/job_specs/mrr_weekly/vpp-3n-aws.md b/resources/job_specs/mrr_weekly/vpp-3n-aws.md
index 50ba8409ce..50ba8409ce 120000
--- a/docs/job_specs/mrr_weekly/vpp-3n-aws.md
+++ b/resources/job_specs/mrr_weekly/vpp-3n-aws.md
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..fb175544e2
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-clx/vpp-soak-00.md
@@ -0,0 +1,43 @@
+# 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
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND soak AND e810cq AND drv_avf AND ethip4-ip4base
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND soak AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND soak AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND soak AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND soak AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND soak AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+## ./ip6
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND soak AND e810cq AND drv_avf AND ethip6-ip6base
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND soak AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+## ./l2
+### mellanox-cx556a
+#### rdma-core
+##### eth-l2bdbasemaclrn
+1c AND 64b AND soak AND cx556a AND drv_rdma_core AND eth-l2bdbasemaclrn
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn
+1c AND 64b AND soak AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND soak AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+## ./vm_vhost
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND soak AND e810cq AND drv_avf 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..db95287f2d
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-icx/vpp-soak-00.md
@@ -0,0 +1,43 @@
+# 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
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND soak AND e810cq AND drv_avf AND ethip4-ip4base
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND soak AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND soak AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND soak AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND soak AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND soak AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+## ./ip6
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND soak AND e810cq AND drv_avf AND ethip6-ip6base
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND soak AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+## ./l2
+### mellanox-cx7veat
+#### mlx5-core
+##### eth-l2bdbasemaclrn
+1c AND 64b AND soak AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn
+1c AND 64b AND soak AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND soak AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+## ./vm_vhost
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND soak AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
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..760e957586
--- /dev/null
+++ b/resources/job_specs/report_iterative/2n-spr/vpp-soak-00.md
@@ -0,0 +1,45 @@
+# 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
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND soak AND e810cq AND drv_avf AND ethip4-ip4base
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND soak AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND soak AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND soak AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+1c AND 64b AND soak AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-cps
+##### ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+1c AND 100b AND soak AND e810cq AND drv_avf AND ethip4tcp-nat44ed-h65536-p63-s4128768-tput
+## ./ip6
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND soak AND e810cq AND drv_avf AND ethip6-ip6base
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND soak AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+## ./l2
+### mellanox-cx7veat
+#### mlx5-core
+##### eth-l2bdbasemaclrn
+1c AND 64b AND soak AND 2p1cx7veat AND drv_mlx5_core AND eth-l2bdbasemaclrn
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn
+1c AND 64b AND soak AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND soak AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+## ./vm_vhost
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND soak AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+
+# TODO: Add memif-dma test?
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/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..cfaa79862f
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-icx/vpp-soak-00.md
@@ -0,0 +1,44 @@
+# 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
+## ./crypto
+### intel-e810cq
+#### avf
+##### ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND soak AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND soak AND e810cq AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+## ./ip4
+### intel-e810cq
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND soak AND e810cq AND drv_avf AND ethip4-ip4base
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND soak AND e810cq AND drv_avf AND ethip4-ip4scale20k-rnd
+## ./ip6
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND soak AND e810cq AND drv_avf AND ethip6-ip6base
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND soak AND e810cq AND drv_avf AND ethip6-ip6scale20k-rnd
+## ./l2
+### mellanox-cx6dx
+#### mlx5-core
+##### eth-l2bdbasemaclrn
+1c AND 64b AND soak AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn
+1c AND 64b AND soak AND e810cq AND drv_avf AND eth-l2bdbasemaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND soak AND e810cq AND drv_avf AND eth-l2bdscale1mmaclrn
+## ./vm_vhost
+### intel-e810cq
+#### avf
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND soak AND e810cq AND drv_avf AND eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+
+# TODO: No IPsecHW available, maybe add WireguardSW and GtpuHW?
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..4450333f87
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-icxd/vpp-mrr-00.md
@@ -0,0 +1,231 @@
+# 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
+##### ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha
+3c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha
+3c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+1c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+##### ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+1c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e823c AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+## ./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..cb08b5d479
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-icxd/vpp-ndrpdr-00.md
@@ -0,0 +1,219 @@
+# 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
+##### ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha
+3c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha
+3c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+##### ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e823c AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+## ./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..bf6159e3cb
--- /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
+## ./crypto
+### intel-e823c
+#### avf
+##### ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND soak AND e823c AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+1c AND 1518b AND soak AND e823c AND drv_avf AND ethip4ipsec1000tnlsw-ip4base-int-aes256gcm
+##### ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac512sha
+1c AND 1518b AND soak AND e823c AND drv_avf AND ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm
+1c AND 1518b AND soak AND e823c AND drv_avf AND ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm
+## ./ip4
+### intel-e823c
+#### avf
+##### ethip4-ip4base
+1c AND 64b AND soak AND e823c AND drv_avf AND ethip4-ip4base
+##### ethip4-ip4scale20k-rnd
+1c AND 64b AND soak AND e823c AND drv_avf AND ethip4-ip4scale20k-rnd
+## ./ip6
+#### avf
+##### ethip6-ip6base
+1c AND 78b AND soak AND e823c AND drv_avf AND ethip6-ip6base
+##### ethip6-ip6scale20k-rnd
+1c AND 78b AND soak AND e823c AND drv_avf AND ethip6-ip6scale20k-rnd
+## ./l2
+### mellanox-cx6dx
+#### mlx5-core
+##### eth-l2bdbasemaclrn
+1c AND 64b AND soak AND cx6dx AND drv_mlx5_core AND eth-l2bdbasemaclrn
+### intel-e823c
+#### avf
+##### eth-l2bdbasemaclrn
+1c AND 64b AND soak AND e823c AND drv_avf AND eth-l2bdbasemaclrn
+##### eth-l2bdscale1mmaclrn
+1c AND 64b AND soak AND e823c AND drv_avf AND eth-l2bdscale1mmaclrn
+## ./vm_vhost
+### intel-e823c
+#### avf
+##### eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc
+1c AND 64b AND soak AND e823c AND drv_avf 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..a35db1717d
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-snr/vpp-mrr-00.md
@@ -0,0 +1,231 @@
+# 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
+##### ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha
+3c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha
+3c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+1c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+##### ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+1c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+2c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+4c AND 1518b AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+1c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+2c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+4c AND imix AND mrr AND e822cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+## ./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..29d1785dab
--- /dev/null
+++ b/resources/job_specs/report_iterative/3n-snr/vpp-ndrpdr-00.md
@@ -0,0 +1,219 @@
+# 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
+##### ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha
+3c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha
+3c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha
+##### ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm
+##### ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+1c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+2c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+4c AND 1518b AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+1c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+2c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+4c AND imix AND ndrpdr AND e822cq AND drv_vfio_pci AND ethip4ipsec10000tnlhwasync-ip4base-int-aes256gcm
+## ./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/docs/job_specs/vpp_device/vpp-1n-skx.md b/resources/job_specs/vpp_device/vpp-1n-skx.md
index 02dad011f9..2b025b796c 100644
--- a/docs/job_specs/vpp_device/vpp-1n-skx.md
+++ b/resources/job_specs/vpp_device/vpp-1n-skx.md
@@ -196,13 +196,13 @@
### 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
+# 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
+# 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
+# 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
+# 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/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_docs.sh b/resources/libraries/bash/entry/bootstrap_docs.sh
deleted file mode 100755
index 9d2519ebf3..0000000000
--- a/resources/libraries/bash/entry/bootstrap_docs.sh
+++ /dev/null
@@ -1,32 +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.
-
-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}/docs.sh" || die "Source failed."
-common_dirs || die
-activate_virtualenv || die
-generate_docs || die
-die_on_docs_error || die
diff --git a/resources/libraries/bash/entry/bootstrap_report.sh b/resources/libraries/bash/entry/bootstrap_report.sh
index 191f910171..47a9d2e3d4 100755
--- a/resources/libraries/bash/entry/bootstrap_report.sh
+++ b/resources/libraries/bash/entry/bootstrap_report.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:
@@ -25,8 +25,8 @@ source "${BASH_FUNCTION_DIR}/common.sh" || {
echo "Source failed." >&2
exit 1
}
-source "${BASH_FUNCTION_DIR}/docs.sh" || die "Source failed."
+source "${BASH_FUNCTION_DIR}/eb_version.sh" || die "Source failed."
common_dirs || die
activate_virtualenv || die
generate_report || die
-die_on_docs_error || die
+die_on_error || die
diff --git a/resources/libraries/bash/entry/bootstrap_trending.sh b/resources/libraries/bash/entry/bootstrap_trending.sh
deleted file mode 100755
index b172a81be5..0000000000
--- a/resources/libraries/bash/entry/bootstrap_trending.sh
+++ /dev/null
@@ -1,32 +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.
-
-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}/docs.sh" || die "Source failed."
-common_dirs || die
-activate_virtualenv || die
-generate_trending || die
-die_on_docs_error || die
diff --git a/resources/libraries/bash/entry/bootstrap_verify_perf.sh b/resources/libraries/bash/entry/bootstrap_verify_perf.sh
index 99813573ea..18dfd08c39 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) 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:
@@ -46,10 +46,7 @@ archive_tests || die
prepare_topology || die
select_topology || die
reserve_and_cleanup_testbed || die
-select_tags || die
-compose_pybot_arguments || die
-set_environment_variables || 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 ae4c26a1ba..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) 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:
@@ -44,9 +44,6 @@ archive_tests || die
prepare_topology || die
select_topology || die
activate_docker_topology || die
-select_tags || die
-compose_pybot_arguments || die
-set_environment_variables || 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/patch_l3fwd_flip_routes b/resources/libraries/bash/entry/patch_l3fwd_flip_routes
index 23a6675145..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 main.c <<"_EOF"
-185,186c185,186
+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 db977b6e96..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) 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:
@@ -39,14 +39,15 @@ 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_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
@@ -54,8 +55,6 @@ archive_tests || die
prepare_topology || die
select_topology || die
activate_docker_topology || die
-select_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 565a566eb0..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) 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:
@@ -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/tox/README.txt b/resources/libraries/bash/entry/tox/README.txt
index e13b60209e..9ce21e93d0 100644
--- a/resources/libraries/bash/entry/tox/README.txt
+++ b/resources/libraries/bash/entry/tox/README.txt
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 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:
@@ -14,6 +14,13 @@
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}.
@@ -26,14 +33,9 @@ Each checker script should:
+ 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?
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).
-
-TODO: Should checkers be named differently than fixers?
- E.g. both scripts and tox environments start with fix_?
diff --git a/resources/libraries/bash/entry/tox/copyright_year.sh b/resources/libraries/bash/entry/tox/copyright_year.sh
index 9ed9fcb653..272763100e 100644
--- a/resources/libraries/bash/entry/tox/copyright_year.sh
+++ b/resources/libraries/bash/entry/tox/copyright_year.sh
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 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/doc_verify.sh b/resources/libraries/bash/entry/tox/doc_verify.sh
deleted file mode 100644
index 7eec4b69e4..0000000000
--- a/resources/libraries/bash/entry/tox/doc_verify.sh
+++ /dev/null
@@ -1,51 +0,0 @@
-# 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.
-
-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
-}
-source "${BASH_FUNCTION_DIR}/docs.sh" || die "Source failed."
-common_dirs || die
-activate_virtualenv || 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
-log_file="$(pwd)/doc_verify.log" || die
-
-generate_docs 2> ${log_file} || die
-
-if [[ "${DOCS_EXIT_STATUS}" != 0 ]]; then
- # Failed to generate report.
- warn
- warn "Doc verify checker: FAIL"
- exit 1
-fi
-
-warn
-warn "Doc verify checker: PASS"
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/tox/model_version.sh b/resources/libraries/bash/entry/tox/model_version.sh
deleted file mode 100644
index 2bcc628bfb..0000000000
--- a/resources/libraries/bash/entry/tox/model_version.sh
+++ /dev/null
@@ -1,65 +0,0 @@
-# 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.
-
-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 script runs a two grep commands as "if" conditions,
-# using log files to store the data (generated by git commands) to grep,
-# failing when model implementation edits do not come with model version edit.
-# The contents of the log files may be useful when fail cause is not obvious.
-
-# "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
-}
-
-impl_log="edited_files.log"
-git diff --name-only HEAD~ > "${impl_log}"
-if ! grep -q '^docs/model/current/schema/test_case*' "${impl_log}"; then
- # Failing grep means no model edits.
- warn "No model implementation edits detected."
- warn
- warn "CSIT model version checker: PASS"
- exit 0
-fi
-const_log="constants_edits.log"
-git diff -U0 HEAD~ -- "resources/libraries/python/Constants.py" > "${const_log}"
-if ! grep -q '^\+ MODEL_VERSION = ' "${const_log}"; then
- warn "Model implementation edits without version edit detected!"
- warn "See ${impl_log} and ${const_log} for what was detected."
- warn
- warn "CSIT model version checker: FAIL"
- exit 1
-fi
-doc_log="docs_edits.log"
-git diff -U0 HEAD~ -- "docs/model/current/top.rst" > "${doc_log}"
-if ! grep -q '^\+This document is valid for CSIT model' "${doc_log}"; then
- warn "Model implementation edits without documentation update detected!"
- warn "See ${impl_log}, ${const_log} and ${doc_log} for what was detected."
- warn
- warn "CSIT model version checker: FAIL"
- exit 1
-fi
-# TODO: Check constants and docs are specifying the same version.
-warn "Model version and doc are edited, model implementation edits are allowed."
-warn
-warn "CSIT model version checker: PASS"
-exit 0
diff --git a/resources/libraries/bash/function/README.txt b/resources/libraries/bash/function/README.txt
deleted file mode 100644
index e4eb91565b..0000000000
--- a/resources/libraries/bash/function/README.txt
+++ /dev/null
@@ -1,20 +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.
-
-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 64508bda11..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) 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:
@@ -28,9 +28,12 @@ function ansible_adhoc () {
set -exuo pipefail
case "$FLAVOR" in
- "aws")
+ "aws" | "c6in" | "c6gn" | "c7gn")
INVENTORY_PATH="cloud_inventory"
;;
+ "x-"*)
+ INVENTORY_PATH="external_inventory"
+ ;;
*)
INVENTORY_PATH="lf_inventory"
;;
@@ -70,9 +73,12 @@ function ansible_playbook () {
set -exuo pipefail
case "$FLAVOR" in
- "aws")
+ "aws" | "c6in" | "c6gn" | "c7gn")
INVENTORY_PATH="cloud_inventory"
;;
+ "x-"*)
+ INVENTORY_PATH="external_inventory"
+ ;;
*)
INVENTORY_PATH="lf_inventory"
;;
diff --git a/resources/libraries/bash/function/artifacts.sh b/resources/libraries/bash/function/artifacts.sh
index 15a4dd2fe1..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) 2021 Cisco and/or its affiliates.
-# Copyright (c) 2021 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
@@ -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=()
- pkgs=(vpp vpp-selinux-policy vpp-devel vpp-lib vpp-plugins vpp-api-python)
- if [ -z "${VPP_VERSION-}" ]; then
- artifs+=(${pkgs[@]})
- else
- artifs+=(${pkgs[@]/%/-${VPP_VERSION-}})
- fi
-
- if [[ "${INSTALL:-false}" == "true" ]]; then
- sudo yum -y install "${artifs[@]}" || {
- die "Install VPP artifact failed."
- }
- else
- sudo yum -y install --downloadonly --downloaddir=. "${artifs[@]}" || {
- 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.
- artifs=()
- pkgs=(vpp vpp-devel vpp-lib vpp-plugins libvpp0)
- if [ -z "${VPP_VERSION-}" ]; then
- artifs+=(${pkgs[@]})
- else
- artifs+=(${pkgs[@]/%/-${VPP_VERSION-}})
- fi
-
- if [[ "${INSTALL:-false}" == "true" ]]; then
- sudo yum -y install "${artifs[@]}" || {
- die "Install VPP artifact failed."
- }
- else
- sudo yum -y install --downloadonly --downloaddir=. "${artifs[@]}" || {
- 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 b194c31259..4f104dbfd3 100644
--- a/resources/libraries/bash/function/common.sh
+++ b/resources/libraries/bash/function/common.sh
@@ -1,5 +1,5 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
-# Copyright (c) 2022 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.
@@ -93,6 +93,12 @@ function activate_docker_topology () {
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
+
}
@@ -158,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:
@@ -227,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") || {
@@ -236,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."
}
@@ -258,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.
@@ -268,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}"
@@ -319,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.
@@ -360,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
}
@@ -385,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.
@@ -431,78 +440,110 @@ 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-aws"*)
+ *"1n-alt")
+ NODENESS="1n"
+ FLAVOR="alt"
+ ;;
+ *"1n-aws")
NODENESS="1n"
FLAVOR="aws"
;;
- *"2n-aws"*)
+ *"2n-aws")
NODENESS="2n"
FLAVOR="aws"
;;
- *"3n-aws"*)
+ *"3n-aws")
NODENESS="3n"
FLAVOR="aws"
;;
- *"2n-skx"*)
+ *"2n-c7gn")
NODENESS="2n"
- FLAVOR="skx"
+ FLAVOR="c7gn"
;;
- *"3n-skx"*)
+ *"3n-c7gn")
NODENESS="3n"
- FLAVOR="skx"
+ FLAVOR="c7gn"
;;
- *"2n-zn2"*)
+ *"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"*)
+ *"2n-clx")
NODENESS="2n"
FLAVOR="clx"
;;
- *"2n-icx"*)
+ *"2n-icx")
NODENESS="2n"
FLAVOR="icx"
;;
- *"3n-icx"*)
+ *"2n-spr")
+ NODENESS="2n"
+ FLAVOR="spr"
+ ;;
+ *"3n-icx")
NODENESS="3n"
FLAVOR="icx"
;;
- *"2n-dnv"*)
- NODENESS="2n"
- FLAVOR="dnv"
+ *"3na-spr")
+ NODENESS="3na"
+ FLAVOR="spr"
;;
- *"3n-dnv"*)
- NODENESS="3n"
- FLAVOR="dnv"
+ *"3nb-spr")
+ NODENESS="3nb"
+ FLAVOR="spr"
;;
- *"3n-snr"*)
+ *"3n-snr")
NODENESS="3n"
FLAVOR="snr"
;;
- *"2n-tx2"*)
+ *"3n-icxd")
+ NODENESS="3n"
+ FLAVOR="icxd"
+ ;;
+ *"2n-tx2")
NODENESS="2n"
FLAVOR="tx2"
;;
- *"3n-tsh"*)
+ *"3n-tsh")
NODENESS="3n"
FLAVOR="tsh"
;;
- *"3n-alt"*)
+ *"3n-alt")
NODENESS="3n"
FLAVOR="alt"
;;
+ *"2n-x-"*)
+ NODENESS="2n"
+ FLAVOR="${TEST_CODE#*2n-}"
+ ;;
+ *"3n-x-"*)
+ NODENESS="3n"
+ FLAVOR="${TEST_CODE#*3n-}"
+ ;;
esac
}
@@ -516,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.
@@ -523,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"
;;
@@ -548,6 +597,18 @@ function get_test_tag_string () {
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
@@ -621,42 +682,6 @@ function move_archives () {
}
-function post_process_robot_outputs () {
-
- # Generate INFO level output_info.xml by rebot.
- # Archive UTI raw json outputs.
- #
- # Variables read:
- # - ARCHIVE_DIR - Path to post-processed files.
-
- set -exuo pipefail
-
- # Compress raw json outputs, as they will never be post-processed.
- pushd "${ARCHIVE_DIR}" || die
- if [ -d "tests" ]; then
- # Use deterministic order.
- options+=("--sort=name")
- # We are keeping info outputs where they are.
- # Assuming we want to move anything but info files (and dirs).
- options+=("--exclude=*.info.json")
- tar czf "generated_output_raw.tar.gz" "${options[@]}" "tests" || true
- # Tar can remove when archiving, but chokes (not deterministically)
- # on attempting to remove dirs (not empty as info files are there).
- # So we need to delete the raw files manually.
- find "tests" -type f -name "*.raw.json" -delete || true
- fi
- popd || die
-
- # 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
-}
-
-
function prepare_topology () {
# Prepare virtual testbed topology if needed based on flavor.
@@ -665,6 +690,8 @@ function prepare_topology () {
# - 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.
@@ -676,7 +703,29 @@ function prepare_topology () {
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
@@ -689,6 +738,9 @@ function reserve_and_cleanup_testbed () {
# 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.
@@ -757,38 +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.
- # Generate INFO level output_info.xml by rebot.
- # Archive UTI raw json outputs.
+ # 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=("--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
- post_process_robot_outputs || die
-
popd || die "Change directory operation failed."
}
@@ -809,9 +873,9 @@ function select_arch_os () {
case "${ID}" in
"ubuntu"*)
case "${VERSION}" in
- *"LTS (Focal Fossa)"*)
- IMAGE_VER_FILE="VPP_DEVICE_IMAGE_UBUNTU"
- VPP_VER_FILE="VPP_STABLE_VER_UBUNTU_FOCAL"
+ *"LTS (Jammy Jellyfish)"*)
+ IMAGE_VER_FILE="VPP_DEVICE_IMAGE_UBUNTU_JAMMY"
+ VPP_VER_FILE="VPP_STABLE_VER_UBUNTU_JAMMY"
PKG_SUFFIX="deb"
;;
*)
@@ -840,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.
@@ -856,7 +923,7 @@ function select_tags () {
# NIC SELECTION
case "${TEST_CODE}" in
- *"1n-aws"*)
+ *"1n-aws"* | *"1n-c6in"*)
start_pattern='^ SUT:'
;;
*)
@@ -879,27 +946,45 @@ function select_tags () {
# 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-snr"*)
- default_nic="nic_intel-e810xxv"
+ *"3n-icxd")
+ default_nic="nic_intel-e823c"
;;
- *"3n-tsh"*)
+ *"3n-tsh")
default_nic="nic_intel-x520-da2"
;;
- *"3n-icx"* | *"2n-icx"*)
- default_nic="nic_intel-xxv710"
+ *"3n-icx" | *"2n-icx")
+ default_nic="nic_intel-e810cq"
+ ;;
+ *"3na-spr")
+ default_nic="nic_mellanox-cx7veat"
+ ;;
+ *"3nb-spr")
+ default_nic="nic_intel-e810cq"
;;
- *"3n-skx"* | *"2n-skx"* | *"2n-clx"* | *"2n-zn2"*)
+ *"2n-spr")
+ default_nic="nic_intel-e810cq"
+ ;;
+ *"2n-clx" | *"2n-zn2")
default_nic="nic_intel-xxv710"
;;
- *"2n-tx2"* | *"3n-alt"* | *"mrr-daily-master")
+ *"2n-tx2" | *"3n-alt")
default_nic="nic_intel-xl710"
;;
- *"1n-aws"* | *"2n-aws"* | *"3n-aws"*)
+ *"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"
;;
@@ -911,14 +996,22 @@ 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","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","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+='if ($1 =="-") cores="";'
@@ -935,9 +1028,15 @@ function select_tags () {
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"
;;
@@ -953,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
@@ -993,63 +1098,58 @@ function select_tags () {
# Reasons for blacklisting:
# - ipsechw - Blacklisted on testbeds without crypto hardware accelerator.
case "${TEST_CODE}" in
- *"1n-vbox"*)
+ *"1n-vbox")
test_tag_array+=("!avf")
test_tag_array+=("!vhost")
test_tag_array+=("!flow")
;;
- *"1n_tx2"*)
+ *"1n-alt")
test_tag_array+=("!flow")
;;
- *"2n-skx"*)
+ *"2n-clx")
test_tag_array+=("!ipsechw")
;;
- *"3n-skx"*)
+ *"2n-icx")
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"*)
+ *"2n-spr")
+ ;;
+ *"2n-tx2")
test_tag_array+=("!ipsechw")
;;
- *"2n-icx"*)
+ *"2n-zn2")
test_tag_array+=("!ipsechw")
;;
- *"3n-icx"*)
+ *"3n-alt")
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-zn2"*)
+ *"3n-icx")
test_tag_array+=("!ipsechw")
+ test_tag_array+=("!3_node_double_link_topoANDnic_intel-xxv710")
;;
- *"2n-dnv"*)
- test_tag_array+=("!memif")
- test_tag_array+=("!srv6_proxy")
- test_tag_array+=("!vhost")
- test_tag_array+=("!vts")
- test_tag_array+=("!drv_avf")
+ *"3n-snr")
;;
- *"2n-tx2"* | *"3n-alt"*)
- test_tag_array+=("!ipsechw")
+ *"3n-icxd")
;;
- *"3n-dnv"*)
- test_tag_array+=("!memif")
- test_tag_array+=("!srv6_proxy")
- test_tag_array+=("!vhost")
- test_tag_array+=("!vts")
- test_tag_array+=("!drv_avf")
+ *"3na-spr")
;;
- *"3n-snr"*)
+ *"3nb-spr")
;;
- *"3n-tsh"*)
- # 3n-tsh only has x520 NICs which don't work with AVF
+ *"3n-tsh")
test_tag_array+=("!drv_avf")
test_tag_array+=("!ipsechw")
;;
- *"1n-aws"* | *"2n-aws"* | *"3n-aws"*)
+ *"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
# We will add excluded NICs.
@@ -1057,19 +1157,17 @@ function select_tags () {
TAGS=()
prefix=""
-
- set +x
- if [[ "${TEST_CODE}" == "vpp-"* ]]; then
- if [[ "${TEST_CODE}" != *"device"* ]]; then
- # Automatic prefixing for VPP perf 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.
@@ -1114,68 +1212,101 @@ function select_topology () {
case_text="${NODENESS}_${FLAVOR}"
case "${case_text}" in
- "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_zn2")
- TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n_zn2*.yaml )
- TOPOLOGIES_TAGS="2_node_*_link_topo"
+ "2n_aws")
+ TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n-aws*.yaml )
+ TOPOLOGIES_TAGS="2_node_single_link_topo"
;;
- "3n_skx")
- TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n_skx*.yaml )
- TOPOLOGIES_TAGS="3_node_*_link_topo"
+ "2n_c7gn")
+ TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n-c7gn*.yaml )
+ TOPOLOGIES_TAGS="2_node_single_link_topo"
;;
- "3n_icx")
- TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n_icx*.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=( "${TOPOLOGIES_DIR}"/*2n_icx_*.yaml )
TOPOLOGIES_TAGS="2_node_*_link_topo"
;;
- "2n_dnv")
- TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n_dnv*.yaml )
+ "2n_spr")
+ TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n_spr_*.yaml )
+ TOPOLOGIES_TAGS="2_node_*_link_topo"
+ ;;
+ "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_tsh")
- TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n_tsh*.yaml )
+ "3n_aws")
+ TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n-aws*.yaml )
TOPOLOGIES_TAGS="3_node_single_link_topo"
;;
- "2n_tx2")
- TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n_tx2*.yaml )
- TOPOLOGIES_TAGS="2_node_single_link_topo"
+ "3n_c7gn")
+ TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n-c7gn*.yaml )
+ TOPOLOGIES_TAGS="3_node_single_link_topo"
;;
- "3n_alt")
- TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n_alt*.yaml )
+ "3n_c6in")
+ TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n-c6in*.yaml )
TOPOLOGIES_TAGS="3_node_single_link_topo"
;;
- "1n_aws")
- TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*1n-aws*.yaml )
- TOPOLOGIES_TAGS="1_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"
;;
- "2n_aws")
- TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n-aws*.yaml )
+ "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_TAGS="3_node_single_link_topo"
+ ;;
+ "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_aws")
- TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n-aws*.yaml )
+ "3n_x"*)
+ TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n_"${FLAVOR}"*.yaml )
TOPOLOGIES_TAGS="3_node_single_link_topo"
;;
*)
@@ -1195,6 +1326,9 @@ 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.
# Variables set:
@@ -1203,17 +1337,34 @@ function set_environment_variables () {
set -exuo pipefail
case "${TEST_CODE}" in
- *"1n-aws"* | *"2n-aws"* | *"3n-aws"*)
- # T-Rex 2.88+ workaround for ENA NICs.
+ *"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
;;
- *"2n-zn2"*)
+ *"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
}
@@ -1232,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.
@@ -1253,7 +1405,16 @@ function untrap_and_unreserve_testbed () {
die "${1:-FAILED TO UNRESERVE, FIX MANUALLY.}" 2
}
case "${TEST_CODE}" in
- *"1n-aws"* | *"2n-aws"* | *"3n-aws"*)
+ *"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."
;;
*)
diff --git a/resources/libraries/bash/function/device.sh b/resources/libraries/bash/function/device.sh
index 86d482068a..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:
@@ -173,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
}
@@ -312,14 +316,24 @@ function get_available_interfaces () {
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=(enp5)
- dut1_netdev=(enp145)
+ # 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
# whitelist.
@@ -495,7 +509,10 @@ function get_csit_model () {
"0x1572"|"0x154c")
MODEL="Intel-X710"
;;
- "*")
+ "0x101e")
+ MODEL="Mellanox-CX6DX"
+ ;;
+ *)
MODEL="virtual"
esac
fi
@@ -697,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!"
@@ -705,7 +722,7 @@ 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!"
diff --git a/resources/libraries/bash/function/docs.sh b/resources/libraries/bash/function/docs.sh
deleted file mode 100644
index cb3f36d21a..0000000000
--- a/resources/libraries/bash/function/docs.sh
+++ /dev/null
@@ -1,267 +0,0 @@
-#!/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.
-
-set -exuo pipefail
-
-
-function die_on_docs_error () {
-
- # Source this fragment if you want to abort on any failure.
- #
- # Variables read:
- # - DOCS_EXIT_STATUS - Set by a generation function.
- # Functions called:
- # - die - Print to stderr and exit.
-
- set -exuo pipefail
-
- if [[ "${DOCS_EXIT_STATUS}" != "0" ]]; then
- die "Failed to generate docs!" "${DOCS_EXIT_STATUS}"
- fi
-}
-
-function generate_docs () {
-
- # Generate docs content.
- #
- # Variable read:
- # - ${TOOLS_DIR} - Path to existing resources subdirectory "tools".
- # Variables set:
- # - DOCS_EXIT_STATUS - Exit status of docs generation.
- # Functions called:
- # - die - Print to stderr and exit.
-
- set -exuo pipefail
-
- pushd "${TOOLS_DIR}"/doc_gen || die "Pushd failed!"
-
- BUILD_DIR="_build"
-
- # Remove the old build:
- rm -rf ${BUILD_DIR} || true
- rm -rf /tmp/tmp-csit* || true
-
- export WORKING_DIR=$(mktemp -d /tmp/tmp-csitXXX) || die "export failed"
-
- # Create working directories
- mkdir -p "${BUILD_DIR}" || die "Mkdir failed!"
- mkdir -p "${WORKING_DIR}"/resources/libraries/python/ || die "Mkdir failed!"
- mkdir -p "${WORKING_DIR}"/resources/libraries/robot/ || die "Mkdir failed!"
- mkdir -p "${WORKING_DIR}"/tests/ || die "Mkdir failed!"
-
- # Copy the Sphinx source files:
- cp -r src/* ${WORKING_DIR}/ || die "Copy the Sphinx source files failed!"
-
- # Copy the source files to be processed:
- from_dir="${RESOURCES_DIR}/libraries/python/"
- to_dir="${WORKING_DIR}/resources/libraries/python/"
- dirs="${from_dir} ${to_dir}"
- rsync -ar --include='*/' --include='*.py' --exclude='*' ${dirs} || {
- die "rSync failed!"
- }
-
- from_dir="${RESOURCES_DIR}/libraries/robot/"
- to_dir="${WORKING_DIR}/resources/libraries/robot/"
- dirs="${from_dir} ${to_dir}"
- rsync -ar --include='*/' --include '*.robot' --exclude '*' ${dirs} || {
- die "rSync failed!"
- }
- touch ${to_dir}/index.robot || {
- die "Touch index.robot file failed!"
- }
-
- from_dir="${CSIT_DIR}/tests/"
- to_dir="${WORKING_DIR}/tests/"
- dirs="${from_dir} ${to_dir}"
- rsync -ar --include='*/' --include '*.robot' --exclude '*' ${dirs} || {
- die "rSync failed!"
- }
-
- # to remove GPL licence section
- find "${WORKING_DIR}/tests/" -type f -exec sed -i '/\*\*\*/,$!d' {} \;
-
- find ${WORKING_DIR}/ -type d -exec echo {} \; -exec touch {}/__init__.py \;
-
- python3 gen_rst.py || die "Generate .rst files failed!"
-
- # Generate the documentation:
- DATE=$(date -u '+%d-%b-%Y') || die "Get date failed!"
-
- all_options=("-v")
- all_options+=("-c" "${WORKING_DIR}")
- all_options+=("-a")
- all_options+=("-b" "html")
- all_options+=("-E")
- all_options+=("-D" "version="${GERRIT_BRANCH:-master}"")
- all_options+=("${WORKING_DIR}" "${BUILD_DIR}/")
-
- set +e
- sphinx-build "${all_options[@]}"
- DOCS_EXIT_STATUS="$?"
- set -e
-}
-
-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:
- # - DOCS_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[@]}"
- DOCS_EXIT_STATUS="$?"
- set -e
-
-}
-
-function generate_report_local () {
-
- # Generate report from local content.
- #
- # Variable read:
- # - ${TOOLS_DIR} - Path to existing resources subdirectory "tools".
- # - ${CSIT_REPORT_FILENAME} - Source filename.
- # - ${CSIT_REPORT_DIRECTORYNAME} - Source directory.
- # - ${CSIT_REPORT_INSTALL_DEPENDENCIES} - Whether to install dependencies.
- # - ${CSIT_REPORT_INSTALL_LATEX} - Whether to install latex.
- # Variables set:
- # - DOCS_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!"
-
- filename="${CSIT_REPORT_FILENAME-}"
- directoryname="${CSIT_REPORT_DIRECTORYNAME-}"
- install_dependencies="${CSIT_REPORT_INSTALL_DEPENDENCIES:-1}"
- install_latex="${CSIT_REPORT_INSTALL_LATEX:-0}"
-
- # Set default values in config array.
- typeset -A CFG
- typeset -A DIR
-
- DIR[WORKING]="_tmp"
-
- # Install system dependencies.
- if [[ ${install_dependencies} -eq 1 ]] ;
- then
- sudo apt -y update || die "APT update failed!"
- sudo apt -y install libxml2 libxml2-dev libxslt-dev \
- build-essential zlib1g-dev unzip || die "APT install failed!"
- fi
-
- if [[ ${install_latex} -eq 1 ]] ;
- then
- sudo apt -y update || die "APT update failed!"
- sudo apt -y install xvfb texlive-latex-recommended \
- texlive-fonts-recommended texlive-fonts-extra texlive-latex-extra \
- latexmk wkhtmltopdf inkscape || die "APT install failed!"
- target="/usr/share/texlive/texmf-dist/web2c/texmf.cnf"
- sudo sed -i.bak 's/^\(main_memory\s=\s\).*/\110000000/' "${target}" || {
- die "Patching latex failed!"
- }
- fi
-
- # 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_local")
- all_options+=("--release" "${RELEASE:-master}")
- all_options+=("--week" "${WEEK:-1}")
- all_options+=("--logging" "INFO")
- all_options+=("--force")
- if [[ ${filename} != "" ]]; then
- all_options+=("--input-file" "${filename}")
- fi
- if [[ ${directoryname} != "" ]]; then
- all_options+=("--input-directory" "${directoryname}")
- fi
-
- set +e
- python "${all_options[@]}"
- DOCS_EXIT_STATUS="$?"
- set -e
-
-}
-
-function generate_trending () {
-
- # Generate trending content.
- #
- # Variable read:
- # - ${TOOLS_DIR} - Path to existing resources subdirectory "tools".
- # Variables set:
- # - DOCS_EXIT_STATUS - Exit status of trending 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 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/trending")
- all_options+=("--logging" "INFO")
- all_options+=("--force")
-
- set +e
- python "${all_options[@]}"
- DOCS_EXIT_STATUS="$?"
- set -e
-
-}
diff --git a/resources/libraries/bash/function/dpdk.sh b/resources/libraries/bash/function/dpdk.sh
index f013683659..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) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -96,19 +96,8 @@ function dpdk_compile () {
# Configure generic build - the same used by VPP
meson_options="${meson_options} -Dplatform=generic"
- # Patch L3FWD.
- sed_rxd="s/^#define RTE_TEST_RX_DESC_DEFAULT 128"
- sed_rxd+="/#define RTE_TEST_RX_DESC_DEFAULT 1024/g"
- sed_txd="s/^#define RTE_TEST_TX_DESC_DEFAULT 512"
- sed_txd+="/#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"
-
# Compile using Meson and Ninja.
- meson ${meson_options} build || {
+ meson setup ${meson_options} build || {
die "Failed to compile DPDK!"
}
ninja -C build || die "Failed to compile DPDK!"
@@ -201,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.
@@ -209,14 +197,7 @@ function dpdk_l3fwd_compile () {
pushd "${DPDK_DIR}" || die "Pushd failed"
# Patch L3FWD.
- sed_rxd="s/^#define RTE_TEST_RX_DESC_DEFAULT 128"
- sed_rxd+="/#define RTE_TEST_RX_DESC_DEFAULT 2048/g"
- sed_txd="s/^#define RTE_TEST_TX_DESC_DEFAULT 512"
- sed_txd+="/#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"
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 4958e5251b..e432777e32 100644
--- a/resources/libraries/bash/function/gather.sh
+++ b/resources/libraries/bash/function/gather.sh
@@ -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:
@@ -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:
@@ -92,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)" || {
@@ -130,7 +131,7 @@ 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.
@@ -173,7 +174,7 @@ function gather_vpp () {
;;
"vpp-csit-"*)
# Shorten line.
- pgks="${PKG_SUFFIX}"
+ pkgs="${PKG_SUFFIX}"
# Use locally built packages.
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
index 122af23852..a2cf8e6514 100755
--- a/resources/libraries/bash/function/nginx.sh
+++ b/resources/libraries/bash/function/nginx.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-# Copyright (c) 2021 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:
@@ -21,7 +21,7 @@ function gather_nginx () {
# Ensure stable NGINX archive is downloaded.
#
# 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.
# - NGINX_VER - Version number of Nginx.
set -exuo pipefail
pushd "${DOWNLOAD_DIR}" || die "Pushd failed."
@@ -53,7 +53,7 @@ function common_dirs () {
# 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 pybot takes the build to test from.
+ # - 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:
@@ -121,7 +121,7 @@ function nginx_extract () {
# Variables read:
# - NGINX_DIR - Path to NGINX framework.
# - CSIT_DIR - Path to CSIT framework.
- # - DOWNLOAD_DIR - Path to directory pybot takes the build to test from.
+ # - 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.
diff --git a/resources/libraries/bash/function/per_patch.sh b/resources/libraries/bash/function/per_patch.sh
index 2149d79b52..44bd57da80 100644
--- a/resources/libraries/bash/function/per_patch.sh
+++ b/resources/libraries/bash/function/per_patch.sh
@@ -1,5 +1,5 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
-# Copyright (c) 2022 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,61 +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."
- file_list=("output.xml" "log.html" "report.html")
- file_list+=("tests" "generated_output_raw.tar.gz")
- for filename in "${file_list[@]}"; 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:
@@ -116,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).
@@ -137,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 .*'
- 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
}
@@ -209,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
index 1766381f75..2a0e0ed2be 100644
--- a/resources/libraries/bash/function/terraform.sh
+++ b/resources/libraries/bash/function/terraform.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-# 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:
@@ -22,8 +22,7 @@ function terraform_apply () {
#
# Variable read:
# - ${CSIT_DIR} - CSIT main directory, where terraform modules are located.
- # - ${NODENESS} - Node multiplicity of desired testbed.
- # - ${FLAVOR} - Node flavor string, see common.sh
+ # - ${TERRAFORM_MODULE_DIR} - Terraform module directory.
set -exuo pipefail
@@ -32,24 +31,21 @@ function terraform_apply () {
fi
pushd "${CSIT_DIR}"/fdio.infra.terraform || die "Pushd failed!"
- pushd "terraform-aws-${NODENESS}-${FLAVOR}-c5n" || die "Pushd failed!"
+ pushd "${TERRAFORM_MODULE_DIR}" || die "Pushd failed!"
export TF_LOG=INFO
- trap 'terraform_destroy' ERR || {
- die "Trap attempt failed, please cleanup manually. Aborting!"
- }
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.
- # - ${NODENESS} - Node multiplicity of desired testbed.
- # - ${FLAVOR} - Node flavor string, see common.sh
+ # - ${TERRAFORM_MODULE_DIR} - Terraform module directory.
set -exuo pipefail
@@ -58,7 +54,7 @@ function terraform_destroy () {
fi
pushd "${CSIT_DIR}"/fdio.infra.terraform || die "Pushd failed!"
- pushd "terraform-aws-${NODENESS}-${FLAVOR}-c5n" || 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!"
@@ -72,37 +68,100 @@ function terraform_init () {
#
# Variable read:
# - ${CSIT_DIR} - CSIT main directory, where terraform modules are located.
- # - ${NODENESS} - Node multiplicity of desired testbed.
- # - ${FLAVOR} - Node flavor string, see common.sh
+ # - ${TERRAFORM_MODULE_DIR} - Terraform module directory.
set -exuo pipefail
if ! installed terraform; then
- curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
- os="$(lsb_release -cs)" || die "Failed to get OS release!"
- repo="deb [arch=amd64] https://apt.releases.hashicorp.com ${os} main"
- sudo apt-add-repository "${repo}" || die "Failed to add repo!"
- apt update -y
- apt install -y terraform
- #die "Please install terraform!"
+ die "Please install terraform!"
fi
pushd "${CSIT_DIR}"/fdio.infra.terraform || die "Pushd failed!"
- pushd "terraform-aws-${NODENESS}-${FLAVOR}-c5n" || 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"
+ #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!"
+ #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!"
}
diff --git a/resources/libraries/bash/k8s_setup.sh b/resources/libraries/bash/k8s_setup.sh
deleted file mode 100755
index d1d3a38454..0000000000
--- a/resources/libraries/bash/k8s_setup.sh
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/bin/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.
-
-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 b96ec8df6c..0000000000
--- a/resources/libraries/bash/shell/k8s_utils.sh
+++ /dev/null
@@ -1,132 +0,0 @@
-#!/bin/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.
-
-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
- url="https://raw.githubusercontent.com/contiv/vpp/master/k8s/pull-images.sh"
- bash <(curl -s "${url}")
-
- # 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
- url"https://raw.githubusercontent.com/contiv/vpp/master/k8s/cri-install.sh"
- sudo su root -c "bash <(curl -s '${url}')"
-}
-
-function k8s_utils.cri_shim_uninstall {
- # Uninstall the CRI Shim on host
- url="https://raw.githubusercontent.com/contiv/vpp/master/k8s/cri-install.sh"
- sudo su root -c "bash <(curl -s '${url}') --uninstall"
-}
-
-function k8s_utils.kube_proxy_install {
- # Installing custom version of Kube-Proxy to enable Kubernetes services
- url="https://raw.githubusercontent.com/contiv/vpp/master/k8s/"
- url+="proxy-install.sh"
- bash <(curl -s "${url}")
-}
-
-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
- command='sudo docker ps --format "{{.ID}} {{.Names}}"'
- command+=" | grep -v vpp | cut -d' ' -f1"
- for i in $(${command}); 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/Constants.py b/resources/libraries/python/Constants.py
index 566dec7421..70452e6ff4 100644
--- a/resources/libraries/python/Constants.py
+++ b/resources/libraries/python/Constants.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 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,60 +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."""
# Version for CSIT data model. See docs/model/.
- MODEL_VERSION = u"1.0.1"
+ MODEL_VERSION = "1.5.1"
# Global off-switch in case JSON export is large or slow.
- EXPORT_JSON = get_optimistic_bool_from_env(u"EXPORT_JSON")
+ 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 scripts location
- RESOURCES_LIB_PY = u"resources/libraries/python"
+ RESOURCES_LIB_PY = "resources/libraries/python"
# shell scripts location
- RESOURCES_TOOLS = u"resources/tools"
+ RESOURCES_TOOLS = "resources/tools"
# Python API provider location
- RESOURCES_PAPI_PROVIDER = u"resources/tools/papi/vpp_papi_provider.py"
+ RESOURCES_PAPI_PROVIDER = "resources/tools/papi/vpp_papi_provider.py"
# Templates location
- RESOURCES_TPL = u"resources/templates"
-
- # vat templates location
- RESOURCES_TPL_VAT = u"resources/templates/vat"
+ RESOURCES_TPL = "resources/templates"
# Kubernetes templates location
- RESOURCES_TPL_K8S = u"resources/templates/kubernetes"
+ 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 templates location
- RESOURCES_TPL_TELEMETRY = u"resources/templates/telemetry"
+ RESOURCES_TPL_TELEMETRY = "resources/templates/telemetry"
# VPP Communications Library LD_PRELOAD library
- VCL_LDPRELOAD_LIBRARY = u"/usr/lib/x86_64-linux-gnu/libvcl_ldpreload.so"
-
- # OpenVPP VAT binary name
- VAT_BIN_NAME = u"vpp_api_test"
+ 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
@@ -174,105 +168,121 @@ 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-22.03"
+ QEMU_VM_DPDK = "/opt/dpdk-23.11"
# Docker container SUT image
- DOCKER_SUT_IMAGE_UBUNTU = u"csit_sut-ubuntu2004:local"
+ DOCKER_SUT_IMAGE_UBUNTU = "csit_sut-ubuntu2204:local"
# Docker container arm SUT image
- DOCKER_SUT_IMAGE_UBUNTU_ARM = u"csit_sut-ubuntu2004:local"
+ DOCKER_SUT_IMAGE_UBUNTU_ARM = "csit_sut-ubuntu2204:local"
- # TRex install directory
- TREX_INSTALL_DIR = u"/opt/trex-core-2.97"
+ # TRex install directory.
+ TREX_INSTALL_DIR = "/opt/trex-core-3.03"
- # 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
- TREX_CORE_COUNT = get_int_from_env(u"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 set number of RX/TX descriptors.
+ # Set to 0 to use default values.
TREX_TX_DESCRIPTORS_COUNT = get_int_from_env(
- u"TREX_TX_DESCRIPTORS_COUNT", 0
+ "TREX_TX_DESCRIPTORS_COUNT", 0
)
+
TREX_RX_DESCRIPTORS_COUNT = get_int_from_env(
- u"TREX_RX_DESCRIPTORS_COUNT", 0
+ "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 = get_str_from_env("GRAPH_NODE_VARIANT", "")
# Default memory page size in case multiple configured in system
- DEFAULT_HUGEPAGE_SIZE = get_str_from_env(u"DEFAULT_HUGEPAGE_SIZE", u"2M")
+ 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 = u"/run/vpp/cli.sock"
+ SOCKCLI_PATH = "/run/vpp/cli.sock"
# Default path to VPP API Stats socket.
- SOCKSTAT_PATH = u"/run/vpp/stats.sock"
+ 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 [s] of one trial in MRR test.
- PERF_TRIAL_DURATION = get_float_from_env(u"PERF_TRIAL_DURATION", 1.0)
+ 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(u"PERF_TRIAL_STL_DELAY", 0.0)
+ 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(
- u"PERF_TRIAL_ASTF_DELAY", 0.112
+ "PERF_TRIAL_ASTF_DELAY", 0.112
)
# Number of data frames in TPUT transaction, used both by TCP and UDP.
@@ -281,151 +291,248 @@ class Constants:
# 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(u"ASTF_N_DATA_FRAMES", 5)
+ 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"")
+ 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"Intel-X520-DA2": 10000000000,
- u"Intel-X553": 10000000000,
- u"Intel-X710": 10000000000,
- u"Intel-XL710": 24500000000,
- u"Intel-XXV710": 24500000000,
- u"Intel-E810XXV": 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"Intel-X520-DA2": 14880952,
- u"Intel-X553": 14880952,
- u"Intel-X710": 14880952,
- u"Intel-XL710": 18750000,
- u"Intel-XXV710": 18750000,
- u"Intel-E810XXV": 29000000,
- u"Intel-E810CQ": 58500000,
- u"Mellanox-CX556A": 148809523,
- u"Amazon-Nitro-50G": 1200000,
- 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"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-E810XXV": u"25ge2p1e810xxv",
- 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 = {
- u"10ge2p1x520": u"x520",
- u"10ge2p1x553": u"x553",
- u"10ge2p1x710": u"x710",
- u"40ge2p1xl710": u"xl710",
- u"25ge2p1xxv710": u"xxv710",
- u"25ge2p1e810xxv": u"e810xxv",
- u"100ge2p1e810cq": u"e810cq",
- u"50ge1p1ena": u"ena",
- u"100ge2p1cx556a": u"cx556a",
+ "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"Intel-X520-DA2": [u"vfio-pci", u"af_xdp"],
- u"Intel-X553": [u"vfio-pci", u"af_xdp"],
- u"Intel-X710": [u"vfio-pci", u"avf", u"af_xdp"],
- u"Intel-XL710": [u"vfio-pci", u"avf", u"af_xdp"],
- u"Intel-XXV710": [u"vfio-pci", u"avf", u"af_xdp"],
- u"Intel-E810XXV": [u"vfio-pci", u"avf", u"af_xdp"],
- u"Intel-E810CQ": [u"vfio-pci", u"avf", u"af_xdp"],
- u"Amazon-Nitro-50G": [u"vfio-pci"],
- u"Mellanox-CX556A": [u"rdma-core", u"af_xdp"],
+ "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",
- u"af_xdp": u"af_xdp_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",
- u"af_xdp": u"DRV_AF_XDP",
+ "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-",
- u"af_xdp": u"af-xdp-",
+ "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",
- u"af_xdp": 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"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-E810XXV": [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
@@ -441,31 +548,33 @@ 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 = {
- u"scapy": None
+ "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 \\
+ "mrr": u'''fication:** In MaxReceivedRate tests TG sends traffic at \\
| ... | line rate and reports total received packets over trial period. \\''',
- u"ndrpdr": u'''rification:** TG finds and reports throughput NDR (Non \\
+ "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.''',
- u"soak": u'''rification:** TG sends traffic at dynamically computed \\
+ "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 \\
@@ -473,8 +582,8 @@ class Constants:
}
PERF_TYPE_TO_TEMPLATE_DOC_VER = {
- u"mrr": u'''Measure MaxReceivedRate for ${frame_size}B frames \\
+ "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. \\",
+ "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 7ec8258686..fc32248f6b 100644
--- a/resources/libraries/python/ContainerUtils.py
+++ b/resources/libraries/python/ContainerUtils.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 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,8 +605,7 @@ 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"
@@ -636,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"'
)
@@ -694,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:
@@ -770,6 +792,22 @@ class ContainerEngine:
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/")
+ self.execute(
+ f'echo "{vpp_config.get_config_str()}" | tee /etc/vpp/startup.conf'
+ )
+
def create_vpp_exec_config(self, template_file, **kwargs):
"""Create VPP exec configuration on container.
@@ -808,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.")
@@ -863,7 +889,7 @@ class LXC(ContainerEngine):
else u"amd64"
image = self.container.image if self.container.image \
- else f"-d ubuntu -r focal -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"
@@ -1128,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)
diff --git a/resources/libraries/python/CoreDumpUtil.py b/resources/libraries/python/CoreDumpUtil.py
index 97948ad28a..b70afa858e 100644
--- a/resources/libraries/python/CoreDumpUtil.py
+++ b/resources/libraries/python/CoreDumpUtil.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:
@@ -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 5805ba7787..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"]
@@ -388,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(
@@ -414,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
@@ -501,17 +502,15 @@ class CpuUtils:
@staticmethod
def get_affinity_vswitch(
- nodes, node, phy_cores, rx_queues=None, rxd=None, txd=None):
- """Get affinity for vswitch.
+ nodes, phy_cores, rx_queues=None, rxd=None, txd=None):
+ """Get affinity for vswitch on all DUTs.
:param nodes: Topology nodes.
- :param node: Topology node string.
: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 node: str
:type phy_cores: int
:type rx_queues: int
:type rxd: int
@@ -519,76 +518,83 @@ class CpuUtils:
:returns: Compute resource information dictionary.
:rtype: dict
"""
- # Number of Data Plane physical cores.
- dp_cores_count = BuiltIn().get_variable_value(
- f"${{dp_cores_count}}", phy_cores
- )
- # Number of Feature Plane physical cores.
- fp_cores_count = BuiltIn().get_variable_value(
- f"${{fp_cores_count}}", phy_cores - dp_cores_count
- )
- # Ratio between RX queues and data plane threads.
- rxq_ratio = BuiltIn().get_variable_value(
- f"${{rxq_ratio}}", 1
- )
-
- dut_pf_keys = BuiltIn().get_variable_value(
- f"${{{node}_pf_keys}}"
- )
- # SMT override in case of non standard test cases.
- smt_used = BuiltIn().get_variable_value(
- f"${{smt_used}}", CpuUtils.is_smt_enabled(nodes[node][u"cpuinfo"])
- )
-
- cpu_node = Topology.get_interfaces_numa_node(nodes[node], *dut_pf_keys)
- skip_cnt = Constants.CPU_CNT_SYSTEM
- cpu_main = CpuUtils.cpu_list_per_node_str(
- nodes[node], cpu_node,
- skip_cnt=skip_cnt,
- cpu_cnt=Constants.CPU_CNT_MAIN,
- smt_used=False
- )
- skip_cnt += Constants.CPU_CNT_MAIN
- cpu_dp = CpuUtils.cpu_list_per_node_str(
- nodes[node], cpu_node,
- skip_cnt=skip_cnt,
- cpu_cnt=int(dp_cores_count),
- smt_used=smt_used
- ) if int(dp_cores_count) else u""
- skip_cnt = skip_cnt + int(dp_cores_count)
- cpu_fp = CpuUtils.cpu_list_per_node_str(
- nodes[node], cpu_node,
- skip_cnt=skip_cnt,
- cpu_cnt=int(fp_cores_count),
- smt_used=smt_used
- ) if int(fp_cores_count) else u""
-
- 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 = 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 = dict()
- compute_resource_info[u"buffers_numa"] = 215040 if smt_used else 107520
- compute_resource_info[u"smt_used"] = smt_used
- compute_resource_info[u"cpu_main"] = cpu_main
- compute_resource_info[u"cpu_dp"] = cpu_dp
- compute_resource_info[u"cpu_fp"] = cpu_fp
- compute_resource_info[u"cpu_wt"] = \
- u",".join(filter(None, [cpu_dp, cpu_fp]))
- compute_resource_info[u"cpu_alloc_str"] = \
- u",".join(filter(None, [cpu_main, cpu_dp, cpu_fp]))
- compute_resource_info[u"cpu_count_int"] = \
- int(dp_cores_count) + int(fp_cores_count)
- compute_resource_info[u"rxd_count_int"] = rxd
- compute_resource_info[u"txd_count_int"] = txd
- compute_resource_info[u"rxq_count_int"] = rxq_count_int
- compute_resource_info[u"fp_count_int"] = fp_count_int
- compute_resource_info[u"dp_count_int"] = dp_count_int
+ 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/L3fwdTest.py b/resources/libraries/python/DPDK/L3fwdTest.py
index 2ceeab2a51..178c747da5 100644
--- a/resources/libraries/python/DPDK/L3fwdTest.py
+++ b/resources/libraries/python/DPDK/L3fwdTest.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -55,12 +55,12 @@ class L3fwdTest:
"""
cpu_count_int = dp_count_int = int(phy_cores)
dp_cores = cpu_count_int+1
- for node in nodes:
- if u"DUT" in node:
- compute_resource_info = CpuUtils.get_affinity_vswitch(
- nodes, node, phy_cores, rx_queues=rx_queues,
- rxd=rxd, txd=txd
- )
+ 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:
@@ -69,14 +69,14 @@ class L3fwdTest:
f"{dp_count_int}T{cpu_count_int}C"
)
- cpu_dp = compute_resource_info[u"cpu_dp"]
- rxq_count_int = compute_resource_info[u"rxq_count_int"]
- if1 = topology_info[f"{node}_pf1"][0]
- if2 = topology_info[f"{node}_pf2"][0]
+ 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, nodes[node], if1=if1, if2=if2, lcores_list=cpu_dp,
+ nodes, node, if1=if1, if2=if2, lcores_list=cpu_dp,
nb_cores=dp_count_int, queue_nums=rxq_count_int,
- jumbo_frames=jumbo_frames
+ jumbo_frames=jumbo_frames, tg_flip=tg_flip
)
for node in nodes:
if u"DUT" in node:
@@ -88,7 +88,8 @@ class L3fwdTest:
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
+ queue_nums=rxq_count_int, jumbo_frames=jumbo_frames,
+ tg_flip=tg_flip
)
else:
message = f"Failed to start l3fwd at node {node}"
@@ -97,10 +98,14 @@ class L3fwdTest:
@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.
@@ -110,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
@@ -118,10 +124,11 @@ 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
)
lcores = [int(item) for item in lcores_list.split(u",")]
@@ -184,18 +191,24 @@ class L3fwdTest:
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
@@ -205,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 091110f129..3baba30715 100644
--- a/resources/libraries/python/DPDK/TestpmdTest.py
+++ b/resources/libraries/python/DPDK/TestpmdTest.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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,7 +27,7 @@ class TestpmdTest:
"""
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,
@@ -60,12 +60,11 @@ class TestpmdTest:
cpu_count_int = dp_count_int = int(phy_cores)
dp_cores = cpu_count_int+1
- for node in nodes:
- if u"DUT" in node:
- compute_resource_info = CpuUtils.get_affinity_vswitch(
- nodes, node, phy_cores, rx_queues=rx_queues,
- rxd=rxd, txd=txd
- )
+ 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:
@@ -74,12 +73,12 @@ class TestpmdTest:
f"{dp_count_int}T{cpu_count_int}C"
)
- cpu_dp = compute_resource_info[u"cpu_dp"]
- rxq_count_int = compute_resource_info[u"rxq_count_int"]
- if1 = topology_info[f"{node}_pf1"][0]
- if2 = topology_info[f"{node}_pf2"][0]
+ 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(
- nodes[node], if1=if1, if2=if2, lcores_list=cpu_dp,
+ 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
@@ -88,6 +87,11 @@ class TestpmdTest:
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:
diff --git a/resources/libraries/python/DUTSetup.py b/resources/libraries/python/DUTSetup.py
index c7a560262c..f9758c5f9f 100644
--- a/resources/libraries/python/DUTSetup.py
+++ b/resources/libraries/python/DUTSetup.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:
@@ -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,19 +298,21 @@ 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/devices/{pf_pci_addr}/sriov_numvfs"
+ 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):
@@ -416,7 +328,7 @@ class DUTSetup:
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']}"
@@ -456,8 +368,10 @@ class DUTSetup:
:type pci_addrs: list
"""
for pci_addr in pci_addrs:
- if not driver or \
- DUTSetup.get_pci_dev_driver(node, pci_addr) != driver:
+ 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
@@ -655,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, f"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, f"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.
@@ -718,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.
@@ -740,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/FlowUtil.py b/resources/libraries/python/FlowUtil.py
index 23293b6dc6..054356b9a2 100644
--- a/resources/libraries/python/FlowUtil.py
+++ b/resources/libraries/python/FlowUtil.py
@@ -1,4 +1,4 @@
-# copyright (c) 2022 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:
@@ -400,7 +400,7 @@ class FlowUtil:
:rtype: int
:raises ValueError: If action type is not supported.
"""
- cmd = u"flow_add"
+ cmd = u"flow_add_v2"
if action == u"redirect-to-queue":
flow_rule = {
@@ -454,7 +454,7 @@ class FlowUtil:
hw_if_index=int(sw_if_index)
)
- err_msg = u"Failed to enable flow on host {node[u'host']}"
+ 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)
diff --git a/resources/libraries/python/HoststackUtil.py b/resources/libraries/python/HoststackUtil.py
index 7e6ba56913..399395d41a 100644
--- a/resources/libraries/python/HoststackUtil.py
+++ b/resources/libraries/python/HoststackUtil.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:
@@ -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."""
@@ -41,7 +44,7 @@ class HoststackUtil():
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']} " \
@@ -56,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
@@ -84,7 +89,6 @@ class HoststackUtil():
ip_address = f" {iperf3_attributes[u'ip_address']}" if u"ip_address" \
in iperf3_attributes else u""
iperf3_cmd[u"name"] = u"iperf3"
- # TODO: Use OptionString library.
iperf3_cmd[u"args"] = f"--{iperf3_attributes[u'role']}{ip_address} " \
f"--interval 0{json_results} " \
f"--version{iperf3_attributes[u'ip_version']}"
@@ -152,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!")
@@ -168,9 +171,30 @@ 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.
@@ -274,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
@@ -323,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']}"
@@ -346,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"
@@ -364,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
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 4a5a413fc8..933fa34211 100644
--- a/resources/libraries/python/IPUtil.py
+++ b/resources/libraries/python/IPUtil.py
@@ -1,5 +1,5 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
-# Copyright (c) 2021 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:
@@ -15,7 +15,6 @@
"""Common IP utilities library."""
import re
-import os
from enum import IntEnum
@@ -28,7 +27,6 @@ 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 VatExecutor
from resources.libraries.python.Namespaces import Namespaces
@@ -738,52 +736,6 @@ class IPUtil:
"""
count = kwargs.get(u"count", 1)
- if count > 100:
- if not kwargs.get(u"multipath", True):
- raise RuntimeError(u"VAT exec supports only multipath behavior")
- gateway = kwargs.get(u"gateway", u"")
- interface = kwargs.get(u"interface", u"")
- local = kwargs.get(u"local", u"")
- if interface:
- interface = InterfaceUtil.vpp_get_interface_name(
- node, InterfaceUtil.get_interface_index(
- node, interface
- )
- )
- vrf = kwargs.get(u"vrf", None)
- trailers = list()
- if vrf:
- trailers.append(f"table {vrf}")
- if gateway:
- trailers.append(f"via {gateway}")
- if interface:
- trailers.append(interface)
- elif interface:
- trailers.append(f"via {interface}")
- if local:
- if gateway or interface:
- raise RuntimeError(u"Unsupported combination with local.")
- trailers.append(u"local")
- trailer = u" ".join(trailers)
- command_parts = [u"exec ip route add", u"network goes here"]
- if trailer:
- command_parts.append(trailer)
- netiter = NetworkIncrement(
- ip_network(f"{network}/{prefix_len}", strict=strict),
- format=u"slash"
- )
- tmp_filename = u"/tmp/routes.config"
- with open(tmp_filename, u"w") as tmp_file:
- for _ in range(count):
- command_parts[1] = netiter.inc_fmt()
- print(u" ".join(command_parts), file=tmp_file)
- VatExecutor().execute_script(
- tmp_filename, node, timeout=1800, json_out=False,
- copy_on_execute=True, history=False
- )
- os.remove(tmp_filename)
- return
-
cmd = u"ip_route_add_del"
args = dict(
is_add=True,
@@ -796,7 +748,7 @@ class IPUtil:
ip_network(f"{network}/{prefix_len}", strict=strict),
format=u"addr"
)
- with PapiSocketExecutor(node) as papi_exec:
+ with PapiSocketExecutor(node, is_async=True) as papi_exec:
for i in range(count):
args[u"route"] = IPUtil.compose_vpp_route_structure(
node, netiter.inc_fmt(), prefix_len, **kwargs
diff --git a/resources/libraries/python/IPsecUtil.py b/resources/libraries/python/IPsecUtil.py
index 6ed2db1eae..19995e547d 100644
--- a/resources/libraries/python/IPsecUtil.py
+++ b/resources/libraries/python/IPsecUtil.py
@@ -1,5 +1,5 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
-# Copyright (c) 2022 PANTHEON.tech s.r.o.
+# 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:
@@ -14,33 +14,40 @@
"""IPsec utilities library."""
-import os
-
from enum import Enum, IntEnum
-from io import open
-from ipaddress import ip_network, ip_address
+from io import open, TextIOWrapper
+from ipaddress import ip_network, ip_address, IPv4Address, IPv6Address
from random import choice
from string import ascii_letters
+from typing import Iterable, List, Optional, Sequence, Tuple, Union
+
+from robot.libraries.BuiltIn import BuiltIn
from resources.libraries.python.Constants import Constants
from resources.libraries.python.IncrementUtil import ObjIncrement
-from resources.libraries.python.InterfaceUtil import InterfaceUtil, \
- InterfaceStatusFlags
+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, NetworkIncrement
+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, NodeType
-from resources.libraries.python.VatExecutor import VatExecutor
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):
+def gen_key(length: int) -> bytes:
"""Generate random string as a key.
:param length: Length of generated payload.
@@ -48,36 +55,40 @@ 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)
- def __init__(self, policy_name, policy_int_repr):
+ BYPASS = ("bypass", 0)
+ DISCARD = ("discard", 1)
+ PROTECT = ("protect", 3)
+
+ def __init__(self, policy_name: str, policy_int_repr: int):
self.policy_name = policy_name
self.policy_int_repr = policy_int_repr
- def __str__(self):
+ def __str__(self) -> str:
return self.policy_name
- def __int__(self):
+ def __int__(self) -> int:
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)
- def __init__(self, alg_name, alg_int_repr, scapy_name, key_len):
+ 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: str, alg_int_repr: int, scapy_name: str, key_len: int
+ ):
self.alg_name = alg_name
self.alg_int_repr = alg_int_repr
self.scapy_name = scapy_name
@@ -86,10 +97,13 @@ 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)
- def __init__(self, alg_name, alg_int_repr, scapy_name, key_len):
+ 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: str, alg_int_repr: int, scapy_name: str, key_len: int
+ ):
self.alg_name = alg_name
self.alg_int_repr = alg_int_repr
self.scapy_name = scapy_name
@@ -98,12 +112,14 @@ 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
# Enable extended sequence numbers
IPSEC_API_SAD_FLAG_USE_ESN = 0x01
@@ -122,6 +138,7 @@ class IPsecSadFlags(IntEnum):
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
@@ -137,6 +154,7 @@ class TunnelEncpaDecapFlags(IntEnum):
class TunnelMode(IntEnum):
"""Tunnel modes."""
+
# point-to-point
TUNNEL_API_MODE_P2P = 0
# multi-point
@@ -147,7 +165,7 @@ class IPsecUtil:
"""IPsec utilities."""
@staticmethod
- def policy_action_bypass():
+ def policy_action_bypass() -> PolicyAction:
"""Return policy action bypass.
:returns: PolicyAction enum BYPASS object.
@@ -156,7 +174,7 @@ class IPsecUtil:
return PolicyAction.BYPASS
@staticmethod
- def policy_action_discard():
+ def policy_action_discard() -> PolicyAction:
"""Return policy action discard.
:returns: PolicyAction enum DISCARD object.
@@ -165,7 +183,7 @@ class IPsecUtil:
return PolicyAction.DISCARD
@staticmethod
- def policy_action_protect():
+ def policy_action_protect() -> PolicyAction:
"""Return policy action protect.
:returns: PolicyAction enum PROTECT object.
@@ -174,7 +192,7 @@ class IPsecUtil:
return PolicyAction.PROTECT
@staticmethod
- def crypto_alg_aes_cbc_128():
+ def crypto_alg_aes_cbc_128() -> CryptoAlg:
"""Return encryption algorithm aes-cbc-128.
:returns: CryptoAlg enum AES_CBC_128 object.
@@ -183,7 +201,7 @@ class IPsecUtil:
return CryptoAlg.AES_CBC_128
@staticmethod
- def crypto_alg_aes_cbc_256():
+ def crypto_alg_aes_cbc_256() -> CryptoAlg:
"""Return encryption algorithm aes-cbc-256.
:returns: CryptoAlg enum AES_CBC_256 object.
@@ -192,7 +210,7 @@ class IPsecUtil:
return CryptoAlg.AES_CBC_256
@staticmethod
- def crypto_alg_aes_gcm_128():
+ def crypto_alg_aes_gcm_128() -> CryptoAlg:
"""Return encryption algorithm aes-gcm-128.
:returns: CryptoAlg enum AES_GCM_128 object.
@@ -201,7 +219,7 @@ class IPsecUtil:
return CryptoAlg.AES_GCM_128
@staticmethod
- def crypto_alg_aes_gcm_256():
+ def crypto_alg_aes_gcm_256() -> CryptoAlg:
"""Return encryption algorithm aes-gcm-256.
:returns: CryptoAlg enum AES_GCM_128 object.
@@ -210,7 +228,7 @@ class IPsecUtil:
return CryptoAlg.AES_GCM_256
@staticmethod
- def get_crypto_alg_key_len(crypto_alg):
+ def get_crypto_alg_key_len(crypto_alg: CryptoAlg) -> int:
"""Return encryption algorithm key length.
:param crypto_alg: Encryption algorithm.
@@ -221,7 +239,7 @@ class IPsecUtil:
return crypto_alg.key_len
@staticmethod
- def get_crypto_alg_scapy_name(crypto_alg):
+ def get_crypto_alg_scapy_name(crypto_alg: CryptoAlg) -> str:
"""Return encryption algorithm scapy name.
:param crypto_alg: Encryption algorithm.
@@ -232,7 +250,7 @@ class IPsecUtil:
return crypto_alg.scapy_name
@staticmethod
- def integ_alg_sha_256_128():
+ def integ_alg_sha_256_128() -> IntegAlg:
"""Return integrity algorithm SHA-256-128.
:returns: IntegAlg enum SHA_256_128 object.
@@ -241,7 +259,7 @@ class IPsecUtil:
return IntegAlg.SHA_256_128
@staticmethod
- def integ_alg_sha_512_256():
+ def integ_alg_sha_512_256() -> IntegAlg:
"""Return integrity algorithm SHA-512-256.
:returns: IntegAlg enum SHA_512_256 object.
@@ -250,7 +268,7 @@ class IPsecUtil:
return IntegAlg.SHA_512_256
@staticmethod
- def get_integ_alg_key_len(integ_alg):
+ def get_integ_alg_key_len(integ_alg: Optional[IntegAlg]) -> int:
"""Return integrity algorithm key length.
None argument is accepted, returning zero.
@@ -263,7 +281,7 @@ class IPsecUtil:
return 0 if integ_alg is None else integ_alg.key_len
@staticmethod
- def get_integ_alg_scapy_name(integ_alg):
+ def get_integ_alg_scapy_name(integ_alg: Optional[IntegAlg]) -> str:
"""Return integrity algorithm scapy name.
:param integ_alg: Integrity algorithm.
@@ -274,7 +292,7 @@ class IPsecUtil:
return integ_alg.scapy_name
@staticmethod
- def ipsec_proto_esp():
+ def ipsec_proto_esp() -> int:
"""Return IPSec protocol ESP.
:returns: IPsecProto enum ESP object.
@@ -283,7 +301,7 @@ class IPsecUtil:
return int(IPsecProto.IPSEC_API_PROTO_ESP)
@staticmethod
- def ipsec_proto_ah():
+ def ipsec_proto_ah() -> int:
"""Return IPSec protocol AH.
:returns: IPsecProto enum AH object.
@@ -292,7 +310,9 @@ class IPsecUtil:
return int(IPsecProto.IPSEC_API_PROTO_AH)
@staticmethod
- def vpp_ipsec_select_backend(node, protocol, index=1):
+ def vpp_ipsec_select_backend(
+ node: dict, protocol: int, index: int = 1
+ ) -> None:
"""Select IPsec backend.
:param node: VPP node to select IPsec backend on.
@@ -304,19 +324,18 @@ class IPsecUtil:
:raises RuntimeError: If failed to select IPsec backend or if no API
reply received.
"""
- cmd = u"ipsec_select_backend"
- err_msg = f"Failed to select IPsec backend on host {node[u'host']}"
- args = dict(
- protocol=protocol,
- index=index
- )
+ cmd = "ipsec_select_backend"
+ err_msg = f"Failed to select IPsec backend on host {node['host']}"
+ args = dict(protocol=protocol, index=index)
with PapiSocketExecutor(node) as papi_exec:
papi_exec.add(cmd, **args).get_reply(err_msg)
@staticmethod
- def vpp_ipsec_set_async_mode(node, async_enable=1):
+ def vpp_ipsec_set_async_mode(node: dict, async_enable: int = 1) -> None:
"""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
@@ -324,17 +343,26 @@ 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['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):
+ node: dict, workers: Iterable[int], crypto_enable: bool = False
+ ) -> None:
"""Enable or disable crypto on specific vpp worker threads.
:param node: VPP node to enable or disable crypto for worker threads.
@@ -347,39 +375,40 @@ class IPsecUtil:
thread or if no API reply received.
"""
for worker in workers:
- cmd = u"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
+ cmd = "crypto_sw_scheduler_set_worker"
+ err_msg = (
+ "Failed to disable/enable crypto for worker thread"
+ f" on host {node['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, workers, crypto_enable=False):
+ nodes: dict, crypto_enable: bool = False
+ ) -> None:
"""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 node in nodes.values():
- if node[u"type"] == NodeType.DUT:
+ 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
+ return
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(u","):
+ if str(item.cpu_id) in workers.split(","):
worker_ids.append(item.id)
IPsecUtil.vpp_ipsec_crypto_sw_scheduler_set_worker(
@@ -388,8 +417,16 @@ class IPsecUtil:
@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: dict,
+ sad_id: int,
+ spi: int,
+ crypto_alg: CryptoAlg,
+ crypto_key: str,
+ integ_alg: Optional[IntegAlg] = None,
+ integ_key: str = "",
+ tunnel_src: Optional[str] = None,
+ tunnel_dst: Optional[str] = None,
+ ) -> None:
"""Create Security Association Database entry on the VPP node.
:param node: VPP node to add SAD entry on.
@@ -410,21 +447,15 @@ class IPsecUtil:
:type crypto_key: str
:type integ_alg: Optional[IntegAlg]
:type integ_key: str
- :type tunnel_src: str
- :type tunnel_dst: str
+ :type tunnel_src: Optional[str]
+ :type tunnel_dst: Optional[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:
@@ -432,15 +463,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_v3"
- err_msg = f"Failed to add Security Association Database entry " \
- f"on host {node[u'host']}"
+ cmd = "ipsec_sad_entry_add_v2"
+ err_msg = (
+ "Failed to add Security Association Database entry"
+ f" on host {node['host']}"
+ )
sad_entry = dict(
sad_id=int(sad_id),
spi=int(spi),
@@ -459,21 +493,28 @@ class IPsecUtil:
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,
- tunnel_addr_incr=True):
+ node: dict,
+ n_entries: int,
+ sad_id: int,
+ spi: int,
+ crypto_alg: CryptoAlg,
+ crypto_key: str,
+ integ_alg: Optional[IntegAlg] = None,
+ integ_key: str = "",
+ tunnel_src: Optional[str] = None,
+ tunnel_dst: Optional[str] = None,
+ tunnel_addr_incr: bool = True,
+ ) -> None:
"""Create multiple Security Association Database entries on VPP node.
:param node: VPP node to add SAD entry on.
@@ -500,59 +541,30 @@ class IPsecUtil:
:type crypto_key: str
:type integ_alg: Optional[IntegAlg]
:type integ_key: str
- :type tunnel_src: str
- :type tunnel_dst: str
+ :type tunnel_src: Optional[str]
+ :type tunnel_dst: Optional[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""
+ src_addr = ""
+ dst_addr = ""
if tunnel_addr_incr:
- addr_incr = 1 << (128 - 96) if src_addr.version == 6 \
- else 1 << (32 - 24)
+ addr_incr = (
+ 1 << (128 - 96) if src_addr.version == 6 else 1 << (32 - 24)
+ )
else:
addr_incr = 0
- 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
- )
- os.remove(tmp_filename)
- return
-
- 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:
@@ -562,9 +574,11 @@ class IPsecUtil:
IPsecSadFlags.IPSEC_API_SAD_FLAG_IS_TUNNEL_V6
)
- cmd = u"ipsec_sad_entry_add_del_v3"
- err_msg = f"Failed to add Security Association Database entry " \
- f"on host {node[u'host']}"
+ cmd = "ipsec_sad_entry_add_v2"
+ err_msg = (
+ "Failed to add Security Association Database entry"
+ f" on host {node['host']}"
+ )
sad_entry = dict(
sad_id=int(sad_id),
@@ -584,24 +598,24 @@ class IPsecUtil:
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"][u"src"] = (
+ 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
+ if tunnel_src and tunnel_dst
+ else src_addr
)
- args[u"entry"][u"tunnel"][u"dst"] = (
+ args["entry"]["tunnel"]["dst"] = (
str(dst_addr + i * addr_incr)
- if tunnel_src and tunnel_dst else dst_addr
+ if tunnel_src and tunnel_dst
+ else dst_addr
)
history = bool(not 1 < i < n_entries - 2)
papi_exec.add(cmd, history=history, **args)
@@ -609,8 +623,15 @@ class IPsecUtil:
@staticmethod
def vpp_ipsec_set_ip_route(
- node, n_tunnels, tunnel_src, traffic_addr, tunnel_dst, interface,
- raddr_range, dst_mac=None):
+ node: dict,
+ n_tunnels: int,
+ tunnel_src: str,
+ traffic_addr: str,
+ tunnel_dst: str,
+ interface: str,
+ raddr_range: int,
+ dst_mac: Optional[str] = None,
+ ) -> None:
"""Set IP address and route on interface.
:param node: VPP node to add config on.
@@ -630,102 +651,80 @@ class IPsecUtil:
:type tunnel_dst: str
:type interface: str
:type raddr_range: int
- :type dst_mac: str
+ :type dst_mac: Optional[str]
"""
tunnel_src = ip_address(tunnel_src)
tunnel_dst = ip_address(tunnel_dst)
traffic_addr = ip_address(traffic_addr)
tunnel_dst_prefix = 128 if tunnel_dst.version == 6 else 32
- addr_incr = 1 << (128 - raddr_range) if tunnel_src.version == 6 \
+ 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):
- tunnel_dst_addr = tunnel_dst + i * addr_incr
- 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"{tunnel_dst_prefix} " \
- f"via {tunnel_dst_addr} {if_name}\n" \
- f"exec ip route add {tunnel_dst_addr}/" \
- f"{tunnel_dst_prefix} " \
- f"via {tunnel_dst_addr} {if_name}\n"
- if dst_mac:
- conf = f"{conf}exec set ip neighbor {if_name} " \
- f"{tunnel_dst + i * addr_incr} {dst_mac}\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
- )
- cmd2 = u"ip_route_add_del"
- args2 = dict(
- is_add=1,
- is_multipath=0,
- route=None
+ prefix=None,
)
- cmd3 = u"ip_neighbor_add_del"
+ 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
- )
+ ip_address=None,
+ ),
+ )
+ err_msg = (
+ "Failed to configure IP addresses, IP routes and"
+ f" IP neighbor on interface {interface} on host {node['host']}"
+ if dst_mac
+ else "Failed to configure IP addresses and IP routes"
+ f" on interface {interface} on host {node['host']}"
)
- 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):
tunnel_dst_addr = tunnel_dst + i * addr_incr
- args1[u"prefix"] = IPUtil.create_prefix_object(
+ 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,
+ args2["route"] = IPUtil.compose_vpp_route_structure(
+ node,
+ traffic_addr + i,
prefix_len=tunnel_dst_prefix,
- interface=interface, gateway=tunnel_dst_addr
+ 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[u"route"] = IPUtil.compose_vpp_route_structure(
- node, tunnel_dst_addr,
+ args2["route"] = IPUtil.compose_vpp_route_structure(
+ node,
+ tunnel_dst_addr,
prefix_len=tunnel_dst_prefix,
- interface=interface, gateway=tunnel_dst_addr
+ interface=interface,
+ gateway=tunnel_dst_addr,
)
papi_exec.add(cmd2, history=history, **args2)
if dst_mac:
- args3[u"neighbor"][u"ip_address"] = ip_address(
+ args3["neighbor"]["ip_address"] = ip_address(
tunnel_dst_addr
)
papi_exec.add(cmd3, history=history, **args3)
papi_exec.get_replies(err_msg)
@staticmethod
- def vpp_ipsec_add_spd(node, spd_id):
+ def vpp_ipsec_add_spd(node: dict, spd_id: int) -> None:
"""Create Security Policy Database on the VPP node.
:param node: VPP node to add SPD on.
@@ -733,18 +732,18 @@ class IPsecUtil:
:type node: dict
:type spd_id: int
"""
- cmd = u"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)
+ cmd = "ipsec_spd_add_del"
+ err_msg = (
+ f"Failed to add Security Policy Database on host {node['host']}"
)
+ 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)
@staticmethod
- def vpp_ipsec_spd_add_if(node, spd_id, interface):
+ def vpp_ipsec_spd_add_if(
+ node: dict, spd_id: int, interface: Union[str, int]
+ ) -> None:
"""Add interface to the Security Policy Database.
:param node: VPP node.
@@ -754,22 +753,31 @@ 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 " \
- f"Database {spd_id} on host {node[u'host']}"
+ cmd = "ipsec_interface_add_del_spd"
+ err_msg = (
+ f"Failed to add interface {interface} to Security Policy"
+ f" Database {spd_id} on host {node['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_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):
+ node: dict,
+ dir1_interface: Union[str, int],
+ dir2_interface: Union[str, int],
+ entry_amount: int,
+ local_addr_range: Union[str, IPv4Address, IPv6Address],
+ remote_addr_range: Union[str, IPv4Address, IPv6Address],
+ action: PolicyAction = PolicyAction.BYPASS,
+ inbound: bool = False,
+ bidirectional: bool = True,
+ ) -> None:
"""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
@@ -799,21 +807,21 @@ class IPsecUtil:
: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 dir1_interface: Union[str, int]
+ :type dir2_interface: Union[str, int]
:type entry_amount: int
:type local_addr_range:
- Union[string, ipaddress.IPv4Address, ipaddress.IPv6Address]
+ Union[str, IPv4Address, IPv6Address]
:type remote_addr_range:
- Union[string, ipaddress.IPv4Address, ipaddress.IPv6Address]
- :type action: IPsecUtil.PolicyAction
+ Union[str, IPv4Address, IPv6Address]
+ :type action: PolicyAction
:type inbound: bool
:type bidirectional: bool
:raises NotImplementedError: When the action is PolicyAction.PROTECT.
"""
if action == PolicyAction.PROTECT:
- raise NotImplementedError('Policy action PROTECT is not supported.')
+ raise NotImplementedError("Policy action PROTECT is not supported.")
spd_id_dir1 = 1
spd_id_dir2 = 2
@@ -823,9 +831,13 @@ class IPsecUtil:
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
+ node,
+ spd_id_dir1,
+ matching_priority,
+ action,
+ inbound=inbound,
+ laddr_range=local_addr_range,
+ raddr_range=remote_addr_range,
)
if bidirectional:
@@ -834,9 +846,13 @@ class IPsecUtil:
# 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
+ node,
+ spd_id_dir2,
+ matching_priority,
+ action,
+ inbound=inbound,
+ laddr_range=remote_addr_range,
+ raddr_range=local_addr_range,
)
# non-matching entries
@@ -856,10 +872,14 @@ class IPsecUtil:
# 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
+ 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:
@@ -876,22 +896,40 @@ class IPsecUtil:
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
+ 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(
- 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 entry on.
+ def _vpp_ipsec_add_spd_entry_internal(
+ executor: PapiSocketExecutor,
+ spd_id: int,
+ priority: int,
+ action: PolicyAction,
+ inbound: bool = True,
+ sa_id: Optional[int] = None,
+ proto: Optional[int] = None,
+ laddr_range: Optional[str] = None,
+ raddr_range: Optional[str] = None,
+ lport_range: Optional[str] = None,
+ rport_range: Optional[str] = None,
+ is_ipv6: bool = False,
+ ) -> None:
+ """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.
@@ -911,31 +949,29 @@ class IPsecUtil:
<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: IPsecUtil.PolicyAction
+ :type action: PolicyAction
:type inbound: bool
- :type sa_id: int
- :type proto: int
- :type laddr_range: string
- :type raddr_range: string
- :type lport_range: string
- :type rport_range: string
+ :type sa_id: Optional[int]
+ :type proto: Optional[int]
+ :type laddr_range: Optional[str]
+ :type raddr_range: Optional[str]
+ :type lport_range: Optional[str]
+ :type rport_range: Optional[str]
: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"
local_net = ip_network(laddr_range, strict=False)
remote_net = ip_network(raddr_range, strict=False)
- cmd = u"ipsec_spd_entry_add_del"
- err_msg = f"Failed to add entry to Security Policy Database " \
- f"{spd_id} on host {node[u'host']}"
+ cmd = "ipsec_spd_entry_add_del_v2"
spd_entry = dict(
spd_id=int(spd_id),
@@ -943,7 +979,7 @@ class IPsecUtil:
is_outbound=not inbound,
sa_id=int(sa_id) if sa_id else 0,
policy=int(action),
- protocol=int(proto) if proto else 0,
+ protocol=255 if proto is None else int(proto),
remote_address_start=IPAddress.create_ip_address_object(
remote_net.network_address
),
@@ -956,27 +992,109 @@ class IPsecUtil:
local_address_stop=IPAddress.create_ip_address_object(
local_net.broadcast_address
),
- 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
+ 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
+ ),
)
- args = dict(
- is_add=True,
- entry=spd_entry
+ args = dict(is_add=True, entry=spd_entry)
+ executor.add(cmd, **args)
+
+ @staticmethod
+ def vpp_ipsec_add_spd_entry(
+ node: dict,
+ spd_id: int,
+ priority: int,
+ action: PolicyAction,
+ inbound: bool = True,
+ sa_id: Optional[int] = None,
+ proto: Optional[int] = None,
+ laddr_range: Optional[str] = None,
+ raddr_range: Optional[str] = None,
+ lport_range: Optional[str] = None,
+ rport_range: Optional[str] = None,
+ is_ipv6: bool = False,
+ ) -> None:
+ """Create Security Policy Database entry on the VPP node.
+
+ :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 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 spd_id: int
+ :type priority: int
+ :type action: PolicyAction
+ :type inbound: bool
+ :type sa_id: Optional[int]
+ :type proto: Optional[int]
+ :type laddr_range: Optional[str]
+ :type raddr_range: Optional[str]
+ :type lport_range: Optional[str]
+ :type rport_range: Optional[str]
+ :type is_ipv6: bool
+ """
+ err_msg = (
+ "Failed to add entry to Security Policy Database"
+ f" {spd_id} on host {node['host']}"
)
- with PapiSocketExecutor(node) as papi_exec:
- papi_exec.add(cmd, **args).get_reply(err_msg)
+ 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 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):
+ node: dict,
+ n_entries: int,
+ spd_id: int,
+ priority: Optional[ObjIncrement],
+ action: PolicyAction,
+ inbound: bool,
+ sa_id: Optional[ObjIncrement] = None,
+ proto: Optional[int] = None,
+ laddr_range: Optional[NetworkIncrement] = None,
+ raddr_range: Optional[NetworkIncrement] = None,
+ lport_range: Optional[str] = None,
+ rport_range: Optional[str] = None,
+ is_ipv6: bool = False,
+ ) -> None:
"""Create multiple Security Policy Database entries on the VPP node.
:param node: VPP node to add SPD entries on.
@@ -1003,298 +1121,51 @@ class IPsecUtil:
:type node: dict
:type n_entries: int
:type spd_id: int
- :type priority: IPsecUtil.ObjIncrement
- :type action: IPsecUtil.PolicyAction
+ :type priority: Optional[ObjIncrement]
+ :type action: 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 sa_id: Optional[ObjIncrement]
+ :type proto: Optional[int]
+ :type laddr_range: Optional[NetworkIncrement]
+ :type raddr_range: Optional[NetworkIncrement]
+ :type lport_range: Optional[str]
+ :type rport_range: Optional[str]
: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"
laddr_range = NetworkIncrement(ip_network(laddr_range), 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"
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('-')
-
- if int(n_entries) > 10:
- tmp_filename = f"/tmp/ipsec_spd_{spd_id}_add_del_entry.script"
-
- with open(tmp_filename, 'w') as tmp_file:
- for _ in range(n_entries):
- direction = u'inbound' if inbound else u'outbound'
- sa = f' sa {sa_id.inc_fmt()}' if sa_id is not None else ''
- protocol = f' protocol {protocol}' if proto else ''
- local_port_range = f' local-port-range ' \
- f'{lport_range_start} - {lport_range_stop}' \
- if lport_range else ''
- remote_port_range = f' remote-port-range ' \
- f'{rport_range_start} - {rport_range_stop}' \
- if rport_range else ''
-
- spd_cfg = f"exec ipsec policy add spd {spd_id} " \
- f"priority {priority.inc_fmt()} {direction}" \
- f"{protocol} action {action}{sa} " \
- f"local-ip-range {laddr_range.inc_fmt()} " \
- f"remote-ip-range {raddr_range.inc_fmt()}" \
- f"{local_port_range}{remote_port_range}\n"
-
- tmp_file.write(spd_cfg)
-
- VatExecutor().execute_script(
- tmp_filename, node, timeout=300, json_out=False,
- copy_on_execute=True
- )
- os.remove(tmp_filename)
- return
-
- for _ in range(n_entries):
- IPsecUtil.vpp_ipsec_add_spd_entry(
- node, 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
- )
-
- @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.
-
- 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
- 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: 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]
- """
- 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))
- )
- ikeys.append(
- gen_key(IPsecUtil.get_integ_alg_key_len(integ_alg))
- )
- if 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)
+ err_msg = (
+ "Failed to add entry to Security Policy Database"
+ f" {spd_id} on host {node['host']}"
)
- 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"
+ 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_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.
-
- 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
- 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: Sequence[bytes]
- :type integ_alg: Optional[IntegAlg]
- :type ikeys: Sequence[bytes]
- :type addr_incr: int
- :type spi_d: dict
- :type existing_tunnels: int
- """
- tmp_fn2 = u"/tmp/ipsec_create_tunnel_dut2.config"
- if2_n = Topology.get_interface_name(nodes[u"DUT2"], if2_key)
-
- 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)
- )
- 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"
- )
- 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):
+ def _ipsec_create_loopback_dut1_papi(
+ nodes: dict, tun_ips: dict, if1_key: str, if2_key: str
+ ) -> int:
"""Create loopback interface and set IP address on VPP node 1 interface
using PAPI.
@@ -1309,60 +1180,66 @@ class IPsecUtil:
:type tun_ips: dict
:type if1_key: str
:type if2_key: str
+ :returns: sw_if_idx Of the created loopback interface.
+ :rtype: int
"""
- 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_instance"
+ cmd = "create_loopback_instance"
args = dict(
mac_address=0,
is_specified=False,
user_instance=0,
)
- 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"
+ err_msg = (
+ "Failed to create loopback interface"
+ f" on host {nodes['DUT1']['host']}"
+ )
+ 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 = (
+ "Failed to set loopback interface state up"
+ f" on host {nodes['DUT1']['host']}"
)
- 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}"
+ f" on host {nodes['DUT1']['host']}"
)
- 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)
@@ -1371,8 +1248,18 @@ 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: dict,
+ tun_ips: dict,
+ if1_key: str,
+ if2_key: str,
+ n_tunnels: int,
+ crypto_alg: CryptoAlg,
+ integ_alg: Optional[IntegAlg],
+ raddr_ip2: Union[IPv4Address, IPv6Address],
+ addr_incr: int,
+ spi_d: dict,
+ existing_tunnels: int = 0,
+ ) -> Tuple[List[bytes], List[bytes]]:
"""Create multiple IPsec tunnel interfaces on DUT1 node using PAPI.
Generate random keys and return them (so DUT2 or TG can decrypt).
@@ -1400,7 +1287,7 @@ class IPsecUtil:
:type n_tunnels: int
:type crypto_alg: CryptoAlg
:type integ_alg: Optional[IntegAlg]
- :type raddr_ip2: IPv4Address or IPv6Address
+ :type raddr_ip2: Union[IPv4Address, IPv6Address]
:type addr_incr: int
:type spi_d: dict
:type existing_tunnels: int
@@ -1413,27 +1300,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,
@@ -1443,43 +1330,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" \
- f" {nodes[u'DUT1'][u'host']}"
+ err_msg = (
+ "Failed to add IPIP tunnel interfaces on host"
+ f" {nodes['DUT1']['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_v3"
- 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,
@@ -1488,7 +1370,7 @@ class IPsecUtil:
crypto_key=c_key,
integrity_algorithm=integ_alg.alg_int_repr if integ_alg else 0,
integrity_key=i_key,
- flags=None,
+ flags=common_flags,
tunnel=dict(
src=0,
dst=0,
@@ -1499,13 +1381,11 @@ class IPsecUtil:
dscp=int(IpDscp.IP_API_DSCP_CS0),
),
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))
@@ -1514,118 +1394,118 @@ class IPsecUtil:
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" \
- f" {nodes[u'DUT1'][u'host']}"
+ err_msg = (
+ "Failed to add IPsec SAD entries on host"
+ f" {nodes['DUT1']['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 " \
- f"on host {nodes[u'DUT1'][u'host']}"
+ err_msg = (
+ "Failed to add protection for tunnels with IPSEC"
+ f" on host {nodes['DUT1']['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 {nodes['DUT1']['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: dict,
+ tun_ips: dict,
+ if2_key: str,
+ n_tunnels: int,
+ crypto_alg: CryptoAlg,
+ ckeys: Sequence[bytes],
+ integ_alg: Optional[IntegAlg],
+ ikeys: Sequence[bytes],
+ raddr_ip1: Union[IPv4Address, IPv6Address],
+ addr_incr: int,
+ spi_d: dict,
+ existing_tunnels: int = 0,
+ ) -> None:
"""Create multiple IPsec tunnel interfaces on DUT2 node using PAPI.
This method accesses keys generated by DUT1 method
@@ -1642,6 +1522,8 @@ class IPsecUtil:
:param ckeys: List of encryption keys.
:param integ_alg: The integrity algorithm name.
:param ikeys: List of integrity keys.
+ :param raddr_ip1: Policy selector remote IPv4/IPv6 start address for the
+ first tunnel in direction node1->node2.
: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.
@@ -1654,30 +1536,33 @@ class IPsecUtil:
:type ckeys: Sequence[bytes]
:type integ_alg: Optional[IntegAlg]
:type ikeys: Sequence[bytes]
+ :type raddr_ip1: Union[IPv4Address, IPv6Address]
: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} " \
- f"on host {nodes[u'DUT2'][u'host']}"
- papi_exec.add(cmd, **args).get_reply(err_msg)
+ err_msg = (
+ f"Failed to set IP address on interface {if2_key}"
+ f" on host {nodes['DUT2']['host']}"
+ )
+ 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,
@@ -1687,41 +1572,36 @@ 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" \
- f" {nodes[u'DUT2'][u'host']}"
+ err_msg = (
+ "Failed to add IPIP tunnel interfaces on host"
+ f" {nodes['DUT2']['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_v3"
- 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,
@@ -1730,7 +1610,7 @@ class IPsecUtil:
crypto_key=c_key,
integrity_algorithm=integ_alg.alg_int_repr if integ_alg else 0,
integrity_key=i_key,
- flags=None,
+ flags=common_flags,
tunnel=dict(
src=0,
dst=0,
@@ -1741,13 +1621,11 @@ class IPsecUtil:
dscp=int(IpDscp.IP_API_DSCP_CS0),
),
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))
@@ -1756,132 +1634,129 @@ class IPsecUtil:
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" \
- f" {nodes[u'DUT2'][u'host']}"
+ err_msg = (
+ f"Failed to add IPsec SAD entries on host"
+ f" {nodes['DUT2']['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 " \
- f"on host {nodes[u'DUT2'][u'host']}"
+ err_msg = (
+ "Failed to add protection for tunnels with IPSEC"
+ f" on host {nodes['DUT2']['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 on host {nodes['DUT2']['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, return_keys=False):
+ nodes: dict,
+ tun_if1_ip_addr: str,
+ tun_if2_ip_addr: str,
+ if1_key: str,
+ if2_key: str,
+ n_tunnels: int,
+ crypto_alg: CryptoAlg,
+ integ_alg: Optional[IntegAlg],
+ raddr_ip1: str,
+ raddr_ip2: str,
+ raddr_range: int,
+ existing_tunnels: int = 0,
+ return_keys: bool = False,
+ ) -> Optional[Tuple[List[bytes], List[bytes], int, int]]:
"""Create multiple IPsec tunnel interfaces between two VPP nodes.
Some deployments (e.g. devicetest) need to know the generated keys.
@@ -1916,84 +1791,94 @@ class IPsecUtil:
:type if2_key: str
:type n_tunnels: int
:type crypto_alg: CryptoAlg
- :type integ_alg: Optonal[IntegAlg]
- :type raddr_ip1: string
- :type raddr_ip2: string
+ :type integ_alg: Optional[IntegAlg]
+ :type raddr_ip1: str
+ :type raddr_ip2: str
: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]
+ :rtype: Optional[Tuple[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" in nodes.keys():
- 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
+ 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,
)
- if u"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
- )
if return_keys:
- return ckeys, ikeys, spi_d[u"spi_1"], spi_d[u"spi_2"]
+ return ckeys, ikeys, spi_d["spi_1"], spi_d["spi_2"]
return None
@staticmethod
- def _create_ipsec_script_files(dut, instances):
+ def _create_ipsec_script_files(
+ dut: str, instances: int
+ ) -> List[TextIOWrapper]:
"""Create script files for configuring IPsec in containers
:param dut: DUT node on which to create the script files
:param instances: number of containers on DUT node
- :type dut: string
+ :type dut: str
:type instances: int
+ :returns: Created opened file handles.
+ :rtype: List[TextIOWrapper]
"""
scripts = []
for cnf in range(0, instances):
script_filename = (
f"/tmp/ipsec_create_tunnel_cnf_{dut}_{cnf + 1}.config"
)
- scripts.append(open(script_filename, 'w'))
+ scripts.append(open(script_filename, "w", encoding="utf-8"))
return scripts
@staticmethod
def _close_and_copy_ipsec_script_files(
- dut, nodes, instances, scripts):
+ dut: str, nodes: dict, instances: int, scripts: Sequence[TextIOWrapper]
+ ) -> None:
"""Close created scripts and copy them to containers
:param dut: DUT node on which to create the script files
:param nodes: VPP nodes
:param instances: number of containers on DUT node
:param scripts: dictionary holding the script files
- :type dut: string
+ :type dut: str
:type nodes: dict
:type instances: int
:type scripts: dict
@@ -2005,125 +1890,21 @@ 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):
- """Create multiple IPsec tunnel interfaces between two VPP nodes.
-
- :param nodes: VPP nodes to create tunnel interfaces.
- :param if1_ip_addr: VPP node 1 interface IP4 address.
- :param if2_ip_addr: VPP node 2 interface IP4 address.
- :param n_tunnels: Number of tunnell interfaces to create.
- :param crypto_alg: The encryption algorithm name.
- :param integ_alg: The integrity algorithm name.
- :param raddr_ip1: Policy selector remote IPv4 start address for the
- first tunnel in direction node1->node2.
- :param raddr_ip2: Policy selector remote IPv4 start address for the
- 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 n_instances: Number of containers.
- :type nodes: dict
- :type if1_ip_addr: str
- :type if2_ip_addr: str
- :type n_tunnels: int
- :type crypto_alg: CryptoAlg
- :type integ_alg: Optional[IntegAlg]
- :type raddr_ip1: string
- :type raddr_ip2: string
- :type raddr_range: int
- :type n_instances: int
- """
- spi_1 = 100000
- 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
- )
-
- for cnf in range(0, n_instances):
- dut1_scripts[cnf].write(
- u"create loopback interface\n"
- u"set interface state loop0 up\n\n"
- )
- dut2_scripts[cnf].write(
- f"ip route add {if1_ip_addr}/8 via "
- f"{ip_address(if2_ip_addr) + cnf + 100} memif1/{cnf + 1}\n\n"
- )
-
- 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"
- )
- integ = u""
- ikey = getattr(
- gen_key(IPsecUtil.get_integ_alg_key_len(integ_alg)), u"hex"
- )
- if integ_alg:
- integ = (
- f"integ-alg {integ_alg.alg_name} "
- f"local-integ-key {ikey} "
- f"remote-integ-key {ikey} "
- )
- # Configure tunnel end point(s) on left side
- dut1_scripts[cnf].write(
- u"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} "
- f"local-spi {spi_1 + tnl} "
- f"remote-ip {ip_address(if2_ip_addr) + cnf} "
- f"remote-spi {spi_2 + tnl} "
- f"crypto-alg {crypto_alg.alg_name} "
- f"local-crypto-key {ckey} "
- f"remote-crypto-key {ckey} "
- f"instance {tnl // n_instances} "
- f"salt 0x0 "
- f"{integ} \n"
- f"set interface unnumbered ipip{tnl // n_instances} use loop0\n"
- f"set interface state ipip{tnl // n_instances} up\n"
- f"ip route add {ip_address(raddr_ip2)+tnl}/32 "
- f"via ipip{tnl // n_instances}\n\n"
- )
- # Configure tunnel end point(s) on right side
- dut2_scripts[cnf].write(
- f"set ip neighbor memif1/{cnf + 1} "
- f"{ip_address(if1_ip_addr) + tnl * addr_incr} "
- f"02:02:00:00:{17:02X}:{cnf:02X} static\n"
- f"create ipsec tunnel local-ip {ip_address(if2_ip_addr) + cnf} "
- f"local-spi {spi_2 + tnl} "
- f"remote-ip {ip_address(if1_ip_addr) + tnl * addr_incr} "
- f"remote-spi {spi_1 + tnl} "
- f"crypto-alg {crypto_alg.alg_name} "
- f"local-crypto-key {ckey} "
- f"remote-crypto-key {ckey} "
- f"instance {tnl // n_instances} "
- f"salt 0x0 "
- f"{integ}\n"
- f"set interface unnumbered ipip{tnl // n_instances} "
- f"use memif1/{cnf + 1}\n"
- f"set interface state ipip{tnl // n_instances} up\n"
- f"ip route add {ip_address(raddr_ip1) + tnl}/32 "
- f"via ipip{tnl // n_instances}\n\n"
- )
-
- IPsecUtil._close_and_copy_ipsec_script_files(
- u"DUT1", nodes, n_instances, dut1_scripts)
- IPsecUtil._close_and_copy_ipsec_script_files(
- u"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,
- tunnel_addr_incr=True):
+ nodes: dict,
+ interface1: Union[str, int],
+ interface2: Union[str, int],
+ n_tunnels: int,
+ crypto_alg: CryptoAlg,
+ integ_alg: Optional[IntegAlg],
+ tunnel_ip1: str,
+ tunnel_ip2: str,
+ raddr_ip1: str,
+ raddr_ip2: str,
+ raddr_range: int,
+ tunnel_addr_incr: bool = True,
+ ) -> None:
"""Create multiple IPsec tunnels between two VPP nodes.
:param nodes: VPP nodes to create tunnels.
@@ -2143,15 +1924,15 @@ class IPsecUtil:
: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 interface1: Union[str, int]
+ :type interface2: Union[str, int]
:type n_tunnels: int
:type crypto_alg: CryptoAlg
:type integ_alg: Optional[IntegAlg]
:type tunnel_ip1: str
:type tunnel_ip2: str
- :type raddr_ip1: string
- :type raddr_ip2: string
+ :type raddr_ip1: str
+ :type raddr_ip2: str
:type raddr_range: int
:type tunnel_addr_incr: bool
"""
@@ -2162,145 +1943,252 @@ class IPsecUtil:
sa_id_2 = 200000
spi_1 = 300000
spi_2 = 400000
- dut1_local_outbound_range = ip_network(f"{tunnel_ip1}/8", False).\
- with_prefixlen
- dut1_remote_outbound_range = ip_network(f"{tunnel_ip2}/8", False).\
- with_prefixlen
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 ""
+ )
- rmac = Topology.get_interface_mac(nodes[u"DUT2"], interface2) \
- if u"DUT2" in nodes.keys() \
- else Topology.get_interface_mac(nodes[u"TG"], interface2)
+ rmac = (
+ Topology.get_interface_mac(nodes["DUT2"], interface2)
+ if "DUT2" in nodes.keys()
+ else Topology.get_interface_mac(nodes["TG"], interface2)
+ )
IPsecUtil.vpp_ipsec_set_ip_route(
- nodes[u"DUT1"], n_tunnels, tunnel_ip1, raddr_ip2, tunnel_ip2,
- interface1, raddr_range, rmac)
-
- 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_add_spd_entry(
- nodes[u"DUT1"], spd_id, p_hi, PolicyAction.BYPASS, inbound=False,
- proto=50, laddr_range=dut1_local_outbound_range,
- raddr_range=dut1_remote_outbound_range
+ nodes["DUT1"],
+ n_tunnels,
+ tunnel_ip1,
+ raddr_ip2,
+ tunnel_ip2,
+ interface1,
+ raddr_range,
+ rmac,
)
- IPsecUtil.vpp_ipsec_add_spd_entry(
- nodes[u"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_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, tunnel_addr_incr
+ 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_add_spd_entries(
- nodes[u"DUT1"], n_tunnels, spd_id, priority=ObjIncrement(p_lo, 0),
- action=PolicyAction.PROTECT, inbound=False,
+ 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))
+ raddr_range=NetworkIncrement(ip_network(raddr_ip2)),
)
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, tunnel_addr_incr
+ 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_add_spd_entries(
- nodes[u"DUT1"], n_tunnels, spd_id, priority=ObjIncrement(p_lo, 0),
- action=PolicyAction.PROTECT, inbound=True,
+ 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))
+ raddr_range=NetworkIncrement(ip_network(raddr_ip1)),
)
- if u"DUT2" in nodes.keys():
- rmac = Topology.get_interface_mac(nodes[u"DUT1"], interface1)
+ if "DUT2" in nodes.keys():
+ rmac = Topology.get_interface_mac(nodes["DUT1"], interface1)
IPsecUtil.vpp_ipsec_set_ip_route(
- nodes[u"DUT2"], n_tunnels, tunnel_ip2, raddr_ip1, tunnel_ip1,
- interface2, 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_add_spd_entry(
- nodes[u"DUT2"], spd_id, p_hi, PolicyAction.BYPASS,
- inbound=False, proto=50, laddr_range=dut1_remote_outbound_range,
- raddr_range=dut1_local_outbound_range
- )
- IPsecUtil.vpp_ipsec_add_spd_entry(
- nodes[u"DUT2"], spd_id, p_hi, PolicyAction.BYPASS,
- inbound=True, proto=50, laddr_range=dut1_local_outbound_range,
- raddr_range=dut1_remote_outbound_range
+ nodes["DUT2"],
+ n_tunnels,
+ tunnel_ip2,
+ raddr_ip1,
+ tunnel_ip1,
+ interface2,
+ raddr_range,
+ rmac,
)
+ 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"DUT2"], n_tunnels, sa_id_1, spi_1, crypto_alg,
- crypto_key, integ_alg, integ_key, tunnel_ip1, tunnel_ip2,
- tunnel_addr_incr
+ 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[u"DUT2"], n_tunnels, spd_id,
+ nodes["DUT2"],
+ n_tunnels,
+ spd_id,
priority=ObjIncrement(p_lo, 0),
- action=PolicyAction.PROTECT, inbound=True,
+ action=PolicyAction.PROTECT,
+ inbound=True,
sa_id=ObjIncrement(sa_id_1, 1),
- raddr_range=NetworkIncrement(ip_network(raddr_ip2))
+ raddr_range=NetworkIncrement(ip_network(raddr_ip2)),
)
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,
- tunnel_addr_incr
+ 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[u"DUT2"], n_tunnels, spd_id,
+ nodes["DUT2"],
+ n_tunnels,
+ spd_id,
priority=ObjIncrement(p_lo, 0),
- action=PolicyAction.PROTECT, inbound=False,
+ action=PolicyAction.PROTECT,
+ inbound=False,
sa_id=ObjIncrement(sa_id_2, 1),
- raddr_range=NetworkIncrement(ip_network(raddr_ip1))
+ raddr_range=NetworkIncrement(ip_network(raddr_ip1)),
)
@staticmethod
- def vpp_ipsec_show_all(node):
+ def vpp_ipsec_show_all(node: dict) -> None:
"""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 all")
+ PapiSocketExecutor.run_cli_cmd(node, "show ipsec all")
@staticmethod
- def show_ipsec_security_association(node):
+ def show_ipsec_security_association(node: dict) -> None:
"""Show IPSec security association.
:param node: DUT node.
:type node: dict
"""
- cmds = [
- u"ipsec_sa_v3_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"):
+ def vpp_ipsec_flow_enable_rss(
+ node: dict, proto: str, rss_type: str, function: str = "default"
+ ) -> int:
"""Ipsec flow enable rss action.
:param node: DUT node.
:param proto: The flow protocol.
- :param type: RSS type.
+ :param rss_type: RSS type.
:param function: RSS function.
:type node: dict
:type proto: str
- :type type: str
+ :type rss_type: str
:type function: str
:returns: flow_index.
+ :rtype: int
"""
# 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}"
+ cmd = (
+ f"test flow add src-ip any proto {proto} rss function"
+ f" {function} rss types {rss_type}"
+ )
stdout = PapiSocketExecutor.run_cli_cmd(node, cmd)
flow_index = stdout.split()[1]
@@ -2308,7 +2196,8 @@ class IPsecUtil:
@staticmethod
def vpp_create_ipsec_flows_on_dut(
- node, n_flows, rx_queues, spi_start, interface):
+ node: dict, n_flows: int, rx_queues: int, spi_start: int, interface: str
+ ) -> None:
"""Create mutiple ipsec flows and enable flows onto interface.
:param node: DUT node.
@@ -2322,13 +2211,12 @@ class IPsecUtil:
: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
-
+ 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)
+ node, "ESP", spi, "redirect-to-queue", value=rx_queue
+ )
FlowUtil.vpp_flow_enable(node, interface, flow_index)
diff --git a/resources/libraries/python/InterfaceUtil.py b/resources/libraries/python/InterfaceUtil.py
index 4a53f71a01..ff013307bc 100644
--- a/resources/libraries/python/InterfaceUtil.py
+++ b/resources/libraries/python/InterfaceUtil.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 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
@@ -295,6 +296,21 @@ class InterfaceUtil:
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.
@@ -332,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
@@ -346,18 +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:
- logger.debug(f"Setting MTU failed.\n{err}")
+ 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):
@@ -712,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:
@@ -882,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):
@@ -1056,7 +1066,7 @@ class InterfaceUtil:
:raises RuntimeError: if it is unable to create GTPU interface on the
node.
"""
- cmd = u"gtpu_add_del_tunnel"
+ cmd = u"gtpu_add_del_tunnel_v2"
args = dict(
is_add=True,
src_address=IPAddress.create_ip_address_object(
@@ -1067,8 +1077,10 @@ class InterfaceUtil:
),
mcast_sw_if_index=Constants.BITWISE_NON_ZERO,
encap_vrf_id=0,
- decap_next_index=2,
- teid=teid
+ 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']}"
@@ -1311,7 +1323,7 @@ class InterfaceUtil:
node, u"set logging class af_xdp level debug"
)
- cmd = u"af_xdp_create"
+ 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),
@@ -1363,7 +1375,7 @@ class InterfaceUtil:
node, u"set logging class rdma level debug"
)
- cmd = u"rdma_create_v3"
+ 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),
@@ -1376,6 +1388,8 @@ class InterfaceUtil:
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:
@@ -1840,7 +1854,7 @@ class InterfaceUtil:
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":
@@ -1869,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)
@@ -1971,7 +1993,7 @@ class InterfaceUtil:
thread_data = VPPUtil.vpp_show_threads(node)
worker_cnt = len(thread_data) - 1
if not worker_cnt:
- return None
+ return
worker_ids = list()
if workers:
for item in thread_data:
@@ -1995,7 +2017,7 @@ class InterfaceUtil:
@staticmethod
def vpp_round_robin_rx_placement_on_all_duts(
- nodes, prefix, workers=None):
+ nodes, prefix, use_dp_cores=False):
"""Set Round Robin interface RX placement on worker threads
on all DUTs.
@@ -2006,14 +2028,18 @@ class InterfaceUtil:
:param nodes: Topology nodes.
:param prefix: Interface name prefix.
- :param workers: Comma separated worker index numbers intended for
- dataplane work.
+ :param use_dp_cores: Limit to dataplane cores.
:type nodes: dict
:type prefix: str
- :type workers: str
+ :type use_dp_cores: bool
"""
- for node in nodes.values():
- if node[u"type"] == NodeType.DUT:
+ 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 12d0633abc..a881ec9f06 100644
--- a/resources/libraries/python/Iperf3.py
+++ b/resources/libraries/python/Iperf3.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -34,11 +34,9 @@ class Iperf3:
self._c_affinity = None
@staticmethod
- def get_iperf_type(node):
+ def get_iperf_type():
"""Log and return the installed traffic generator type.
- :param node: Node from topology file.
- :type node: dict
:returns: Traffic generator type string.
:rtype: str
"""
diff --git a/resources/libraries/python/L2Util.py b/resources/libraries/python/L2Util.py
index 0f00787bd4..92c93ed9dd 100644
--- a/resources/libraries/python/L2Util.py
+++ b/resources/libraries/python/L2Util.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:
@@ -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/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 6810122257..471bc87e80 100644
--- a/resources/libraries/python/LoadBalancerUtil.py
+++ b/resources/libraries/python/LoadBalancerUtil.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 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:
@@ -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:
diff --git a/resources/libraries/python/MLRsearch/AbstractMeasurer.py b/resources/libraries/python/MLRsearch/AbstractMeasurer.py
deleted file mode 100644
index da66b4e174..0000000000
--- a/resources/libraries/python/MLRsearch/AbstractMeasurer.py
+++ /dev/null
@@ -1,32 +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.
-
-"""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 cca48ef798..0000000000
--- a/resources/libraries/python/MLRsearch/AbstractSearchAlgorithm.py
+++ /dev/null
@@ -1,48 +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.
-
-"""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
- """
- self.measurer = measurer
-
- @abstractmethod
- def narrow_down_intervals(
- self, min_rate, max_rate, packet_loss_ratios):
- """Perform measurements to narrow down intervals, return them.
-
- :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_ratios: Ratios of packet loss to search for,
- e.g. [0.0, 0.005] for NDR and PDR.
- :type min_rate: float
- :type max_rate: float
- :type packet_loss_ratios: Iterable[float]
- :returns: Structure containing narrowed down intervals
- and their measurements.
- :rtype: List[ReceiveRateInterval.ReceiveRateInterval]
- """
diff --git a/resources/libraries/python/MLRsearch/MeasurementDatabase.py b/resources/libraries/python/MLRsearch/MeasurementDatabase.py
deleted file mode 100644
index 2f601d6260..0000000000
--- a/resources/libraries/python/MLRsearch/MeasurementDatabase.py
+++ /dev/null
@@ -1,157 +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.
-
-"""Module defining MeasurementDatabase class."""
-
-from .ReceiveRateInterval import ReceiveRateInterval
-from .PerDurationDatabase import PerDurationDatabase
-
-
-class MeasurementDatabase:
- """A structure holding measurement results.
-
- The implementation uses a dict from duration values
- to PerDurationDatabase instances.
-
- Several utility methods are added, accomplishing tasks useful for MLRsearch.
-
- This class contains the "find tightest bounds" parts of logic required
- by MLRsearch. One exception is lack of any special handling for maximal
- or minimal rates.
- """
-
- def __init__(self, measurements):
- """Store measurement results in per-duration databases.
-
- TODO: Move processing to a factory method,
- keep constructor only to store (presumably valid) values.
-
- If the measurements argument contains is a dict,
- the constructor assumes it contains the processed databases.
-
- :param measurements: The measurement results to store.
- :type measurements: Iterable[ReceiveRateMeasurement]
- """
- if isinstance(measurements, dict):
- self.data_for_duration = measurements
- else:
- self.data_for_duration = dict()
- # TODO: There is overlap with add() code. Worth extracting?
- for measurement in measurements:
- duration = measurement.duration
- if duration in self.data_for_duration:
- self.data_for_duration[duration].add(measurement)
- else:
- self.data_for_duration[duration] = PerDurationDatabase(
- duration, [measurement]
- )
- durations = sorted(self.data_for_duration.keys())
- self.current_duration = durations[-1] if duration else None
- self.previous_duration = durations[-2] if len(durations) > 1 else None
-
- def __repr__(self):
- """Return string executable to get equivalent instance.
-
- :returns: Code to construct equivalent instance.
- :rtype: str
- """
- return f"MeasurementDatabase(measurements={self.data_for_duration!r})"
-
- def set_current_duration(self, duration):
- """Remember what MLRsearch considers the current duration.
-
- Setting the same duration is allowed, setting smaller is not allowed.
-
- :param duration: Target trial duration of current phase, in seconds.
- :type duration: float
- :raises ValueError: If the duration is smaller than previous.
- """
- if duration < self.current_duration:
- raise ValueError(
- f"Duration {duration} shorter than current duration"
- f" {self.current_duration}"
- )
- if duration > self.current_duration:
- self.previous_duration = self.current_duration
- self.current_duration = duration
- self.data_for_duration[duration] = PerDurationDatabase(
- duration, list()
- )
- # Else no-op.
-
- def add(self, measurement):
- """Add a measurement. Duration has to match the set one.
-
- :param measurement: Measurement result to add to the database.
- :type measurement: ReceiveRateMeasurement
- """
- duration = measurement.duration
- if duration != self.current_duration:
- raise ValueError(
- f"{measurement!r} duration different than"
- f" {self.current_duration}"
- )
- self.data_for_duration[duration].add(measurement)
-
- def get_bounds(self, ratio):
- """Return 6 bounds: lower/upper, current/previous, tightest/second.
-
- Second tightest bounds are only returned for current duration.
- None instead of a measurement if there is no measurement of that type.
-
- The result cotains bounds in this order:
- 1. Tightest lower bound for current duration.
- 2. Tightest upper bound for current duration.
- 3. Tightest lower bound for previous duration.
- 4. Tightest upper bound for previous duration.
- 5. Second tightest lower bound for current duration.
- 6. Second tightest upper bound for current duration.
-
- :param ratio: Target ratio, valid has to be lower or equal.
- :type ratio: float
- :returns: Measurements acting as various bounds.
- :rtype: 6-tuple of Optional[PerDurationDatabase]
- """
- cur_lo1, cur_hi1, pre_lo, pre_hi, cur_lo2, cur_hi2 = [None] * 6
- duration = self.current_duration
- if duration is not None:
- data = self.data_for_duration[duration]
- cur_lo1, cur_hi1, cur_lo2, cur_hi2 = data.get_valid_bounds(ratio)
- duration = self.previous_duration
- if duration is not None:
- data = self.data_for_duration[duration]
- pre_lo, pre_hi, _, _ = data.get_valid_bounds(ratio)
- return cur_lo1, cur_hi1, pre_lo, pre_hi, cur_lo2, cur_hi2
-
- def get_results(self, ratio_list):
- """Return list of intervals for given ratios, from current duration.
-
- Attempt to construct valid intervals. If a valid bound is missing,
- use smallest/biggest target_tr for lower/upper bound.
- This can result in degenerate intervals.
-
- :param ratio_list: Ratios to create intervals for.
- :type ratio_list: Iterable[float]
- :returns: List of intervals.
- :rtype: List[ReceiveRateInterval]
- """
- ret_list = list()
- current_data = self.data_for_duration[self.current_duration]
- for ratio in ratio_list:
- lower_bound, upper_bound, _, _, _, _ = self.get_bounds(ratio)
- if lower_bound is None:
- lower_bound = current_data.measurements[0]
- if upper_bound is None:
- upper_bound = current_data.measurements[-1]
- ret_list.append(ReceiveRateInterval(lower_bound, upper_bound))
- return ret_list
diff --git a/resources/libraries/python/MLRsearch/MultipleLossRatioSearch.py b/resources/libraries/python/MLRsearch/MultipleLossRatioSearch.py
deleted file mode 100644
index 0e6c8cfa58..0000000000
--- a/resources/libraries/python/MLRsearch/MultipleLossRatioSearch.py
+++ /dev/null
@@ -1,485 +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.
-
-"""Module defining MultipleLossRatioSearch class."""
-
-import logging
-import math
-import time
-
-from .MeasurementDatabase import MeasurementDatabase
-from .ProgressState import ProgressState
-from .ReceiveRateInterval import ReceiveRateInterval
-from .WidthArithmetics import (
- multiply_relative_width,
- step_down,
- step_up,
- multiple_step_down,
- multiple_step_up,
- half_step_up,
-)
-
-
-class MultipleLossRatioSearch:
- """Optimized binary search algorithm for finding bounds for multiple ratios.
-
- This is unofficially a subclass of AbstractSearchAlgorithm,
- but constructor signature is different.
-
- 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 multiple intervals at once.
- The intervals differ by the target loss ratio. Lower bound
- has to have equal or smaller loss ratio, upper bound has to have larger.
-
- Next improvement is that the initial interval does not need to be valid.
- Imagine initial interval (10, 11) where loss at 11 is smaller
- than the searched ratio.
- 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 intervals of final phase is the result of the whole algorithm.
-
- Each non-initial phase uses its own trial duration.
- Any non-initial phase stops searching (for all ratios independently)
- when minimum is not a valid lower bound (at current duration),
- or all of the following is true:
- Both bounds are valid, 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.
- """
-
- 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, debug=None,
- expansion_coefficient=2.0):
- """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 debug: Callable to use instead of logging.debug().
- :param expansion_coefficient: External search multiplies width by this.
- :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 debug: Optional[Callable[[str], None]]
- :type expansion_coefficient: float
- """
- self.measurer = 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.state = None
- self.debug = logging.debug if debug is None else debug
- self.expansion_coefficient = float(expansion_coefficient)
-
- def narrow_down_intervals(self, min_rate, max_rate, packet_loss_ratios):
- """Perform initial phase, create state object, proceed with next phases.
-
- The current implementation requires the ratios so be unique and sorted.
- Also non-empty.
-
- :param min_rate: Minimal target transmit rate [tps].
- :param max_rate: Maximal target transmit rate [tps].
- :param packet_loss_ratios: Target ratios of packets loss to locate.
- :type min_rate: float
- :type max_rate: float
- :type packet_loss_ratios: Iterable[float]
- :returns: Structure containing narrowed down intervals
- and their measurements.
- :rtype: List[ReceiveRateInterval]
- :raises RuntimeError: If total duration is larger than timeout.
- Or if ratios list is (empty or) not sorted or unique.
- """
- min_rate = float(min_rate)
- max_rate = float(max_rate)
- packet_loss_ratios = [float(ratio) for ratio in packet_loss_ratios]
- if len(packet_loss_ratios) < 1:
- raise RuntimeError(u"At least one ratio is required!")
- if packet_loss_ratios != sorted(set(packet_loss_ratios)):
- raise RuntimeError(u"Input ratios have to be sorted and unique!")
- measurements = list()
- self.debug(f"First measurement at max rate: {max_rate}")
- measured = self.measurer.measure(
- duration=self.initial_trial_duration,
- transmit_rate=max_rate,
- )
- measurements.append(measured)
- initial_width_goal = self.final_relative_width
- for _ in range(self.number_of_intermediate_phases):
- initial_width_goal = multiply_relative_width(
- initial_width_goal, 2.0
- )
- max_lo = step_down(max_rate, initial_width_goal)
- mrr = max(min_rate, min(max_lo, measured.relative_receive_rate))
- self.debug(f"Second measurement at mrr: {mrr}")
- measured = self.measurer.measure(
- duration=self.initial_trial_duration,
- transmit_rate=mrr,
- )
- measurements.append(measured)
- # Attempt to get narrower width.
- if measured.loss_ratio > packet_loss_ratios[0]:
- max_lo = step_down(mrr, initial_width_goal)
- mrr2 = min(max_lo, measured.relative_receive_rate)
- else:
- mrr2 = step_up(mrr, initial_width_goal)
- if min_rate < mrr2 < max_rate:
- self.debug(f"Third measurement at mrr2: {mrr2}")
- measured = self.measurer.measure(
- duration=self.initial_trial_duration,
- transmit_rate=mrr2,
- )
- measurements.append(measured)
- # If mrr2 > mrr and mrr2 got zero loss,
- # it is better to do external search from mrr2 up.
- # To prevent bisection between mrr2 and max_rate,
- # we simply remove the max_rate measurement.
- # Similar logic applies to higher loss ratio goals.
- # Overall, with mrr2 measurement done, we never need
- # the first measurement done at max rate.
- measurements = measurements[1:]
- database = MeasurementDatabase(measurements)
- stop_time = time.monotonic() + self.timeout
- self.state = ProgressState(
- database, self.number_of_intermediate_phases,
- self.final_trial_duration, self.final_relative_width,
- packet_loss_ratios, min_rate, max_rate, stop_time
- )
- self.ndrpdr()
- return self.state.database.get_results(ratio_list=packet_loss_ratios)
-
- def ndrpdr(self):
- """Perform trials for this phase. State is updated in-place.
-
- Recursion to smaller durations is performed (if not performed yet).
-
- :raises RuntimeError: If total duration is larger than timeout.
- """
- state = self.state
- 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 = multiply_relative_width(saved_width, 2.0)
- # Recurse.
- self.ndrpdr()
- # Restore the state for current phase.
- state.width_goal = saved_width
- state.duration = saved_duration
- state.phases = saved_phases # Not needed, but just in case.
- self.debug(
- f"Starting phase with {state.duration} duration"
- f" and {state.width_goal} relative width goal."
- )
- failing_fast = False
- database = state.database
- database.set_current_duration(state.duration)
- while time.monotonic() < state.stop_time:
- for index, ratio in enumerate(state.packet_loss_ratios):
- new_tr = self._select_for_ratio(ratio)
- if new_tr is None:
- # Either this ratio is fine, or min rate got invalid result.
- # If fine, we will continue to handle next ratio.
- if index > 0:
- # First ratio passed, all next have a valid lower bound.
- continue
- lower_bound, _, _, _, _, _ = database.get_bounds(ratio)
- if lower_bound is None:
- failing_fast = True
- self.debug(u"No valid lower bound for this iteration.")
- break
- # First ratio is fine.
- continue
- # We have transmit rate to measure at.
- # We do not check duration versus stop_time here,
- # as some measurers can be unpredictably faster
- # than what duration suggests.
- measurement = self.measurer.measure(
- duration=state.duration,
- transmit_rate=new_tr,
- )
- database.add(measurement)
- # Restart ratio handling on updated database.
- break
- else:
- # No ratio needs measuring, we are done with this phase.
- self.debug(u"Phase done.")
- break
- # We have broken out of the for loop.
- if failing_fast:
- # Abort the while loop early.
- break
- # Not failing fast but database got updated, restart the while loop.
- else:
- # Time is up.
- raise RuntimeError(u"Optimized search takes too long.")
- # Min rate is not valid, but returning what we have
- # so next duration can recover.
-
- @staticmethod
- def improves(new_bound, lower_bound, upper_bound):
- """Return whether new bound improves upon old bounds.
-
- To improve, new_bound has to be not None,
- and between the old bounds (where the bound is not None).
-
- This piece of logic is commonly used, when we know old bounds
- from a primary source (e.g. current duration database)
- and new bound from a secondary source (e.g. previous duration database).
- Having a function allows "if improves(..):" construction to save space.
-
- :param new_bound: The bound we consider applying.
- :param lower_bound: Known bound, new_bound has to be higher to apply.
- :param upper_bound: Known bound, new_bound has to be lower to apply.
- :type new_bound: Optional[ReceiveRateMeasurement]
- :type lower_bound: Optional[ReceiveRateMeasurement]
- :type upper_bound: Optional[ReceiveRateMeasurement]
- :returns: Whether we can apply the new bound.
- :rtype: bool
- """
- if new_bound is None:
- return False
- if lower_bound is not None:
- if new_bound.target_tr <= lower_bound.target_tr:
- return False
- if upper_bound is not None:
- if new_bound.target_tr >= upper_bound.target_tr:
- return False
- return True
-
- def _select_for_ratio(self, ratio):
- """Return None or new target_tr to measure at.
-
- Returning None means either we have narrow enough valid interval
- for this ratio, or we are hitting min rate and should fail early.
-
- :param ratio: Loss ratio to ensure narrow valid bounds for.
- :type ratio: float
- :returns: The next target transmit rate to measure at.
- :rtype: Optional[float]
- :raises RuntimeError: If database inconsistency is detected.
- """
- state = self.state
- data = state.database
- bounds = data.get_bounds(ratio)
- cur_lo1, cur_hi1, pre_lo, pre_hi, cur_lo2, cur_hi2 = bounds
- pre_lo_improves = self.improves(pre_lo, cur_lo1, cur_hi1)
- pre_hi_improves = self.improves(pre_hi, cur_lo1, cur_hi1)
- # TODO: Detect also the other case for initial bisect, see below.
- if pre_lo_improves and pre_hi_improves:
- # We allowed larger width for previous phase
- # as single bisect here guarantees only one re-measurement.
- new_tr = self._bisect(pre_lo, pre_hi)
- if new_tr is not None:
- self.debug(f"Initial bisect for {ratio}, tr: {new_tr}")
- return new_tr
- if pre_lo_improves:
- new_tr = pre_lo.target_tr
- self.debug(f"Re-measuring lower bound for {ratio}, tr: {new_tr}")
- return new_tr
- if pre_hi_improves:
- # This can also happen when we did not do initial bisect
- # for this ratio yet, but the previous duration lower bound
- # for this ratio got already re-measured as previous duration
- # upper bound for previous ratio.
- new_tr = pre_hi.target_tr
- self.debug(f"Re-measuring upper bound for {ratio}, tr: {new_tr}")
- return new_tr
- if cur_lo1 is None and cur_hi1 is None:
- raise RuntimeError(u"No results found in databases!")
- if cur_lo1 is None:
- # Upper bound exists (cur_hi1).
- # We already tried previous lower bound.
- # So, we want to extend down.
- new_tr = self._extend_down(
- cur_hi1, cur_hi2, pre_hi, second_needed=False
- )
- self.debug(
- f"Extending down for {ratio}:"
- f" old {cur_hi1.target_tr} new {new_tr}"
- )
- return new_tr
- if cur_hi1 is None:
- # Lower bound exists (cur_lo1).
- # We already tried previous upper bound.
- # So, we want to extend up.
- new_tr = self._extend_up(cur_lo1, cur_lo2, pre_lo)
- self.debug(
- f"Extending up for {ratio}:"
- f" old {cur_lo1.target_tr} new {new_tr}"
- )
- return new_tr
- # Both bounds exist (cur_lo1 and cur_hi1).
- # cur_lo1 might have been selected for this ratio (we are bisecting)
- # or for previous ratio (we are extending down for this ratio).
- # Compute both estimates and choose the higher value.
- bisected_tr = self._bisect(cur_lo1, cur_hi1)
- extended_tr = self._extend_down(
- cur_hi1, cur_hi2, pre_hi, second_needed=True
- )
- # Only if both are not None we need to decide.
- if bisected_tr and extended_tr and extended_tr > bisected_tr:
- self.debug(
- f"Extending down for {ratio}:"
- f" old {cur_hi1.target_tr} new {extended_tr}"
- )
- new_tr = extended_tr
- else:
- self.debug(
- f"Bisecting for {ratio}: lower {cur_lo1.target_tr},"
- f" upper {cur_hi1.target_tr}, new {bisected_tr}"
- )
- new_tr = bisected_tr
- return new_tr
-
- def _extend_down(self, cur_hi1, cur_hi2, pre_hi, second_needed=False):
- """Return extended width below, or None if hitting min rate.
-
- If no second tightest (nor previous) upper bound is available,
- the behavior is governed by second_needed argument.
- If true, return None. If false, start from width goal.
- This is useful, as if a bisect is possible,
- we want to give it a chance.
-
- :param cur_hi1: Tightest upper bound for current duration. Has to exist.
- :param cur_hi2: Second tightest current upper bound, may not exist.
- :param pre_hi: Tightest upper bound, previous duration, may not exist.
- :param second_needed: Whether second tightest bound is required.
- :type cur_hi1: ReceiveRateMeasurement
- :type cur_hi2: Optional[ReceiveRateMeasurement]
- :type pre_hi: Optional[ReceiveRateMeasurement]
- :type second_needed: bool
- :returns: The next target transmit rate to measure at.
- :rtype: Optional[float]
- """
- state = self.state
- old_tr = cur_hi1.target_tr
- if state.min_rate >= old_tr:
- self.debug(u"Extend down hits min rate.")
- return None
- next_bound = cur_hi2
- if self.improves(pre_hi, cur_hi1, cur_hi2):
- next_bound = pre_hi
- if next_bound is None and second_needed:
- return None
- old_width = state.width_goal
- if next_bound is not None:
- old_width = ReceiveRateInterval(cur_hi1, next_bound).rel_tr_width
- old_width = max(old_width, state.width_goal)
- new_tr = multiple_step_down(
- old_tr, old_width, self.expansion_coefficient
- )
- new_tr = max(new_tr, state.min_rate)
- return new_tr
-
- def _extend_up(self, cur_lo1, cur_lo2, pre_lo):
- """Return extended width above, or None if hitting max rate.
-
- :param cur_lo1: Tightest lower bound for current duration. Has to exist.
- :param cur_lo2: Second tightest current lower bound, may not exist.
- :param pre_lo: Tightest lower bound, previous duration, may not exist.
- :type cur_lo1: ReceiveRateMeasurement
- :type cur_lo2: Optional[ReceiveRateMeasurement]
- :type pre_lo: Optional[ReceiveRateMeasurement]
- :returns: The next target transmit rate to measure at.
- :rtype: Optional[float]
- """
- state = self.state
- old_tr = cur_lo1.target_tr
- if state.max_rate <= old_tr:
- self.debug(u"Extend up hits max rate.")
- return None
- next_bound = cur_lo2
- if self.improves(pre_lo, cur_lo2, cur_lo1):
- next_bound = pre_lo
- old_width = state.width_goal
- if next_bound is not None:
- old_width = ReceiveRateInterval(cur_lo1, next_bound).rel_tr_width
- old_width = max(old_width, state.width_goal)
- new_tr = multiple_step_up(old_tr, old_width, self.expansion_coefficient)
- new_tr = min(new_tr, state.max_rate)
- return new_tr
-
- def _bisect(self, lower_bound, upper_bound):
- """Return middle rate or None if width is narrow enough.
-
- :param lower_bound: Measurement to use as a lower bound. Has to exist.
- :param upper_bound: Measurement to use as an upper bound. Has to exist.
- :type lower_bound: ReceiveRateMeasurement
- :type upper_bound: ReceiveRateMeasurement
- :returns: The next target transmit rate to measure at.
- :rtype: Optional[float]
- :raises RuntimeError: If database inconsistency is detected.
- """
- state = self.state
- width = ReceiveRateInterval(lower_bound, upper_bound).rel_tr_width
- if width <= state.width_goal:
- self.debug(u"No more bisects needed.")
- return None
- new_tr = half_step_up(lower_bound.target_tr, width, state.width_goal)
- return new_tr
diff --git a/resources/libraries/python/MLRsearch/PerDurationDatabase.py b/resources/libraries/python/MLRsearch/PerDurationDatabase.py
deleted file mode 100644
index afdf48614b..0000000000
--- a/resources/libraries/python/MLRsearch/PerDurationDatabase.py
+++ /dev/null
@@ -1,123 +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.
-
-"""Module defining PerDurationDatabase class."""
-
-import copy
-
-
-class PerDurationDatabase:
- """List-like structure holding measurement results for one duration.
-
- This is a building block for MeasurementDatabase.
-
- This class hold measurements for single target duration value only,
- so the logic is quite simple.
-
- Several utility methods are added, accomplishing tasks useful for MLRsearch
- (to be called by MeasurementDatabase).
- """
-
- def __init__(self, duration, measurements):
- """Store (deep copy of) measurement results and normalize them.
-
- The results have to have the corresponding target duration,
- and there should be no duplicate target_tr values.
- Empty iterable (zero measurements) is an acceptable input.
-
- :param duration: All measurements have to have this target duration [s].
- :param measurements: The measurement results to store.
- :type duration: float
- :type measurements: Iterable[ReceiveRateMeasurement]
- :raises ValueError: If duration does not match or if TR duplicity.
- """
- self.duration = duration
- self.measurements = [copy.deepcopy(meas) for meas in measurements]
- self._normalize()
-
- def __repr__(self):
- """Return string executable to get equivalent instance.
-
- :returns: Code to construct equivalent instance.
- :rtype: str
- """
- return (
- u"PerDurationDatabase("
- f"duration={self.duration!r},"
- f"measurements={self.measurements!r})"
- )
-
- def _normalize(self):
- """Sort by target_tr, fail on detecting duplicate target_tr.
-
- Also set effective loss ratios.
-
- :raises ValueError: If duration does not match or if TR duplicity.
- """
- measurements = self.measurements
- measurements.sort(key=lambda measurement: measurement.target_tr)
- # Detect duplicated TRs.
- previous_tr = None
- for measurement in measurements:
- current_tr = measurement.target_tr
- if current_tr == previous_tr:
- raise ValueError(
- u"Transmit rate conflict:"
- f" {measurement!r} {previous_tr!r}"
- )
- previous_tr = current_tr
- # Update effective ratios.
- ratio_previous = None
- for measurement in measurements:
- if ratio_previous is None:
- ratio_previous = measurement.loss_ratio
- measurement.effective_loss_ratio = ratio_previous
- continue
- ratio_previous = max(ratio_previous, measurement.loss_ratio)
- measurement.effective_loss_ratio = ratio_previous
-
- def add(self, measurement):
- """Add measurement and normalize.
-
- :param measurement: Measurement result to add to the database.
- :type measurement: ReceiveRateMeasurement
- """
- # TODO: We should deepcopy either everywhere or nowhere.
- self.measurements.append(measurement)
- self._normalize()
-
- def get_valid_bounds(self, ratio):
- """Return None or a valid measurement for two tightest bounds.
-
- The validity of a measurement to act as a bound is determined
- by comparing the argument ratio with measurement's effective loss ratio.
-
- Both lower and upper bounds are returned, both tightest and second
- tightest. If some value is not available, None is returned instead.
-
- :param ratio: Target ratio, valid has to be lower or equal.
- :type ratio: float
- :returns: Tightest lower bound, tightest upper bound,
- second tightest lower bound, second tightest upper bound.
- :rtype: 4-tuple of Optional[ReceiveRateMeasurement]
- """
- lower_1, upper_1, lower_2, upper_2 = None, None, None, None
- for measurement in self.measurements:
- if measurement.effective_loss_ratio > ratio:
- if upper_1 is None:
- upper_1 = measurement
- continue
- upper_2 = measurement
- break
- lower_1, lower_2 = measurement, lower_1
- return lower_1, upper_1, lower_2, upper_2
diff --git a/resources/libraries/python/MLRsearch/ProgressState.py b/resources/libraries/python/MLRsearch/ProgressState.py
deleted file mode 100644
index 3610638990..0000000000
--- a/resources/libraries/python/MLRsearch/ProgressState.py
+++ /dev/null
@@ -1,60 +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.
-
-"""Module defining ProgressState class."""
-
-
-class ProgressState:
- """Structure containing data to be passed around in recursion.
-
- This is basically a private class of MultipleRatioSearch,
- but keeping it in a separate file makes things more readable.
- """
-
- def __init__(
- self, database, phases, duration, width_goal, packet_loss_ratios,
- min_rate, max_rate, stop_time):
- """Convert and store the argument values.
-
- Also initializa the stored width for external search.
-
- :param result: Structure containing measured results.
- :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_ratios: List of ratios for the current search.
- :param min_rate: Minimal target transmit rate available
- for the current search [tps].
- :param max_rate: Maximal target transmit rate available
- for the current search [tps].
- :param stop_time: Monotonic time [s] when we should fail on timeout.
- :type result: MeasurementDatabase
- :type phases: int
- :type duration: float
- :type width_goal: float
- :type packet_loss_ratios: Iterable[float]
- :type min_rate: float
- :type max_rate: float
- :type stop_time: float
- """
- self.database = database
- self.phases = int(phases)
- self.duration = float(duration)
- self.width_goal = float(width_goal)
- self.packet_loss_ratios = [
- float(ratio) for ratio in packet_loss_ratios
- ]
- self.min_rate = float(min_rate)
- self.max_rate = float(max_rate)
- self.stop_time = float(stop_time)
diff --git a/resources/libraries/python/MLRsearch/ReceiveRateInterval.py b/resources/libraries/python/MLRsearch/ReceiveRateInterval.py
deleted file mode 100644
index 993561e396..0000000000
--- a/resources/libraries/python/MLRsearch/ReceiveRateInterval.py
+++ /dev/null
@@ -1,74 +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.
-
-"""Module defining ReceiveRateInterval class."""
-
-import math
-
-
-class ReceiveRateInterval:
- """Structure defining two Rr measurements, and their relation."""
-
- def __init__(self, measured_low, measured_high):
- """Store the bound measurements and call sort.
-
- :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
- """
- 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 __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})"
-
- 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)
diff --git a/resources/libraries/python/MLRsearch/ReceiveRateMeasurement.py b/resources/libraries/python/MLRsearch/ReceiveRateMeasurement.py
deleted file mode 100644
index c52934530e..0000000000
--- a/resources/libraries/python/MLRsearch/ReceiveRateMeasurement.py
+++ /dev/null
@@ -1,125 +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.
-
-"""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,
- effective_loss_ratio=None):
- """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, ratios 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?
-
- Field effective_loss_ratio is specific for use in MLRsearch,
- where measurements with lower loss ratio at higher target_tr
- cannot be relied upon if there is a measurement with higher loss ratio
- at lower target_tr. In this case, the higher loss ratio from
- other measurement is stored as effective loss ratio in this measurement.
- If None, the computed loss ratio of this measurement is used.
- If not None, the computed ratio can still be apllied if it is larger.
-
- :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.
- :param effective_loss_ratio: None or highest loss ratio so far.
- :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_ratio = (
- float(self.loss_count) / self.transmit_count
- if self.transmit_count > 0 else 1.0
- )
- self.effective_loss_ratio = self.loss_ratio
- if effective_loss_ratio is not None:
- if effective_loss_ratio > self.loss_ratio:
- self.effective_loss_ratio = float(effective_loss_ratio)
- self.receive_ratio = (
- 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_ratio = (
- 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_ratio
- )
- # 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 ratio."""
- return f"d={self.duration!s},Tr={self.target_tr!s}," \
- f"Df={self.loss_ratio!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}," \
- f"effective_loss_ratio={self.effective_loss_ratio!r})"
diff --git a/resources/libraries/python/MLRsearch/WidthArithmetics.py b/resources/libraries/python/MLRsearch/WidthArithmetics.py
deleted file mode 100644
index 21316c5441..0000000000
--- a/resources/libraries/python/MLRsearch/WidthArithmetics.py
+++ /dev/null
@@ -1,137 +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.
-
-"""Module defining utility functions for manipulating intervals."""
-
-import math
-
-
-ROUNDING_CONSTANT = 0.999999
-
-def multiply_relative_width(relative_width, coefficient):
- """Return relative width corresponding to multiplied logarithmic width.
-
- The multiplication happens in logarithmic space,
- so the resulting relative width is always less than 1.
-
- :param relative_width: The base relative width to multiply.
- :param coefficient: Multiply by this in logarithmic space.
- :type relative_width: float
- :type coefficient: float
- :returns: The relative width of multiplied logarithmic size.
- :rtype: float
- """
- old_log_width = math.log(1.0 - relative_width)
- # Slight decrease to prevent rounding errors from prolonging the search.
- # TODO: Make the nines configurable.
- new_log_width = old_log_width * coefficient * ROUNDING_CONSTANT
- return 1.0 - math.exp(new_log_width)
-
-def halve_relative_width(relative_width, goal_width):
- """Return relative width corresponding to half logarithmic width.
-
- The logic attempts to save some halvings in future by performing
- uneven split. If rounding error risk is detected,
- even split is used.
-
- :param relative_width: The base relative width to halve.
- :param goal_width: Width goal for final phase.
- :type relative_width: float
- :type goal_width: float
- :returns: The relative width of half logarithmic size.
- :rtype: float
- """
- fallback_width = 1.0 - math.sqrt(1.0 - relative_width)
- # Wig means Width In Goals.
- wig = math.log(1.0 - relative_width) / math.log(1.0 - goal_width)
- cwig = 2.0 * math.ceil(wig / 2.0)
- fwig = 2.0 * math.ceil(wig * ROUNDING_CONSTANT / 2.0)
- if wig <= 2.0 or cwig != fwig:
- # Avoid too uneven splits.
- return fallback_width
- coefficient = cwig / 2
- new_width = multiply_relative_width(goal_width, coefficient)
- return new_width
-
-def step_down(current_bound, relative_width):
- """Return rate of logarithmic width below.
-
- :param current_bound: The current target transmit rate to move [pps].
- :param relative_width: The base relative width to use.
- :type current_bound: float
- :type relative_width: float
- :returns: Transmit rate smaller by relative width [pps].
- :rtype: float
- """
- return current_bound * (1.0 - relative_width)
-
-def step_up(current_bound, relative_width):
- """Return rate of logarithmic width above.
-
- :param current_bound: The current target transmit rate to move [pps].
- :param relative_width: The base relative width to use.
- :type current_bound: float
- :type relative_width: float
- :returns: Transmit rate larger by logarithmically double width [pps].
- :rtype: float
- """
- return current_bound / (1.0 - relative_width)
-
-def multiple_step_down(current_bound, relative_width, coefficient):
- """Return rate of multiplied logarithmic width below.
-
- The multiplication happens in logarithmic space,
- so the resulting applied relative width is always less than 1.
-
- :param relative_width: The base relative width to double.
- :param current_bound: The current target transmit rate to move [pps].
- :param coefficient: Multiply by this in logarithmic space.
- :type relative_width: float
- :type current_bound: float
- :type coefficient: float
- :returns: Transmit rate smaller by logarithmically multiplied width [pps].
- :rtype: float
- """
- new_width = multiply_relative_width(relative_width, coefficient)
- return step_down(current_bound, new_width)
-
-def multiple_step_up(current_bound, relative_width, coefficient):
- """Return rate of double logarithmic width above.
-
- The multiplication happens in logarithmic space,
- so the resulting applied relative width is always less than 1.
-
- :param current_bound: The current target transmit rate to move [pps].
- :param relative_width: The base relative width to double.
- :param coefficient: Multiply by this in logarithmic space.
- :type current_bound: float
- :type relative_width: float
- :type coefficient: float
- :returns: Transmit rate larger by logarithmically multiplied width [pps].
- :rtype: float
- """
- new_width = multiply_relative_width(relative_width, coefficient)
- return step_up(current_bound, new_width)
-
-def half_step_up(current_bound, relative_width, goal_width):
- """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
- """
- new_width = halve_relative_width(relative_width, goal_width)
- return step_up(current_bound, new_width)
diff --git a/resources/libraries/python/MLRsearch/__init__.py b/resources/libraries/python/MLRsearch/__init__.py
index 35ef812179..09ce7e6719 100644
--- a/resources/libraries/python/MLRsearch/__init__.py
+++ b/resources/libraries/python/MLRsearch/__init__.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:
@@ -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 d38f5000a7..32096d0ca5 100644
--- a/resources/libraries/python/Memif.py
+++ b/resources/libraries/python/Memif.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:
@@ -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 5d3d131c80..e5f530ab46 100644
--- a/resources/libraries/python/NATUtil.py
+++ b/resources/libraries/python/NATUtil.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -182,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
@@ -427,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
index 9418484f15..941fe733e7 100644
--- a/resources/libraries/python/NGINX/NGINXTools.py
+++ b/resources/libraries/python/NGINX/NGINXTools.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
+# 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:
@@ -74,21 +74,15 @@ class NGINXTools:
:type nginx_version: str
:raises RuntimeError: If command returns nonzero return code.
"""
- nginx_path = f"{pkg_dir}/nginx-{nginx_version}/sbin/nginx"
- cmd_options = NginxUtil.get_cmd_options(path=nginx_path)
- ret_code, _, stderr = exec_cmd(node, cmd_options, sudo=True)
- if nginx_version in stderr and ret_code == 0:
- logger.info(f"NGINX Version: {stderr}")
+ 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)
- _, stderr = exec_cmd_no_error(node, cmd_options, sudo=True,
- message=message)
-
- logger.info(f"NGINX Version: {stderr}")
@staticmethod
def install_vsap_nginx_on_dut(node, pkg_dir):
diff --git a/resources/libraries/python/NodePath.py b/resources/libraries/python/NodePath.py
index dd68506914..5b445bc593 100644
--- a/resources/libraries/python/NodePath.py
+++ b/resources/libraries/python/NodePath.py
@@ -243,8 +243,11 @@ class NodePath:
:raises RuntimeError: If unsupported combination of parameters.
"""
t_dict = dict()
+ 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"
@@ -259,6 +262,7 @@ class NodePath:
for dut in duts:
self.append_node(nodes[dut], filter_list=filter_list)
if topo_has_tg:
+ t_dict[u"hosts"].add(nodes[u"TG"][u"host"])
if topo_has_dut:
self.append_node(nodes[u"TG"])
else:
diff --git a/resources/libraries/python/PLRsearch/Integrator.py b/resources/libraries/python/PLRsearch/Integrator.py
index a7a59391ed..cc8f838fe6 100644
--- a/resources/libraries/python/PLRsearch/Integrator.py
+++ b/resources/libraries/python/PLRsearch/Integrator.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:
@@ -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 0e78cc936d..326aa2e2d2 100644
--- a/resources/libraries/python/PLRsearch/PLRsearch.py
+++ b/resources/libraries/python/PLRsearch/PLRsearch.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 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_ratio >= 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
@@ -441,7 +467,7 @@ class PLRsearch:
Instead, the expected average loss is scaled according to the number
of packets actually sent.
- TODO: Copy ReceiveRateMeasurement from MLRsearch.
+ TODO: Copy MeasurementResult from MLRsearch.
:param trace: A multiprocessing-friendly logging function (closure).
:param lfit_func: Fitting function, typically lfit_spread or lfit_erf.
@@ -450,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,
@@ -524,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
@@ -572,7 +605,7 @@ class PLRsearch:
# 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, 10.0, self.trace_enabled)
+ args=(worker_pipe_end, 5.0, self.trace_enabled),
)
worker.daemon = True
worker.start()
@@ -616,8 +649,13 @@ 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
@@ -664,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)
@@ -682,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 "
@@ -705,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.
@@ -730,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.
@@ -743,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.
@@ -754,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/log_plus.py b/resources/libraries/python/PLRsearch/log_plus.py
index 8ede2909c6..aabefdb5be 100644
--- a/resources/libraries/python/PLRsearch/log_plus.py
+++ b/resources/libraries/python/PLRsearch/log_plus.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:
@@ -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 e0b21dc3a9..e598fd840e 100644
--- a/resources/libraries/python/PLRsearch/stat_trackers.py
+++ b/resources/libraries/python/PLRsearch/stat_trackers.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:
@@ -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 ecee70c9c5..a55638ab7c 100644
--- a/resources/libraries/python/PapiExecutor.py
+++ b/resources/libraries/python/PapiExecutor.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:
@@ -12,19 +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 UserDict
-
+from collections import deque, UserDict
from pprint import pformat
from robot.api import logger
@@ -34,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",
]
@@ -65,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
overriden = UserDict(obj._asdict())
old_get = overriden.__getitem__
- new_get = lambda self, key: dictize(old_get(self, key))
- overriden.__getitem__ = new_get
+ 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,
@@ -113,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'.
@@ -130,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.
@@ -174,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()
@@ -198,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.
@@ -251,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()
@@ -284,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:
@@ -302,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):
@@ -329,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]
@@ -340,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
@@ -366,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.
@@ -380,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()
@@ -388,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
@@ -434,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):
@@ -500,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:
@@ -519,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.
@@ -578,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.
@@ -591,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.
@@ -603,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
@@ -627,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
@@ -643,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
@@ -662,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,
@@ -676,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.
@@ -701,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
@@ -721,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.
@@ -739,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
@@ -749,65 +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:
- message_name = item.__class__.__name__
- self.crc_checker.check_api_name(message_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:
- raise AssertionError(
- f"Retval {retval!r} does not match expected "
- f"retval {exp_rv!r} in message {message_name} "
- f"for command {command}."
- )
- 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:
@@ -832,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)
@@ -894,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
@@ -926,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.
@@ -946,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)
@@ -991,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.
@@ -1022,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
@@ -1038,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 32429c4f64..18b2774908 100644
--- a/resources/libraries/python/PapiHistory.py
+++ b/resources/libraries/python/PapiHistory.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:
@@ -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
diff --git a/resources/libraries/python/Policer.py b/resources/libraries/python/Policer.py
index 6d3bf86462..28ed0b0aa9 100644
--- a/resources/libraries/python/Policer.py
+++ b/resources/libraries/python/Policer.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:
@@ -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/QemuUtils.py b/resources/libraries/python/QemuUtils.py
index 64fb5a0e87..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:
@@ -258,7 +258,7 @@ class QemuUtils:
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},"
@@ -605,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.
diff --git a/resources/libraries/python/SRv6.py b/resources/libraries/python/SRv6.py
index eca22a2b17..0170df5ef6 100644
--- a/resources/libraries/python/SRv6.py
+++ b/resources/libraries/python/SRv6.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:
@@ -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/SetupFramework.py b/resources/libraries/python/SetupFramework.py
index 6d1332c1b7..95ca8a7d51 100644
--- a/resources/libraries/python/SetupFramework.py
+++ b/resources/libraries/python/SetupFramework.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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,8 +14,6 @@
"""This module exists to provide setup utilities for the framework on topology
nodes. All tasks required to be run before the actual tests are started is
supposed to end up here.
-
-TODO: Figure out how to export JSON from SSH outside main Robot thread.
"""
from os import environ, remove
@@ -108,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=240, include_reason=True, export=False
+ timeout=600, include_reason=True
)
logger.console(
f"Extracting tarball to {con.REMOTE_FW_DIR} on {node[u'type']} "
@@ -137,7 +135,7 @@ def create_env_directory_at_node(node):
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, export=False,
+ 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']}"
)
@@ -217,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, export=False
+ timeout=100, include_reason=True,
)
logger.console(
f"Deleting framework directory on {node[u'type']} host {node[u'host']},"
@@ -261,9 +259,9 @@ def cleanup_node(node, results=None, logs=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
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 7a987fc34b..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),
diff --git a/resources/libraries/python/TelemetryUtil.py b/resources/libraries/python/TelemetryUtil.py
index 2d4bb096c6..63d0bf60a7 100644
--- a/resources/libraries/python/TelemetryUtil.py
+++ b/resources/libraries/python/TelemetryUtil.py
@@ -13,129 +13,87 @@
"""Telemetry utility."""
-from robot.api import logger
-
+from resources.libraries.python.model.ExportResult import append_telemetry
from resources.libraries.python.Constants import Constants
-from resources.libraries.python.OptionString import OptionString
-from resources.libraries.python.ssh import exec_cmd, exec_cmd_no_error
+from resources.libraries.python.ssh import exec_cmd_no_error
from resources.libraries.python.topology import NodeType
-__all__ = [u"TelemetryUtil"]
+__all__ = ["TelemetryUtil"]
class TelemetryUtil:
"""Class contains methods for telemetry 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:
- TelemetryUtil.perf_stat(
- node, cpu_list=cpu_list, duration=duration
- )
-
- @staticmethod
- def run_telemetry(node, profile, hook=None):
- """Get telemetry stat read for duration.
+ 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 hook: Process ID or socket path (optional).
+ :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 hook: str
+ :type sid: str
+ :type spath: str
+ :type rate: str
+ :type export: bool
"""
- config = u""
+ config = ""
config += f"{Constants.REMOTE_FW_DIR}/"
config += f"{Constants.RESOURCES_TPL_TELEMETRY}/"
config += f"{profile}"
- cd_cmd = u""
+ cd_cmd = ""
cd_cmd += f"sh -c \"cd {Constants.REMOTE_FW_DIR}/"
cd_cmd += f"{Constants.RESOURCES_TOOLS}"
- bin_cmd = f"python3 -m telemetry --config {config} --hook {hook}\""
- hostname = node[u"host"]
-
+ 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, u"cat /tmp/metric.prom", sudo=True, log_stdout_err=False
- )
- logger.info(
- u"# TYPE target info\n"
- u"# HELP target Target metadata\n"
- f"target_info{{hostname=\"{hostname}\",hook=\"{hook}\"}} 1\n"
- f"{stdout}"
+ 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("\"", "'")
+ )
- @staticmethod
- def run_telemetry_on_all_duts(nodes, profile):
- """Get telemetry stat read on all DUTs.
+ 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 hooks: Dict of Process IDs or socket paths (optional).
+ :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 hooks: dict
+ :type rate: str
+ :type export: bool
"""
for node in nodes.values():
- if node[u"type"] == NodeType.DUT:
+ if node["type"] == NodeType.DUT:
try:
- for socket in node[u"sockets"][u"CLI"].values():
- TelemetryUtil.run_telemetry(
- node, profile=profile, hook=socket
+ 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 28c740e42e..eb093a4651 100644
--- a/resources/libraries/python/TestConfig.py
+++ b/resources/libraries/python/TestConfig.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:
@@ -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),
@@ -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/TrafficGenerator.py b/resources/libraries/python/TrafficGenerator.py
index 2a28896e63..936cb3a06d 100644
--- a/resources/libraries/python/TrafficGenerator.py
+++ b/resources/libraries/python/TrafficGenerator.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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,21 +16,25 @@
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"]
@@ -128,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
@@ -178,8 +178,7 @@ class TrafficGenerator(AbstractMeasurer):
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):
@@ -280,122 +279,83 @@ class TrafficGenerator(AbstractMeasurer):
message = u"Get T-Rex version failed!"
stdout, _ = exec_cmd_no_error(tg_node, command, message=message)
return stdout.strip()
- else:
- return "none"
+ return "none"
- # TODO: pylint 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):
+ def initialize_traffic_generator(self, osi_layer, pfs=2):
"""TG initialization.
- TODO: Document why do we need (and how do we use) _ifaces_reordered.
-
- :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.
- :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
+ :param pfs: Number of physical interfaces to configure.
: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.
+ :type pfs: int
+ :raises ValueError: If OSI layer is unknown.
"""
- 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!")
-
- # 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
-
- if min(if1[u"pci"], if2[u"pci"]) != if1[u"pci"]:
- if1, if2 = if2, if1
- self._ifaces_reordered = True
+ 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)
-
- 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!"
- )
+ topology = BuiltIn().get_variable_value("&{topology_info}")
+ self._node = topology["TG"]
+ subtype = check_subtype(self._node)
- if Constants.TREX_RX_DESCRIPTORS_COUNT != 0:
- exec_cmd_no_error(
- self._node,
- f"sh -c 'cat << EOF >> /etc/trex_cfg.yaml\n"
- f" rx_desc: {Constants.TREX_RX_DESCRIPTORS_COUNT}\n"
- f"EOF'",
- sudo=True, message=u"T-Rex rx_desc modification!"
+ 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]"
+ )
)
- if Constants.TREX_TX_DESCRIPTORS_COUNT != 0:
- exec_cmd_no_error(
- self._node,
- f"sh -c 'cat << EOF >> /etc/trex_cfg.yaml\n"
- f" tx_desc: {Constants.TREX_TX_DESCRIPTORS_COUNT}\n"
- f"EOF'",
- sudo=True, message=u"T-Rex tx_desc modification!"
+ 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
+ )
)
- else:
- raise ValueError(u"Unknown OSI layer!")
+ TrexConfig.add_startup_configuration(
+ self._node, trex_topology
+ )
TrafficGenerator.startup_trex(
self._node, osi_layer, subtype=subtype
)
@@ -418,51 +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!"
)
# Prepare interfaces for TRex.
- mlx_ports = u""
- mlx_driver = u""
- itl_ports = u""
- for port in tg_node[u"interfaces"].values():
- if u"Mellanox" in port.get(u"model"):
- mlx_ports += f" {port.get(u'pci_address')}"
- mlx_driver = port.get(u"driver")
- if u"Intel" in port.get(u"model"):
- itl_ports += f" {port.get(u'pci_address')}"
-
- if itl_ports:
- cmd = (
- f"sh -c \"cd {Constants.TREX_INSTALL_DIR}/scripts/ && ",
- f"./dpdk_nic_bind.py -u {itl_ports} || ",
- f"true\""
- )
- exec_cmd_no_error(
- tg_node, cmd, sudo=True,
- message=u"Unbind PCI ports from driver failed!"
- )
- if mlx_ports:
- cmd = (
- f"sh -c \"cd {Constants.TREX_INSTALL_DIR}/scripts/ && ",
- f"./dpdk_nic_bind.py -b {mlx_driver} {mlx_ports} || ",
- f"true\""
- )
- exec_cmd_no_error(
- tg_node, cmd, sudo=True,
- message=u"Bind PCI ports from driver failed!"
- )
+ 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 &"
@@ -470,33 +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 = f"python3 {Constants.REMOTE_FW_DIR}/GPL/tools/trex/"
- if osi_layer in (u"L2", u"L3"):
- cmd += u"trex_stl_assert.py"
- elif osi_layer == u"L7":
- cmd += u"trex_astf_assert.py"
+ 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):
@@ -507,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
@@ -540,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)
@@ -564,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)
@@ -582,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)
@@ -602,7 +552,7 @@ class TrafficGenerator(AbstractMeasurer):
"""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 to self.
+ 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.
@@ -679,8 +629,6 @@ class TrafficGenerator(AbstractMeasurer):
if not isinstance(duration, (float, int)):
duration = float(duration)
- # TODO: Refactor the code so duration is computed only once,
- # and both the initial and the computed durations are logged.
computed_duration, _ = self._compute_duration(duration, multiplier)
command_line = OptionString().add(u"python3")
@@ -724,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
@@ -757,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
@@ -788,41 +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)
- # TODO: Refactor the code so duration is computed only once,
- # and both the initial and the computed durations are logged.
duration, _ = self._compute_duration(duration=duration, multiplier=rate)
- 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_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_with_value(u"delay", Constants.PERF_TRIAL_STL_DELAY)
+ 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:
@@ -834,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
@@ -931,7 +870,7 @@ class TrafficGenerator(AbstractMeasurer):
:type state_timeout: float
:type ramp_up_only: bool
:returns: TG results.
- :rtype: ReceiveRateMeasurement or None
+ :rtype: MeasurementResult or None
:raises ValueError: If TG traffic profile is not supported.
"""
self.set_rate_provider_defaults(
@@ -978,7 +917,7 @@ class TrafficGenerator(AbstractMeasurer):
:type rate: float
:type async_call: bool
:returns: TG results.
- :rtype: ReceiveRateMeasurement or None
+ :rtype: MeasurementResult or None
:raises ValueError: If TG traffic profile is not supported.
"""
subtype = check_subtype(self._node)
@@ -989,7 +928,6 @@ 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
)
@@ -1030,13 +968,12 @@ class TrafficGenerator(AbstractMeasurer):
:type async_call: bool
:type ramp_up_only: bool
:returns: TG results.
- :rtype: ReceiveRateMeasurement or None
+ :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.
- # TODO: Give up on async_call=True?
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
@@ -1086,7 +1023,7 @@ class TrafficGenerator(AbstractMeasurer):
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_count == 0:
+ 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
@@ -1108,8 +1045,6 @@ 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.
"""
@@ -1260,21 +1195,20 @@ class TrafficGenerator(AbstractMeasurer):
int(self._result.get(u"server_tcp_rx_bytes", 0))
def _get_measurement_result(self):
- """Return the result of last measurement as ReceiveRateMeasurement.
+ """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 aggregated packets per second.
- TODO: Fail on running or already reported measurement.
-
: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.
@@ -1314,7 +1248,7 @@ class TrafficGenerator(AbstractMeasurer):
expected_attempt_count = max(expected_attempt_count, self._sent)
unsent = expected_attempt_count - self._sent
pass_count = self._received
- fail_count = expected_attempt_count - pass_count
+ 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.")
@@ -1323,7 +1257,7 @@ class TrafficGenerator(AbstractMeasurer):
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.")
@@ -1336,14 +1270,14 @@ class TrafficGenerator(AbstractMeasurer):
# 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
unsent = expected_attempt_count - self._sent
- fail_count = self._loss + unsent
+ 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.")
@@ -1357,29 +1291,30 @@ class TrafficGenerator(AbstractMeasurer):
# Probability of retransmissions exactly cancelling
# packets unsent due to duration stretching is quite low.
unsent = abs(expected_attempt_count - self._sent)
- fail_count = self._loss + unsent
+ loss_count = self._loss
else:
raise RuntimeError(f"Unknown parsing {self.transaction_type!r}")
if unsent and isinstance(self._approximated_duration, float):
# Do not report unsent for "manual".
logger.debug(f"Unsent packets/transactions: {unsent}")
- 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 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.
@@ -1387,35 +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()
result = self._send_traffic_on_tg_with_ramp_up(
- duration=duration,
- rate=transmit_rate,
+ duration=intended_duration,
+ rate=intended_load,
async_call=False,
)
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
@@ -1456,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.
@@ -1486,7 +1417,7 @@ class TrafficGenerator(AbstractMeasurer):
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)
@@ -1508,29 +1439,30 @@ class OptimizedSearch:
"""
@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=1200.0,
- ppta=1,
- resetter=None,
- traffic_directions=2,
- transaction_duration=0.0,
- transaction_scale=0,
- transaction_type=u"packet",
- use_latency=False,
- ramp_up_rate=None,
- ramp_up_duration=None,
- state_timeout=240.0,
- expansion_coefficient=4.0,
- ):
+ 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 init and non-init trial durations
@@ -1542,18 +1474,20 @@ class OptimizedSearch:
: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: Ratio 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 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.
@@ -1572,17 +1506,18 @@ class OptimizedSearch:
: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 expansion_coefficient: In external search multiply width by this.
: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 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
@@ -1593,11 +1528,12 @@ class OptimizedSearch:
:type ramp_up_rate: float
:type ramp_up_duration: float
:type state_timeout: float
- :type expansion_coefficient: float
- :returns: Structure containing narrowed down NDR and PDR intervals
- and their measurements.
- :rtype: List[Receiverateinterval]
- :raises RuntimeError: If total duration is larger than timeout.
+ :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-*()
@@ -1605,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 = 1.0
- number_of_intermediate_phases = 0
- timeout += transaction_scale * 3e-4
+ 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,
@@ -1627,34 +1562,43 @@ class OptimizedSearch:
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,
- debug=logger.debug,
- expansion_coefficient=expansion_coefficient,
- )
- if packet_loss_ratio:
- packet_loss_ratios = [0.0, packet_loss_ratio]
+ if loss_ratio:
+ loss_ratios = [0.0, loss_ratio]
+ exceed_ratio = 0.5
else:
# Happens in reconf tests.
- packet_loss_ratios = [packet_loss_ratio]
- results = algorithm.narrow_down_intervals(
- min_rate=minimum_transmit_rate,
- max_rate=maximum_transmit_rate,
- packet_loss_ratios=packet_loss_ratios,
- )
- return results
+ 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,
@@ -1676,8 +1620,8 @@ class OptimizedSearch:
: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 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,
@@ -1711,8 +1655,8 @@ class OptimizedSearch:
: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
@@ -1734,11 +1678,7 @@ class OptimizedSearch:
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:
- # TODO: What is a good value for max scale?
- # TODO: Scale the timeout with transaction scale.
timeout = 7200.0
tg_instance.set_rate_provider_defaults(
frame_size=frame_size,
@@ -1765,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/VPPUtil.py b/resources/libraries/python/VPPUtil.py
index daeb568bda..1ede76cdd4 100644
--- a/resources/libraries/python/VPPUtil.py
+++ b/resources/libraries/python/VPPUtil.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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,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.
@@ -70,7 +41,14 @@ 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)
@@ -101,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):
@@ -120,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.
@@ -410,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 63f46c8b6d..0000000000
--- a/resources/libraries/python/VatExecutor.py
+++ /dev/null
@@ -1,397 +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.
-
-"""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 3e956e790d..0000000000
--- a/resources/libraries/python/VatJsonUtil.py
+++ /dev/null
@@ -1,218 +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.
-
-"""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/VppApiCrc.py b/resources/libraries/python/VppApiCrc.py
index 0cb8c2b7e7..a8947a18cb 100644
--- a/resources/libraries/python/VppApiCrc.py
+++ b/resources/libraries/python/VppApiCrc.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:
@@ -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.
@@ -325,12 +326,15 @@ 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.
@@ -375,8 +379,25 @@ class VppApiCrcChecker:
self.log_and_raise(
f"No active collection has API {api_name!r} with CRC {crc!r}"
)
- options = self._options[api_name]
+ 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
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 e1830147d8..4191c0eed2 100644
--- a/resources/libraries/python/VppConfigGenerator.py
+++ b/resources/libraries/python/VppConfigGenerator.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 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,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):
@@ -49,19 +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"
+ self._vpp_startup_conf = "/etc/vpp/startup.conf"
def set_node(self, node, node_key=None):
"""Set DUT node.
@@ -72,9 +70,9 @@ 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
@@ -104,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):
@@ -117,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):
@@ -133,58 +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_cli_no_pager(self):
"""Add UNIX cli-no-pager configuration."""
- path = [u"unix", u"cli-no-pager"]
- self.add_config_item(self._nodeconfig, u"", path)
+ path = ["unix", "cli-no-pager"]
+ self.add_config_item(self._nodeconfig, "", path)
- def add_unix_gid(self, value=u"vpp"):
+ 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):
@@ -193,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):
@@ -234,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):
@@ -243,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):
@@ -254,21 +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)
+ 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.
@@ -283,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.
@@ -292,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):
@@ -301,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):
@@ -310,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):
@@ -319,22 +329,27 @@ 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_dev_default_tso(self):
+ """Add DPDK dev default tso configuration."""
+ path = [u"dpdk", u"dev default", u"tso"]
+ self.add_config_item(self._nodeconfig, "on", path)
+
def add_dpdk_log_level(self, value):
"""Add DPDK log-level configuration.
: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.
@@ -346,7 +361,7 @@ 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):
@@ -355,23 +370,28 @@ class VppConfigGenerator:
:param value: Graph node variant default value.
:type value: str
"""
- if variant == u"icl":
+ if variant == "icl":
value = 512
- elif variant in [u"skx", u"hsw"]:
+ elif variant in ["skx", "hsw"]:
value = 256
else:
return
- path = [u"dpdk", u"max-simd-bitwidth"]
+ path = ["dpdk", "max-simd-bitwidth"]
self.add_config_item(self._nodeconfig, value, path)
+ def add_dpdk_enable_tcp_udp_checksum(self):
+ """Add DPDK enable-tcp-udp-checksum configuration."""
+ path = [u"dpdk", u"enable-tcp-udp-checksum"]
+ self.add_config_item(self._nodeconfig, u"", path)
+
def add_cpu_main_core(self, value):
"""Add CPU main core configuration.
: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):
@@ -380,7 +400,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):
@@ -389,7 +409,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):
@@ -398,7 +418,7 @@ 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):
@@ -407,13 +427,13 @@ class VppConfigGenerator:
:param value: Hugepage size.
:type value: str
"""
- path = [u"memory", u"default-hugepage-size"]
+ 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.
@@ -421,7 +441,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):
@@ -430,13 +450,53 @@ 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_spd_flow_cache_ipv4_outbound(self):
- """Add SPD flow cache for IP4 outbound traffic"""
- path = [u"ipsec", u"ipv4-outbound-spd-flow-cache"]
- self.add_config_item(self._nodeconfig, "on", 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):
"""Add Stats Heap Size configuration.
@@ -444,7 +504,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):
@@ -453,7 +513,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):
@@ -462,7 +522,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):
@@ -474,27 +534,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.
@@ -502,21 +562,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):
@@ -525,7 +585,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):
@@ -534,18 +594,28 @@ 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_tcp_tso(self):
+ """Add TCP tso configuration."""
+ path = [u"tcp", u"tso"]
+ self.add_config_item(self._nodeconfig, u"", 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.
@@ -553,7 +623,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):
@@ -562,7 +632,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):
@@ -571,7 +641,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):
@@ -580,7 +650,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):
@@ -589,7 +659,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):
@@ -598,7 +668,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):
@@ -607,7 +677,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):
@@ -616,7 +686,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):
@@ -625,7 +695,31 @@ 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_session_use_dma(self):
+ """Add session use-dma configuration."""
+ path = [u"session", u"use-dma"]
+ self.add_config_item(self._nodeconfig, u"", 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,7 +738,7 @@ class VppConfigGenerator:
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):
@@ -663,3 +757,40 @@ class VppConfigGenerator:
VPPUtil.restart_vpp_service(self._node, self._node_key)
if verify_vpp:
VPPUtil.verify_vpp(self._node)
+
+
+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/WireGuardUtil.py b/resources/libraries/python/WireGuardUtil.py
index d8d2396164..6e6237e7e7 100644
--- a/resources/libraries/python/WireGuardUtil.py
+++ b/resources/libraries/python/WireGuardUtil.py
@@ -68,7 +68,7 @@ class WireGuardUtil:
:param node: VPP node to add config on.
:param listen_port: WireGuard interface listen port.
- :param wg_src: WireGuard srouce IPv4.
+ :param wg_src: WireGuard source IPv4.
:param private_key: WireGuard interface private key
:type node: dict
:type listen_port: int
@@ -118,12 +118,9 @@ class WireGuardUtil:
:type keepalive_time: int
"""
endpoint_ip = ip_address(endpoint_ip)
- wg_name = InterfaceUtil.vpp_get_interface_name(
- node, sw_if_index=interface
- )
cmd = u"wireguard_peer_add"
- err_msg = f"Failed to add wireguard interface" \
- f"{wg_name} peer on host {node[u'host']}"
+ 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,
@@ -139,6 +136,23 @@ class WireGuardUtil:
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,
@@ -162,11 +176,11 @@ class WireGuardUtil:
:type nodes: dict
:type if1_key: str
:type if2_mac_addr: str
- :type src_ip: src
- :type peer_endpoint_ip: src
+ :type src_ip: str
+ :type peer_endpoint_ip: str
:type peer_allowed_ips: list
:type peer_n_allowed_ips: int
- :type dut_wg_ip: src
+ :type dut_wg_ip: str
:type port: int
:type keepalive_time: int
:type dut_private_key: bytes
@@ -213,10 +227,10 @@ class WireGuardUtil:
)
@staticmethod
- def vpp_wireguard_create_tunnel_interface_on_duts(
+ 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_allowed_ips, port, keepalive_time, raddr_ip1, raddr_ip2):
+ 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.
@@ -229,8 +243,7 @@ class WireGuardUtil:
: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 allowed_ips: WireGuard interface allowed ip list.
- :param n_allowed_ips: Number of allowed ips.
+ :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.
@@ -247,32 +260,39 @@ class WireGuardUtil:
:type if2_mac_addr: str
:type wg_if1_ip_addr: str
:type wg_if2_ip_addr: str
- :type allowed_ips: str
- :type n_allowed_ips: int
+ :type n_tunnels: int
:type port: int
:type keepalive_time: int
:type raddr_ip1: str
:type raddr_ip2: str
"""
- dut1_privatekey, dut1_pubkey = \
- WireGuardUtil.generate_wireguard_privatekey_and_pubkey()
- dut2_privatekey, dut2_pubkey = \
- WireGuardUtil.generate_wireguard_privatekey_and_pubkey()
- raddr_ip1 = ip_address(raddr_ip1)
- raddr_ip2 = ip_address(raddr_ip2)
- dut1_allowed_ips = \
- [IPUtil.create_prefix_object(raddr_ip2, 24),]
- dut2_allowed_ips = \
- [IPUtil.create_prefix_object(raddr_ip1, 24),]
- #Configure WireGuard interface on DUT1
- WireGuardUtil._wireguard_create_tunnel_interface_on_dut(
- nodes[u'DUT1'], if1_key, if2_mac_addr, if1_ip_addr, if2_ip_addr,
- dut1_allowed_ips, n_allowed_ips, wg_if1_ip_addr, 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_ip_addr, if1_ip_addr,
- dut2_allowed_ips, n_allowed_ips, wg_if2_ip_addr, port,
- keepalive_time, dut2_privatekey, dut1_pubkey
- )
+ 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 4474996ef1..8d593fecca 100644
--- a/resources/libraries/python/autogen/Regenerator.py
+++ b/resources/libraries/python/autogen/Regenerator.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 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:
@@ -150,16 +150,17 @@ def filter_and_edit_kwargs_for_astf(suite_id, kwargs):
return kwargs
-def add_default_testcases(testcase, iface, suite_id, file_out, tc_kwargs_list):
+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
@@ -169,29 +170,20 @@ def add_default_testcases(testcase, iface, suite_id, file_out, tc_kwargs_list):
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"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))
@@ -257,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
@@ -340,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
@@ -384,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
)
@@ -407,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(
@@ -455,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,
@@ -483,10 +485,10 @@ 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",
- 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(
@@ -522,6 +524,11 @@ def write_tcp_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,
@@ -546,10 +553,10 @@ def write_iperf3_files(in_filename, in_prolog, kwargs_list):
"""
_, suite_id, suite_tag = get_iface_and_suite_ids(in_filename)
testcase = Testcase.iperf3(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]
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(
@@ -604,10 +611,10 @@ def write_trex_files(in_filename, in_prolog, kwargs_list):
)
_, suite_id, suite_tag = get_iface_and_suite_ids(tmp_filename)
testcase = Testcase.trex(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]
out_filename = replace_defensively(
- tmp_filename, u"10ge2p1x710",
- Constants.NIC_NAME_TO_CODE[nic_name], 1,
+ tmp_filename, u"10ge2p1x710", nic_code, 1,
u"File name should contain NIC code once.", in_filename
)
out_prolog = replace_defensively(
@@ -638,10 +645,10 @@ def write_device_files(in_filename, in_prolog, kwargs_list):
)
_, 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,
+ tmp_filename, u"10ge2p1x710", nic_code, 1,
u"File name should contain NIC code once.", in_filename
)
tmp2_prolog = replace_defensively(
@@ -677,6 +684,11 @@ def write_device_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
)
diff --git a/resources/libraries/python/jumpavg/AvgStdevStats.py b/resources/libraries/python/jumpavg/AvgStdevStats.py
deleted file mode 100644
index 4720c10f3d..0000000000
--- a/resources/libraries/python/jumpavg/AvgStdevStats.py
+++ /dev/null
@@ -1,113 +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.
-
-"""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 f1bdc502fd..0000000000
--- a/resources/libraries/python/jumpavg/BitCountingGroup.py
+++ /dev/null
@@ -1,173 +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.
-
-"""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 6a1c86baf2..0000000000
--- a/resources/libraries/python/jumpavg/BitCountingGroupList.py
+++ /dev/null
@@ -1,185 +0,0 @@
-# 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.
-
-"""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 f"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 7b5e659214..0000000000
--- a/resources/libraries/python/jumpavg/BitCountingStats.py
+++ /dev/null
@@ -1,169 +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.
-
-"""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 4fa696c538..7f63b5ee39 100644
--- a/resources/libraries/python/jumpavg/__init__.py
+++ b/resources/libraries/python/jumpavg/__init__.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:
@@ -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 252c71e8d5..cc3cdcceed 100644
--- a/resources/libraries/python/jumpavg/classify.py
+++ b/resources/libraries/python/jumpavg/classify.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,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/ExportLog.py b/resources/libraries/python/model/ExportLog.py
deleted file mode 100644
index e02eef63c5..0000000000
--- a/resources/libraries/python/model/ExportLog.py
+++ /dev/null
@@ -1,148 +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.
-
-"""Module with keywords that publish metric and other log events.
-"""
-
-import datetime
-
-from resources.libraries.python.model.util import get_export_data
-
-
-def export_ssh_command(host, port, command):
- """Add a log item about SSH command execution starting.
-
- The log item is present only in raw output.
- Result arrives in a separate log item.
- Log level is always DEBUG.
-
- The command is stored as "data" (not "msg") as in some cases
- the command can be too long to act as a message.
-
- The host is added to the info set of hosts.
-
- :param host: Node "host" attribute, usually its IPv4 address.
- :param port: SSH port number to use when connecting to the host.
- :param command: Serialized bash command to execute.
- :type host: str
- :type port: int
- :type command: str
- """
- timestamp = datetime.datetime.utcnow().strftime(u"%Y-%m-%dT%H:%M:%S.%fZ")
- data = get_export_data()
- ssh_record = dict(
- source_type=u"host,port",
- source_id=dict(host=host, port=port),
- msg_type=u"ssh_command",
- log_level=u"DEBUG",
- timestamp=timestamp,
- msg="",
- data=str(command),
- )
- data[u"hosts"].add(host)
- data[u"log"].append(ssh_record)
-
-
-def export_ssh_result(host, port, code, stdout, stderr, duration):
- """Add a log item about ssh execution result.
-
- Only for raw output log.
-
- There is no easy way to pair with the corresponding command,
- but usually there is only one SSH session for given host and port.
- The duration value may give a hint if that is not the case.
-
- Message is empty, data has fields "rc", "stdout", "stderr" and "duration".
- Log level is always DEBUG.
-
- The host is NOT added to the info set of hosts, as each result
- comes after a command.
-
- TODO: Do not require duration, find preceding ssh command in log.
- Reason: Pylint complains about too many arguments.
- Alternative: Define type for SSH endopoint (and use that instead host+port).
-
- :param host: Node "host" attribute, usually its IPv4 address.
- :param port: SSH port number to use when connecting to the host.
- :param code: Bash return code, e.g. 0 for success.
- :param stdout: Captured standard output of the command execution.
- :param stderr: Captured error output of the command execution.
- :param duration: How long has the command been executing, in seconds.
- :type host: str
- :type port: int
- :type code: int
- :type stdout: str
- :type stderr: str
- :type duration: float
- """
- timestamp = datetime.datetime.utcnow().strftime(u"%Y-%m-%dT%H:%M:%S.%fZ")
- data = get_export_data()
- ssh_record = dict(
- source_type=u"host,port",
- source_id=dict(host=host, port=port),
- msg_type=u"ssh_result",
- log_level=u"DEBUG",
- timestamp=timestamp,
- msg=u"",
- data=dict(
- rc=int(code),
- stdout=str(stdout),
- stderr=str(stderr),
- duration=float(duration),
- ),
- )
- data[u"log"].append(ssh_record)
-
-
-def export_ssh_timeout(host, port, stdout, stderr, duration):
- """Add a log item about ssh execution timing out.
-
- Only for debug log.
-
- There is no easy way to pair with the corresponding command,
- but usually there is only one SSH session for given host and port.
-
- Message is empty, data has fields "stdout", "stderr" and "duration".
- The duration value may give a hint if that is not the case.
- Log level is always DEBUG.
-
- The host is NOT added to the info set of hosts, as each timeout
- comes after a command.
-
- :param host: Node "host" attribute, usually its IPv4 address.
- :param port: SSH port number to use when connecting to the host.
- :param stdout: Captured standard output of the command execution so far.
- :param stderr: Captured error output of the command execution so far.
- :param duration: How long has the command been executing, in seconds.
- :type host: str
- :type port: int
- :type stdout: str
- :type stderr: str
- :type duration: float
- """
- timestamp = datetime.datetime.utcnow().strftime(u"%Y-%m-%dT%H:%M:%S.%fZ")
- data = get_export_data()
- ssh_record = dict(
- source_type=u"host,port",
- source_id=dict(host=host, port=port),
- msg_type=u"ssh_timeout",
- log_level=u"DEBUG",
- timestamp=timestamp,
- msg=u"",
- data=dict(
- stdout=str(stdout),
- stderr=str(stderr),
- duration=float(duration),
- ),
- )
- data[u"log"].append(ssh_record)
diff --git a/resources/libraries/python/model/ExportResult.py b/resources/libraries/python/model/ExportResult.py
index 16c6b89fb3..f155848913 100644
--- a/resources/libraries/python/model/ExportResult.py
+++ b/resources/libraries/python/model/ExportResult.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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,7 +18,7 @@ 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=u"unknown", dut_version=u"unknown"):
+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.
@@ -32,32 +32,32 @@ def export_dut_type_and_version(dut_type=u"unknown", dut_version=u"unknown"):
:type dut_version: Optiona[str]
:raises RuntimeError: If value is neither in argument not robot variable.
"""
- if dut_type == u"unknown":
- dut_type = BuiltIn().get_variable_value(u"\\${DUT_TYPE}", u"unknown")
- if dut_type == u"unknown":
- raise RuntimeError(u"Dut type not provided.")
+ 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(
- u"\\${DUT_TYPE}", dut_type, u"children=True"
+ "\\${DUT_TYPE}", dut_type, "children=True"
)
- if dut_version == u"unknown":
+ if dut_version == "unknown":
dut_version = BuiltIn().get_variable_value(
- u"\\${DUT_VERSION}", u"unknown"
+ "\\${DUT_VERSION}", "unknown"
)
- if dut_type == u"unknown":
- raise RuntimeError(u"Dut version not provided.")
+ if dut_type == "unknown":
+ raise RuntimeError("Dut version not provided.")
else:
BuiltIn().set_suite_variable(
- u"\\${DUT_VERSION}", dut_version, u"children=True"
+ "\\${DUT_VERSION}", dut_version, "children=True"
)
data = get_export_data()
- data[u"dut_type"] = dut_type.lower()
- data[u"dut_version"] = dut_version
+ data["dut_type"] = dut_type.lower()
+ data["dut_version"] = dut_version
-def export_tg_type_and_version(tg_type=u"unknown", tg_version=u"unknown"):
+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.
@@ -71,50 +71,57 @@ def export_tg_type_and_version(tg_type=u"unknown", tg_version=u"unknown"):
:type tg_version: Optiona[str]
:raises RuntimeError: If value is neither in argument not robot variable.
"""
- if tg_type == u"unknown":
- tg_type = BuiltIn().get_variable_value(u"\\${TG_TYPE}", u"unknown")
- if tg_type == u"unknown":
- raise RuntimeError(u"TG type not provided.")
+ 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(
- u"\\${TG_TYPE}", tg_type, u"children=True"
+ "\\${TG_TYPE}", tg_type, "children=True"
)
- if tg_version == u"unknown":
+ if tg_version == "unknown":
tg_version = BuiltIn().get_variable_value(
- u"\\${TG_VERSION}", u"unknown"
+ "\\${TG_VERSION}", "unknown"
)
- if tg_type == u"unknown":
- raise RuntimeError(u"TG version not provided.")
+ if tg_type == "unknown":
+ raise RuntimeError("TG version not provided!")
else:
BuiltIn().set_suite_variable(
- u"\\${TG_VERSION}", tg_version, u"children=True"
+ "\\${TG_VERSION}", tg_version, "children=True"
)
data = get_export_data()
- data[u"tg_type"] = tg_type.lower()
- data[u"tg_version"] = tg_version
+ data["tg_type"] = tg_type.lower()
+ data["tg_version"] = tg_version
-def append_mrr_value(mrr_value, unit):
+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 unit: Unit of measurement for the rate.
+ :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 unit: str
+ :type mrr_unit: str
+ :type bandwidth_value: Optional[float]
+ :type bandwidth_unit: Optional[str]
"""
- if not unit:
+ if not mrr_unit:
return
data = get_export_data()
- data[u"result"][u"type"] = u"mrr"
- rate_node = descend(descend(data[u"result"], u"receive_rate"), "rate")
- rate_node[u"unit"] = str(unit)
- values_list = descend(rate_node, u"values", list)
- values_list.append(float(mrr_value))
- # TODO: Fill in the bandwidth part for pps?
+ 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):
@@ -140,18 +147,17 @@ def export_search_bound(text, value, unit, bandwidth=None):
"""
value = float(value)
text = str(text).lower()
- result_type = u"soak" if u"plrsearch" in text else u"ndrpdr"
- upper_or_lower = u"upper" if u"upper" in text else u"lower"
- ndr_or_pdr = u"ndr" if u"ndr" in text else u"pdr"
+ 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"
- data = get_export_data()
- result_node = data[u"result"]
- result_node[u"type"] = result_type
+ result_node = get_export_data()["result"]
+ result_node["type"] = result_type
rate_item = dict(rate=dict(value=value, unit=unit))
if bandwidth:
- rate_item[u"bandwidth"] = dict(value=float(bandwidth), unit=u"bps")
- if result_type == u"soak":
- descend(result_node, u"critical_rate")[upper_or_lower] = rate_item
+ 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
@@ -171,14 +177,14 @@ def _add_latency(result_node, percent, whichward, latency_string):
:type whichward: str
:latency_string: str
"""
- l_min, l_avg, l_max, l_hdrh = latency_string.split(u"/", 3)
+ 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[u"min"] = int(l_min)
- percent_node[u"avg"] = int(l_avg)
- percent_node[u"max"] = int(l_max)
- percent_node[u"hdrh"] = l_hdrh
- percent_node[u"unit"] = u"us"
+ 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):
@@ -197,17 +203,114 @@ def export_ndrpdr_latency(text, latency):
:type text: str
:type latency: 1-tuple or 2-tuple of str
"""
- data = get_export_data()
- result_node = data[u"result"]
+ result_node = get_export_data()["result"]
percent = 0
- if u"90" in text:
+ if "90" in text:
percent = 90
- elif u"50" in text:
+ elif "50" in text:
percent = 50
- elif u"10" in text:
+ elif "10" in text:
percent = 10
- _add_latency(result_node, percent, u"forward", latency[0])
+ _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, u"reverse", latency[1])
+ _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/export_json.py b/resources/libraries/python/model/export_json.py
deleted file mode 100644
index 840c49fa70..0000000000
--- a/resources/libraries/python/model/export_json.py
+++ /dev/null
@@ -1,236 +0,0 @@
-# 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.
-
-"""Module tracking json in-memory data and saving it to files.
-
-The current implementation tracks data for raw output,
-and info output is created from raw output on disk (see raw2info module).
-Raw file contains all log items but no derived quantities,
-info file contains only important log items but also derived quantities.
-The overlap between two files is big.
-
-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 robot.api import logger
-from robot.libraries.BuiltIn import BuiltIn
-
-from resources.libraries.python.Constants import Constants
-from resources.libraries.python.model.ExportResult import (
- export_dut_type_and_version, export_tg_type_and_version
-)
-from resources.libraries.python.model.mem2raw import write_raw_output
-from resources.libraries.python.model.raw2info import convert_content_to_info
-from resources.libraries.python.model.validate import (get_validators, validate)
-
-
-class export_json():
- """Class handling the json data setting and export."""
-
- ROBOT_LIBRARY_SCOPE = u"GLOBAL"
-
- def __init__(self):
- """Declare required fields, cache output dir.
-
- Also memorize schema validator instances.
- """
- self.output_dir = BuiltIn().get_variable_value(u"\\${OUTPUT_DIR}", ".")
- self.raw_file_path = None
- self.raw_data = None
- self.validators = get_validators()
-
- 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.raw_file_path:
- self.raw_data = None
- self.raw_file_path = None
- return
- write_raw_output(self.raw_file_path, self.raw_data)
- # Raw data is going to be cleared (as a sign that raw export succeeded),
- # so this is the last chance to detect if it was for a test case.
- is_testcase = u"result" in self.raw_data
- self.raw_data = None
- # Validation for raw output goes here when ready.
- info_file_path = convert_content_to_info(self.raw_file_path)
- self.raw_file_path = None
- # If "result" is missing from info content,
- # it could be a bug in conversion from raw test case content,
- # so instead of that we use the flag detected earlier.
- if is_testcase:
- validate(info_file_path, self.validators[u"tc_info"])
-
- def warn_on_bad_export(self):
- """If bad state is detected, log a warning and clean up state."""
- if self.raw_file_path is not None or self.raw_data is not None:
- logger.warn(f"Previous export not clean, path {self.raw_file_path}")
- self.raw_data = None
- self.raw_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(
- u"%Y-%m-%dT%H:%M:%S.%fZ"
- )
- suite_name = BuiltIn().get_variable_value(u"\\${SUITE_NAME}")
- suite_id = suite_name.lower().replace(u" ", u"_")
- suite_path_part = os.path.join(*suite_id.split(u"."))
- output_dir = self.output_dir
- self.raw_file_path = os.path.join(
- output_dir, suite_path_part, u"setup.raw.json"
- )
- self.raw_data = dict()
- self.raw_data[u"version"] = Constants.MODEL_VERSION
- self.raw_data[u"start_time"] = start_time
- self.raw_data[u"suite_name"] = suite_name
- self.raw_data[u"suite_documentation"] = BuiltIn().get_variable_value(
- u"\\${SUITE_DOCUMENTATION}"
- )
- # "end_time" and "duration" is added on flush.
- self.raw_data[u"hosts"] = set()
- self.raw_data[u"log"] = 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(
- u"%Y-%m-%dT%H:%M:%S.%fZ"
- )
- suite_name = BuiltIn().get_variable_value(u"\\${SUITE_NAME}")
- suite_id = suite_name.lower().replace(u" ", u"_")
- suite_path_part = os.path.join(*suite_id.split(u"."))
- test_name = BuiltIn().get_variable_value(u"\\${TEST_NAME}")
- self.raw_file_path = os.path.join(
- self.output_dir, suite_path_part,
- test_name.lower().replace(u" ", u"_") + u".raw.json"
- )
- self.raw_data = dict()
- self.raw_data[u"version"] = Constants.MODEL_VERSION
- self.raw_data[u"start_time"] = start_time
- self.raw_data[u"suite_name"] = suite_name
- self.raw_data[u"test_name"] = test_name
- test_doc = BuiltIn().get_variable_value(u"\\${TEST_DOCUMENTATION}", u"")
- self.raw_data[u"test_documentation"] = test_doc
- # "test_type" is added when converting to info.
- # "tags" is detected and added on flush.
- # "end_time" and "duration" is added on flush.
- # Robot status and message are added on flush.
- self.raw_data[u"result"] = dict(type=u"unknown")
- self.raw_data[u"hosts"] = set()
- self.raw_data[u"log"] = 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(
- u"%Y-%m-%dT%H:%M:%S.%fZ"
- )
- suite_name = BuiltIn().get_variable_value(u"\\${SUITE_NAME}")
- suite_id = suite_name.lower().replace(u" ", u"_")
- suite_path_part = os.path.join(*suite_id.split(u"."))
- self.raw_file_path = os.path.join(
- self.output_dir, suite_path_part, u"teardown.raw.json"
- )
- self.raw_data = dict()
- self.raw_data[u"version"] = Constants.MODEL_VERSION
- self.raw_data[u"start_time"] = start_time
- self.raw_data[u"suite_name"] = suite_name
- # "end_time" and "duration" is added on flush.
- self.raw_data[u"hosts"] = set()
- self.raw_data[u"log"] = 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(u"%Y-%m-%dT%H:%M:%S.%fZ")
- self.raw_data[u"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(u"%Y-%m-%dT%H:%M:%S.%fZ")
- message = BuiltIn().get_variable_value(u"\\${TEST_MESSAGE}")
- status = BuiltIn().get_variable_value(u"\\${TEST_STATUS}")
- test_tags = BuiltIn().get_variable_value(u"\\${TEST_TAGS}")
- self.raw_data[u"end_time"] = end_time
- self.raw_data[u"tags"] = list(test_tags)
- self.raw_data[u"status"] = status
- self.raw_data[u"message"] = message
- 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(u"%Y-%m-%dT%H:%M:%S.%fZ")
- self.raw_data[u"end_time"] = end_time
- self.export_pending_data()
diff --git a/resources/libraries/python/model/mem2raw.py b/resources/libraries/python/model/mem2raw.py
deleted file mode 100644
index 543ee935e2..0000000000
--- a/resources/libraries/python/model/mem2raw.py
+++ /dev/null
@@ -1,145 +0,0 @@
-# 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.
-
-"""Module for converting in-memory data into raw JSON output.
-
-CSIT and VPP PAPI are using custom data types
-that are not directly serializable into JSON.
-
-Thus, before writing the raw outpt 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
-
-
-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 (such as "log") 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)
- log = data.pop(u"log")
- 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)
- new_data[u"log"] = log
- return new_data
-
-
-def write_raw_output(raw_file_path, raw_data):
- """Prepare data for serialization and dump into a file.
-
- Ancestor directories are created if needed.
-
- :param to_raw_path: Local filesystem path, including the file name.
- :type to_raw_path: str
- """
- raw_data = _pre_serialize_root(raw_data)
- os.makedirs(os.path.dirname(raw_file_path), exist_ok=True)
- with open(raw_file_path, u"wt", encoding="utf-8") as file_out:
- json.dump(raw_data, file_out, indent=1)
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/raw2info.py b/resources/libraries/python/model/raw2info.py
deleted file mode 100644
index bd7d0e3cf1..0000000000
--- a/resources/libraries/python/model/raw2info.py
+++ /dev/null
@@ -1,294 +0,0 @@
-# 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.
-
-"""Module facilitating conversion from raw outputs into info outputs."""
-
-import copy
-import json
-import os
-
-import dateutil.parser
-
-from resources.libraries.python.Constants import Constants
-from resources.libraries.python.jumpavg.AvgStdevStats import AvgStdevStats
-
-
-def _raw_to_info_path(raw_path):
- """Compute path for info output corresponding to given raw output.
-
- :param raw_path: Local filesystem path to read raw JSON data from.
- :type raw_path: str
- :returns: Local filesystem path to write info JSON content to.
- :rtype: str
- :raises RuntimeError: If the input path does not meet all expectations.
- """
- raw_extension = u".raw.json"
- tmp_parts = raw_path.split(raw_extension)
- if len(tmp_parts) != 2 or tmp_parts[1] != u"":
- raise RuntimeError(f"Not good extension {raw_extension}: {raw_path}")
- info_path = tmp_parts[0] + u".info.json"
- return info_path
-
-
-def _process_test_name(data):
- """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 part of info schema.
- Return early if the data is not for test case.
- Inserttest 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.
-
- :param data: Raw data, perhaps some fields converted into info data already.
- :type data: dict
- :raises RuntimeError: If the raw data does not contain expected values.
- """
- suite_part = data.pop(u"suite_name").lower().replace(u" ", u"_")
- if u"test_name" not in data:
- # There will be no test_id, provide suite_id instead.
- data[u"suite_id"] = suite_part
- return
- test_part = data.pop(u"test_name").lower().replace(u" ", u"_")
- data[u"test_id"] = f"{suite_part}.{test_part}"
- tags = data[u"tags"]
- # Test name does not contain thread count.
- subparts = test_part.split(u"c-", 1)
- if len(subparts) < 2 or subparts[0][-2:-1] != u"-":
- # Physical core count not detected, assume it is a TRex test.
- if u"--" not in test_part:
- raise RuntimeError(f"Cores not found for {subparts}")
- short_name = test_part.split(u"--", 1)[1]
- else:
- short_name = subparts[1]
- # Add threads to test_part.
- core_part = subparts[0][-1] + u"c"
- for tag in tags:
- tag = tag.lower()
- if len(tag) == 4 and core_part == tag[2:] and tag[1] == u"t":
- test_part = test_part.replace(f"-{core_part}-", f"-{tag}-")
- break
- else:
- raise RuntimeError(f"Threads not found for {test_part} tags {tags}")
- # For long name we need NIC model, which is only in suite name.
- last_suite_part = suite_part.split(u".")[-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(u"-", 1)[-1]
- nic_short = Constants.NIC_CODE_TO_SHORT_NAME[nic_code]
- long_name = f"{nic_short}-{test_part}"
- # Set test type.
- test_type = _detect_test_type(data)
- data[u"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.
- data[u"test_name_short"] = short_name
- data[u"test_name_long"] = long_name
-
-
-def _detect_test_type(data):
- """Return test_type, as inferred from robot test tags.
-
- :param data: Raw data, perhaps some fields converted into info data already.
- :type data: dict
- :returns: The inferred test type value.
- :rtype: str
- :raises RuntimeError: If the test tags does not contain expected values.
- """
- tags = data[u"tags"]
- # First 5 options are specific for VPP tests.
- if u"DEVICETEST" in tags:
- test_type = u"device"
- elif u"LDP_NGINX" in tags:
- test_type = u"vsap"
- elif u"HOSTSTACK" in tags:
- test_type = u"hoststack"
- elif u"GSO_TRUE" in tags or u"GSO_FALSE" in tags:
- test_type = u"gso"
- elif u"RECONF" in tags:
- test_type = u"reconf"
- # The remaining 3 options could also apply to DPDK and TRex tests.
- elif u"SOAK" in tags:
- test_type = u"soak"
- elif u"NDRPDR" in tags:
- test_type = u"ndrpdr"
- elif u"MRR" in tags:
- test_type = u"mrr"
- else:
- raise RuntimeError(f"Unable to infer test type from tags: {tags}")
- return test_type
-
-
-def _convert_to_info_in_memory(data):
- """Perform all changes needed for processing of data, return new data.
-
- Data is assumed to be valid for raw schema, so no exceptions are expected.
- The original argument object is not edited,
- a new copy is created for edits and returned,
- because there is no easy way to sort keys in-place.
-
- :param data: The whole composite object to filter and enhance.
- :type data: dict
- :returns: New object with the edited content.
- :rtype: dict
- """
- data = copy.deepcopy(data)
-
- # Drop any SSH log items.
- data[u"log"] = list()
-
- # Duration is computed for every file.
- start_float = dateutil.parser.parse(data[u"start_time"]).timestamp()
- end_float = dateutil.parser.parse(data[u"end_time"]).timestamp()
- data[u"duration"] = end_float - start_float
-
- # Reorder impotant fields to the top.
- sorted_data = dict(version=data.pop(u"version"))
- sorted_data[u"duration"] = data.pop(u"duration")
- sorted_data[u"start_time"] = data.pop(u"start_time")
- sorted_data[u"end_time"] = data.pop(u"end_time")
- sorted_data.update(data)
- data = sorted_data
- # TODO: Do we care about the order of subsequently added fields?
-
- # Convert status into a boolean.
- status = data.pop(u"status", None)
- if status is not None:
- data[u"passed"] = (status == u"PASS")
- if data[u"passed"]:
- # Also truncate success test messages.
- data[u"message"] = u""
-
- # Replace raw names with processed ones, set test_id and test_type.
- _process_test_name(data)
-
- # The rest is only relevant for test case outputs.
- if u"result" not in data:
- return data
- result_node = data[u"result"]
- result_type = result_node[u"type"]
- if result_type == u"unknown":
- # Device or something else not supported.
- return data
-
- # More processing depending on result type. TODO: Separate functions?
-
- # Compute avg and stdev for mrr.
- if result_type == u"mrr":
- rate_node = result_node[u"receive_rate"][u"rate"]
- stats = AvgStdevStats.for_runs(rate_node[u"values"])
- rate_node[u"avg"] = stats.avg
- rate_node[u"stdev"] = stats.stdev
-
- # Multiple processing steps for ndrpdr.
- if result_type != u"ndrpdr":
- return data
- # Filter out invalid latencies.
- for which_key in (u"latency_forward", u"latency_reverse"):
- if which_key not in result_node:
- # Probably just an unidir test.
- continue
- for load in (u"pdr_0", u"pdr_10", u"pdr_50", u"pdr_90"):
- if result_node[which_key][load][u"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 data
-
-
-def _merge_into_suite_info_file(teardown_info_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_info_path: Local filesystem path to teardown info file.
- :type teardown_info_path: str
- :returns: Local filesystem path to newly created suite info file.
- :rtype: str
- """
- # Manual right replace: https://stackoverflow.com/a/9943875
- setup_info_path = u"setup".join(teardown_info_path.rsplit(u"teardown", 1))
- with open(teardown_info_path, u"rt", encoding="utf-8") as file_in:
- teardown_data = json.load(file_in)
- # Transforming setup data into suite data.
- with open(setup_info_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 = dateutil.parser.parse(suite_data[u"start_time"]).timestamp()
- end_float = dateutil.parser.parse(suite_data[u"end_time"]).timestamp()
- suite_data[u"duration"] = end_float - start_float
- setup_log = suite_data.pop(u"log")
- suite_data[u"setup_log"] = setup_log
- suite_data[u"teardown_log"] = teardown_data[u"log"]
-
- suite_info_path = u"suite".join(teardown_info_path.rsplit(u"teardown", 1))
- with open(suite_info_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_info_path)
- os.remove(teardown_info_path)
-
- return suite_info_path
-
-
-def convert_content_to_info(from_raw_path):
- """Read raw output, perform filtering, add derivatves, write info output.
-
- Directory path is created if missing.
-
- When processing teardown, create also suite output using setup info.
-
- :param from_raw_path: Local filesystem path to read raw JSON data from.
- :type from_raw_path: str
- :returns: Local filesystem path to written info JSON file.
- :rtype: str
- :raises RuntimeError: If path or content do not match expectations.
- """
- to_info_path = _raw_to_info_path(from_raw_path)
- with open(from_raw_path, u"rt", encoding="utf-8") as file_in:
- data = json.load(file_in)
-
- data = _convert_to_info_in_memory(data)
-
- with open(to_info_path, u"wt", encoding="utf-8") as file_out:
- json.dump(data, file_out, indent=1)
- if to_info_path.endswith(u"/teardown.info.json"):
- to_info_path = _merge_into_suite_info_file(to_info_path)
- # TODO: Return both paths for validation?
-
- return to_info_path
diff --git a/resources/libraries/python/model/util.py b/resources/libraries/python/model/util.py
index 879f1f28b1..db2ef14bbb 100644
--- a/resources/libraries/python/model/util.py
+++ b/resources/libraries/python/model/util.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:
@@ -52,7 +52,7 @@ def descend(parent_node, key, default_factory=None):
def get_export_data():
- """Return raw_data member of export_json library instance.
+ """Return data member of ExportJson library instance.
This assumes the data has been initialized already.
Return None if Robot is not running.
@@ -62,8 +62,8 @@ def get_export_data():
:raises AttributeError: If library is not imported yet.
"""
instance = BuiltIn().get_library_instance(
- u"resources.libraries.python.model.export_json"
+ u"resources.libraries.python.model.ExportJson"
)
if instance is None:
return None
- return instance.raw_data
+ return instance.data
diff --git a/resources/libraries/python/model/validate.py b/resources/libraries/python/model/validate.py
index c441936ac8..85c4b993c9 100644
--- a/resources/libraries/python/model/validate.py
+++ b/resources/libraries/python/model/validate.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:
@@ -19,27 +19,7 @@ Structure will probably change when we start validation mode file types.
import json
import jsonschema
-
-
-def _get_validator(schema_path):
- """Contruct validator with format checking enabled.
-
- Load json schema from disk.
- Perform validation against meta-schema before returning.
-
- :param schema_path: Local filesystem path to .json file storing the schema.
- :type schema_path: str
- :returns: Instantiated validator class instance.
- :rtype: jsonschema.validators.Validator
- :raises RuntimeError: If the schema is not valid according its meta-schema.
- """
- with open(schema_path, u"rt", encoding="utf-8") as file_in:
- schema = json.load(file_in)
- 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 validator
+import yaml
def get_validators():
@@ -51,9 +31,17 @@ def get_validators():
:rtype: Mapping[str, jsonschema.validators.Validator]
:raises RuntimeError: If schemas are not readable or not valid.
"""
- relative_path = u"docs/model/current/schema/test_case.info.schema.json"
+ relative_path = "resources/model_schema/test_case.schema.yaml"
# Robot is always started when CWD is CSIT_DIR.
- validator = _get_validator(relative_path)
+ 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)
@@ -64,10 +52,11 @@ def validate(file_path, validator):
:param validator: Validator instance to use for validation.
:type file_path: str
:type validator: jsonschema.validators.Validator
- :raises RuntimeError: If schema validation fails.
+ :raises ValidationError: If schema validation fails.
"""
- with open(file_path, u"rt", encoding="utf-8") as file_in:
+ 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 c7a28bc1e4..0000000000
--- a/resources/libraries/python/parsers/JsonParser.py
+++ /dev/null
@@ -1,54 +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.
-
-"""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 e47272f4db..437b1ad3e6 100644
--- a/resources/libraries/python/ssh.py
+++ b/resources/libraries/python/ssh.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:
@@ -25,9 +25,6 @@ from robot.api import logger
from scp import SCPClient, SCPException
from resources.libraries.python.OptionString import OptionString
-from resources.libraries.python.model.ExportLog import (
- export_ssh_command, export_ssh_result, export_ssh_timeout
-)
__all__ = [
u"exec_cmd", u"exec_cmd_no_error", u"SSH", u"SSHTimeout", u"scp_node"
@@ -145,7 +142,7 @@ class SSH:
f"Reconnecting peer done: {node[u'host']}, {node[u'port']}"
)
- def exec_command(self, cmd, timeout=10, log_stdout_err=True, export=True):
+ def exec_command(self, cmd, timeout=10, log_stdout_err=True):
"""Execute SSH command on a new channel on the connected Node.
:param cmd: Command to run on the Node.
@@ -154,12 +151,10 @@ 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.
- :param export: If false, do not attempt JSON export.
Needed for calls outside Robot (e.g. from reservation script).
:type cmd: str or OptionString
:type timeout: int
:type log_stdout_err: bool
- :type export: bool
:returns: return_code, stdout, stderr
:rtype: tuple(int, str, str)
:raises SSHTimeout: If command is not finished in timeout time.
@@ -180,8 +175,6 @@ class SSH:
logger.trace(f"exec_command on {peer} with timeout {timeout}: {cmd}")
- if export:
- export_ssh_command(self._node[u"host"], self._node[u"port"], cmd)
start = monotonic()
chan.exec_command(cmd)
while not chan.exit_status_ready() and timeout is not None:
@@ -197,14 +190,6 @@ class SSH:
duration = monotonic() - start
if duration > timeout:
- if export:
- export_ssh_timeout(
- host=self._node[u"host"],
- port=self._node[u"port"],
- stdout=stdout,
- stderr=stderr,
- duration=duration,
- )
raise SSHTimeout(
f"Timeout exception during execution of command: {cmd}\n"
f"Current contents of stdout buffer: "
@@ -237,33 +222,21 @@ class SSH:
logger.trace(
f"return STDERR {stderr}"
)
- if export:
- export_ssh_result(
- host=self._node[u"host"],
- port=self._node[u"port"],
- code=return_code,
- stdout=stdout,
- stderr=stderr,
- duration=duration,
- )
return return_code, stdout, stderr
def exec_command_sudo(
- self, cmd, cmd_input=None, timeout=30, log_stdout_err=True,
- export=True):
+ self, cmd, cmd_input=None, timeout=30, log_stdout_err=True):
"""Execute SSH command with sudo on a new channel on the connected Node.
:param cmd: Command to be executed.
:param cmd_input: Input redirected to the command.
:param timeout: Timeout.
:param log_stdout_err: If True, stdout and stderr are logged.
- :param export: If false, do not attempt JSON export.
Needed for calls outside Robot (e.g. from reservation script).
:type cmd: str
:type cmd_input: str
:type timeout: int
:type log_stdout_err: bool
- :type export: bool
:returns: return_code, stdout, stderr
:rtype: tuple(int, str, str)
@@ -284,7 +257,7 @@ class SSH:
else:
command = f"sudo -E -S {cmd} <<< \"{cmd_input}\""
return self.exec_command(
- command, timeout, log_stdout_err=log_stdout_err, export=export
+ command, timeout, log_stdout_err=log_stdout_err
)
def exec_command_lxc(
@@ -442,7 +415,7 @@ class SSH:
def exec_cmd(
node, cmd, timeout=600, sudo=False, disconnect=False,
- log_stdout_err=True, export=True
+ log_stdout_err=True
):
"""Convenience function to ssh/exec/return rc, out & err.
@@ -456,7 +429,6 @@ def exec_cmd(
: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.
- :param export: If false, do not attempt JSON export.
Needed for calls outside Robot (e.g. from reservation script).
:type node: dict
:type cmd: str or OptionString
@@ -464,7 +436,6 @@ def exec_cmd(
:type sudo: bool
:type disconnect: bool
:type log_stdout_err: bool
- :type export: bool
:returns: RC, Stdout, Stderr.
:rtype: Tuple[int, str, str]
"""
@@ -486,13 +457,11 @@ def exec_cmd(
try:
if not sudo:
ret_code, stdout, stderr = ssh.exec_command(
- cmd, timeout=timeout, log_stdout_err=log_stdout_err,
- export=export
+ cmd, timeout=timeout, log_stdout_err=log_stdout_err
)
else:
ret_code, stdout, stderr = ssh.exec_command_sudo(
- cmd, timeout=timeout, log_stdout_err=log_stdout_err,
- export=export
+ cmd, timeout=timeout, log_stdout_err=log_stdout_err
)
except SSHException as err:
logger.error(repr(err))
@@ -506,7 +475,7 @@ def exec_cmd(
def exec_cmd_no_error(
node, cmd, timeout=600, sudo=False, message=None, disconnect=False,
- retries=0, include_reason=False, log_stdout_err=True, export=True
+ retries=0, include_reason=False, log_stdout_err=True
):
"""Convenience function to ssh/exec/return out & err.
@@ -526,7 +495,6 @@ def exec_cmd_no_error(
: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.
- :param export: If false, do not attempt JSON export.
Needed for calls outside Robot thread (e.g. parallel framework setup).
:type node: dict
:type cmd: str or OptionString
@@ -537,7 +505,6 @@ def exec_cmd_no_error(
:type retries: int
:type include_reason: bool
:type log_stdout_err: bool
- :type export: bool
:returns: Stdout, Stderr.
:rtype: tuple(str, str)
:raises RuntimeError: If bash return code is not 0.
@@ -545,7 +512,7 @@ def exec_cmd_no_error(
for _ in range(retries + 1):
ret_code, stdout, stderr = exec_cmd(
node, cmd, timeout=timeout, sudo=sudo, disconnect=disconnect,
- log_stdout_err=log_stdout_err, export=export
+ 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 454692807c..22ed3666c3 100644
--- a/resources/libraries/python/topology.py
+++ b/resources/libraries/python/topology.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 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:
@@ -766,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():
@@ -1085,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 8be8230c3d..8403ae4516 100644
--- a/resources/libraries/robot/crypto/ipsec.robot
+++ b/resources/libraries/robot/crypto/ipsec.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:
@@ -240,13 +240,42 @@
| | ... | on all DUT nodes (leaving feature plane workers disabled).
| |
| | VPP Round Robin Rx Placement on all DUTs
-| | ... | ${nodes} | prefix=${EMPTY} | workers=${cpu_dp}
+| | ... | ${nodes} | prefix=${EMPTY} | use_dp_cores=${True}
| | VPP IPSec Crypto SW Scheduler Set Worker on all DUTs
-| | ... | ${nodes} | workers=${cpu_dp} | crypto_enable=${False}
+| | ... | ${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 SPD Flow Cache IPv4 Outbound
+| | | 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/features/acl.robot b/resources/libraries/robot/features/acl.robot
index 1dd706c3ac..f474561a14 100644
--- a/resources/libraries/robot/features/acl.robot
+++ b/resources/libraries/robot/features/acl.robot
@@ -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:
@@ -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/hoststack/hoststack.robot b/resources/libraries/robot/hoststack/hoststack.robot
index 9c81855af4..1033c1c008 100644
--- a/resources/libraries/robot/hoststack/hoststack.robot
+++ b/resources/libraries/robot/hoststack/hoststack.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:
@@ -17,8 +17,10 @@
| Library | resources.libraries.python.HoststackUtil
| Library | resources.libraries.python.NginxUtil
| Library | resources.libraries.python.NsimUtil
+| Library | resources.libraries.python.DMAUtil
| Library | resources.tools.ab.ABTools
| Variables | resources/libraries/python/Constants.py
+| Resource | resources/libraries/robot/features/dma.robot
| Resource | resources/libraries/robot/ip/ip4.robot
| Resource | resources/libraries/robot/nsim/nsim.robot
| Resource | resources/libraries/robot/nginx/default.robot
@@ -33,11 +35,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
@@ -51,7 +50,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}
@@ -66,12 +65,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}
@@ -86,6 +86,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}
@@ -117,7 +118,17 @@
| ... | cpu_cnt=${1}
| ... | cfg_vpp_feature=${Empty}
| ... | namespace=default
-| ... | vcl_config=vcl_iperf3.conf
+| ... | vcl_config=vcl_nginx.conf
+| ... | ld_preload=${True}
+| ... | transparent_tls=${False}
+| ... | json=${True}
+| ... | ip_version=${4}
+| &{nginx_server_with_dma_attr}=
+| ... | role=server
+| ... | cpu_cnt=${1}
+| ... | cfg_vpp_feature=${Empty}
+| ... | namespace=default
+| ... | vcl_config=vcl_dma.conf
| ... | ld_preload=${True}
| ... | transparent_tls=${False}
| ... | json=${True}
@@ -133,11 +144,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
@@ -164,11 +172,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]
@@ -183,16 +188,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}
@@ -227,6 +226,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:*
| |
@@ -246,6 +246,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}
@@ -262,6 +263,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]
@@ -281,6 +284,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:*
| |
@@ -300,6 +304,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}
@@ -316,6 +321,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]
@@ -440,7 +447,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.
| |
@@ -452,11 +459,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
@@ -464,9 +466,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
@@ -518,11 +518,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}
@@ -560,57 +562,62 @@
| | ... | ${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 DUT node
+| Set up LDP or VCL Nginx on DUT1 node
| | [Documentation]
-| | ... | Setup for suites which uses VCL or LDP Nginx on DUT.
+| | ... | 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:*
-| | ... | - dut - DUT node.
-| | ... | Type: string
-| | ... | - 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.
+| | ... | - mode - VCL Nginx or LDP Nginx. Type: string
+| | ... | - rps_cps - Test rps or cps. Type: string
+| | ... | - core_num - Nginx work processes number. Type: int
+| | ... | - qat - Whether to use the qat engine. Type: string
+| | ... | - tls_tcp - TLS or TCP. Type: string
+| | ... | - use_dma - Whether to use DMA, Default: False. Type: bool
| |
| | ... | *Example:*
| |
-| | ... | \| Set up LDP or VCL NGINX on DUT node \| ${dut} |${mode}\
+| | ... | \| Set up LDP or VCL NGINX on DUT1 node \| ${mode}\
| | ... | \| ${rps_cps} \| ${phy_cores} \| ${qat} \| ${tls_tcp} \|
| |
-| | [Arguments] | ${dut} | ${mode} | ${rps_cps} | ${phy_cores} | ${qat}
-| | ... | ${tls_tcp}
+| | [Arguments] | ${mode} | ${rps_cps} | ${phy_cores} | ${qat} | ${tls_tcp}
+| | | ... | ${use_dma}=${False}
| |
-| | Set Interface State | ${dut} | ${DUT1_${int}1}[0] | up
-| | VPP Interface Set IP Address | ${dut} | ${DUT1_${int}1}[0]
+| | 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 | ${dut}
+| | 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 | ${dut} | ${DUT1_${int}1}[0]
-| | Apply Nginx configuration on DUT | ${dut} | ${phy_cores}
-| | Set To Dictionary | ${nginx_server_attr} | ip_address
+| | ${numa}= | Get interfaces numa node | ${DUT1} | ${DUT1_${int}1}[0]
+| | Apply Nginx configuration on DUT | ${DUT1} | ${phy_cores}
+| | ${attr}= | Run Keyword If | ${use_dma} == ${True}
+| | ... | Set Variable | ${nginx_server_with_dma_attr}
+| | ... | ELSE | Set Variable | ${nginx_server_attr}
+| | Set To Dictionary | ${attr} | ip_address
| | ... | ${dut_ip_addrs}[0]
-| | ${core_list}= | Cpu list per node str | ${dut} | ${numa}
-| | ... | skip_cnt=${skip_cnt} | cpu_cnt=${nginx_server_attr}[cpu_cnt]
-| | ${cpu_idle_list}= | Get cpu idle list | ${dut} | ${numa}
-| | ... | ${smt_used} | ${cpu_alloc_str}
-| | ${nginx_server}= | Get Nginx Command | ${nginx_server_attr}
+| | ${core_list}= | Cpu list per node str | ${DUT1} | ${numa}
+| | ... | skip_cnt=${skip_cnt} | cpu_cnt=${attr}[cpu_cnt]
+| | ... | smt_used=${smt_used}
+| | ${cpu_idle}= | Cpu List per node | ${DUT1} | ${numa}
+| | ${cpu_idle_list}= | Get Slice From List | ${cpu_idle}
+| | ... | ${${skip_cnt} + ${attr}[cpu_cnt]}
+| | ${nginx_server}= | Get Nginx Command | ${attr}
| | ... | ${nginx_version} | ${packages_dir}
-| | ${server_pid}= | Start Hoststack Test Program
-| | ... | ${dut} | ${nginx_server_attr}[namespace] | ${core_list}
+| | Start Hoststack Test Program
+| | ... | ${DUT1} | ${attr}[namespace] | ${core_list}
| | ... | ${nginx_server}
-| | Taskset Nginx PID to idle cores | ${dut} | ${cpu_idle_list}
+| | Get Hoststack Test Program Logs | ${DUT1} | ${nginx_server}
+| | Taskset Nginx PID to idle cores | ${DUT1} | ${cpu_idle_list}
| Measure TLS requests or connections per second
| | [Documentation]
@@ -629,8 +636,67 @@
| |
| | [Arguments] | ${ciphers} | ${files} | ${tls_tcp} | ${mode}
| |
-| | ${output}= | Run ab | ${tg} | ${dut_ip_addrs}[0] | ${ab_ip_addrs}[0]
+| | ${dut_ip_addrs_str} | Evaluate | ','.join(${dut_ip_addrs})
+| | ${ad_ip_addrs_str} | Evaluate | ','.join(${ab_ip_addrs})
+| | ${output}= | Run ab | ${tg} | ${dut_ip_addrs_str} | ${ad_ip_addrs_str}
| | ... | ${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
+
+| Add Additional Startup Configuration For DMA On All DUTs
+| | [Documentation]
+| | ... | Add additional startup configuration for DMA on all DUTs
+| |
+| | [Arguments] | ${use_dma}=${True}
+| |
+| | FOR | ${dut} | IN | @{duts}
+| | | Import Library | resources.libraries.python.VppConfigGenerator
+| | | ... | WITH NAME | ${dut}
+| | | Run keyword | ${dut}.Add Session Event Queues Memfd Segment
+| | | Run keyword | ${dut}.Add TCP Congestion Control Algorithm
+| | | Run keyword | ${dut}.Add TCP Tso
+| | | Run keyword | ${dut}.Add Session Enable
+| | | Run keyword If | ${use_dma} == ${True}
+| | | ... | ${dut}.Add Session Use Dma
+| | | Run keyword If | ${use_dma} == ${True}
+| | | ... | Enable DMA WQs on all DUTs
+| | | Run keyword If | ${use_dma} == ${True}
+| | | ... | ${dut}.Add DMA Dev | ${${dut}_dma_wqs}
+| | | Run keyword If | '${nic_driver}' == 'vfio-pci'
+| | | ... | ${dut}.Add DPDK Dev Default Tso
+| | | Run keyword If | '${nic_driver}' == 'vfio-pci'
+| | | ... | ${dut}.Add DPDK Enable Tcp Udp Checksum
+| | | Run keyword | ${dut}.Add Api Trace
+| | END
diff --git a/resources/libraries/robot/ip/ip4.robot b/resources/libraries/robot/ip/ip4.robot
index ef5b27f7de..e3ebd0e289 100644
--- a/resources/libraries/robot/ip/ip4.robot
+++ b/resources/libraries/robot/ip/ip4.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:
@@ -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 edb264190c..506e5d844a 100644
--- a/resources/libraries/robot/ip/ip6.robot
+++ b/resources/libraries/robot/ip/ip6.robot
@@ -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:
@@ -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/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_xconnect.robot b/resources/libraries/robot/l2/l2_xconnect.robot
index 59199b6c90..b782602827 100644
--- a/resources/libraries/robot/l2/l2_xconnect.robot
+++ b/resources/libraries/robot/l2/l2_xconnect.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:
@@ -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 dd4642c505..843b25d958 100644
--- a/resources/libraries/robot/l2/tagging.robot
+++ b/resources/libraries/robot/l2/tagging.robot
@@ -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:
@@ -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/overlay/srv6.robot b/resources/libraries/robot/overlay/srv6.robot
index 9462a71189..83ec8949a4 100644
--- a/resources/libraries/robot/overlay/srv6.robot
+++ b/resources/libraries/robot/overlay/srv6.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:
@@ -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/performance/performance_actions.robot b/resources/libraries/robot/performance/performance_actions.robot
index 3235dfa868..1d2ea52274 100644
--- a/resources/libraries/robot/performance/performance_actions.robot
+++ b/resources/libraries/robot/performance/performance_actions.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -95,6 +95,81 @@
| | ... | 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 vpp-runtime-iperf3
@@ -120,6 +195,7 @@
| | | ... | 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
@@ -134,6 +210,7 @@
| |
| | Run Telemetry On All DUTs
| | ... | ${nodes} | profile=vppctl_clear_stats.yaml
+| | ... | export=${False}
| Additional Statistics Action For vpp-enable-packettrace
| | [Documentation]
@@ -155,3 +232,4 @@
| |
| | 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 1313788d5e..6ee493a17e 100644
--- a/resources/libraries/robot/performance/performance_display.robot
+++ b/resources/libraries/robot/performance/performance_display.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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,35 +17,6 @@
| ... | This includes checks to fail test.
*** Keywords ***
-| Check NDRPDR interval validity
-| | [Documentation]
-| | ... | Extract loss ratio of lower bound of the interval.
-| | ... | Fail if it does not reach the allowed value.
-| |
-| | ... | *Arguments:*
-| | ... | - interval - Measured interval. Type: ReceiveRateInterval
-| | ... | - packet_loss_ratio - Accepted loss (0.0 for NDR). Type: float
-| |
-| | ... | *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_lr} = | Set Variable | ${lower_bound.loss_ratio}
-| | Return From Keyword If | ${lower_bound_lr} <= ${packet_loss_ratio}
-| | Set Test Variable | \${rate_for_teardown} | ${lower_bound.target_tr}
-| | ${message}= | Catenate | SEPARATOR=${SPACE}
-| | ... | Minimal rate loss ratio ${lower_bound_lr}
-| | ... | 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_lr} >= 1.0
-| | ... | ${message}${\n}${message_zero} | ${message}${\n}${message_other}
-| | Fail | ${message}
-
| Compute Bandwidth
| | [Documentation]
| | ... | Compute (bidir) bandwidth from given (unidir) transaction rate.
@@ -77,8 +48,8 @@
| | ... | due to reconfiguration under traffic.
| |
| | ... | *Arguments:*
-| | ... | - result - Result of bidirectional measurement.
-| | ... | Type: ReceiveRateMeasurement
+| | ... | - result - Result of MLRsearch invocation for one search goal.
+| | ... | Type: StatInterval
| |
| | ... | *Example:*
| |
@@ -86,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,
-| | ... | aggregated, 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
@@ -115,8 +83,8 @@
| | ... | - transaction_type - String identifier to determine how to count
| | ... | transactions. Default is "packet".
| | ... | *Arguments:*
-| | ... | - result - Measured result data. Aggregated 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:*
| |
@@ -124,21 +92,18 @@
| |
| | [Arguments] | ${result}
| |
-| | Display single bound | NDR_LOWER
-| | ... | ${result[0].measured_low.target_tr}
-| | ... | ${result[0].measured_low.latency}
-| | Display single bound | NDR_UPPER
-| | ... | ${result[0].measured_high.target_tr}
-| | Display single bound | PDR_LOWER
-| | ... | ${result[1].measured_low.target_tr}
-| | ... | ${result[1].measured_low.latency}
-| | Display single bound | PDR_UPPER
-| | ... | ${result[1].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
@@ -148,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
| |
@@ -169,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 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
@@ -189,20 +153,22 @@
| | ... | 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}
+| | Run Keyword And Return
+| | ... | Display Single PPS Bound | ${text} | ${tps} | ${latency}
| Display Single CPS Bound
| | [Documentation]
@@ -225,9 +191,8 @@
| | Set Test Message | ${\n}${text}: ${tps} CPS | append=yes
| | ${bandwidth} | ${pps} = | Compute Bandwidth | ${tps}
| | Export Search Bound | ${text} | ${tps} | cps | ${bandwidth * 1e9}
-| | Return From Keyword If | not """${latency}"""
-| | Set Test Message | ${\n}LATENCY [min/avg/max/hdrh] per stream: ${latency}
-| | ... | append=yes
+| | Run Keyword If | """${latency}""" | Set Test Message
+| | ... | ${\n}LATENCY [min/avg/max/hdrh] per stream: ${latency} | append=yes
| Display Single PPS Bound
| | [Documentation]
@@ -261,6 +226,5 @@
| | Set Test Message | ${\n}${text}: ${pps} pps, | append=yes
| | Set Test Message | ${bandwidth} Gbps (initial) | append=yes
| | Export Search Bound | ${text} | ${pps} | pps | ${bandwidth * 1e9}
-| | Return From Keyword If | not """${latency}"""
-| | Set Test Message | ${\n}LATENCY [min/avg/max/hdrh] per stream: ${latency}
-| | ... | append=yes
+| | 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 c90fc7434d..4211486a19 100644
--- a/resources/libraries/robot/performance/performance_utils.robot
+++ b/resources/libraries/robot/performance/performance_utils.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -73,11 +73,28 @@
| | ${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_soft}
-| | ... | maximum_transmit_rate=${max_rate}
+| | ... | min_load=${min_rate_soft}
+| | ... | max_load=${max_rate}
| | ... | plr_target=${1e-7}
| | ... | tdpt=${0.1}
| | ... | initial_count=${50}
@@ -95,6 +112,15 @@
| | ${lower} | ${upper} = | Display result of soak search
| | ... | ${average} | ${stdev}
| | Set Test Variable | \${rate for teardown} | ${lower}
+| | # 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}.
@@ -116,7 +142,7 @@
| | ... | - traffic_profile - Name of module defining traffc for measurements.
| | ... | Type: string
| | ... | - frame_size - L2 Frame Size [B] or IMIX string. Type: integer or
-| | ... | string
+| | ... | string.
| | ... | - max_rate - Calculated maximal unidirectional transmit rate [tps].
| | ... | Type: float
| | ... | - resetter - Callable to reset DUT state before each trial.
@@ -134,8 +160,7 @@
| | ${disable_latency} = | Get Disable Latency
| | ${max_rate} = | Get Max Rate
| | ${min_rate_soft} = | Get Min Rate Soft
-| | # \${packet_loss_ratio} is used twice so it is worth a variable.
-| | ${packet_loss_ratio} = | Get Packet Loss Ratio
+| | ${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
@@ -145,17 +170,18 @@
| | ${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_soft}
-| | ... | 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=${1200.0}
+| | ... | 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}
@@ -165,19 +191,18 @@
| | ... | use_latency=${use_latency}
| | ... | ramp_up_duration=${ramp_up_duration}
| | ... | ramp_up_rate=${ramp_up_rate}
-| | Display result of NDRPDR search | ${result}
-| | Check NDRPDR interval validity | ${result[1]}
-| | ... | ${packet_loss_ratio}
-| | Check NDRPDR interval validity | ${result[0]}
-| | ${pdr} = | Set Variable | ${result[1].measured_low.target_tr}
-| | ${ndr} = | Set Variable | ${result[0].measured_low.target_tr}
-| | # We expect NDR and PDR to have different-looking stats.
+| | ${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}
@@ -232,17 +257,18 @@
| | ${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_soft}
-| | ... | 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=${1200}
+| | ... | final_trial_duration=${1.0}
+| | ... | duration_sum=${11.0}
+| | ... | preceding_targets=${1}
+| | ... | search_duration_max=${1200}
| | ... | ppta=${ppta}
| | ... | resetter=${resetter}
| | ... | traffic_directions=${traffic_directions}
@@ -252,8 +278,8 @@
| | ... | use_latency=${use_latency}
| | ... | ramp_up_duration=${ramp_up_duration}
| | ... | ramp_up_rate=${ramp_up_rate}
-| | Check NDRPDR interval validity | ${result[0]}
-| | Return From Keyword | ${result[0].measured_low.target_tr}
+| | ${ret} = | Convert To Number | ${result[0].relevant_lower_bound}
+| | Return From Keyword | ${ret}
| Measure and show latency at specified rate
| | [Documentation]
@@ -330,7 +356,7 @@
| | ... | \| Send ramp-up traffic \|
| |
| | ${ramp_up_rate} = | Get Ramp Up Rate
-| | Run Keyword Unless | ${ramp_up_rate} > 0.0 | Fail | Ramp up rate missing!
+| | 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
@@ -420,9 +446,10 @@
| | | ... | 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.
-| | | ${value} = | Set Variable | ${result.approximated_receive_rate}
-| | | # TODO: Add correct bandwidth computation.
-| | | Append Mrr Value | ${value} | ${export_mrr_unit}
+| | | ${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 | @{stat_post_trial}
@@ -451,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
@@ -478,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:*
| |
@@ -487,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}
@@ -547,6 +581,7 @@
| | | ... | 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
@@ -603,7 +638,6 @@
| | ... | transaction_scale=${transaction_scale}
| | ... | transaction_type=${transaction_type}
| | ... | use_latency=${use_latency}
-| | # TODO: Ramp-up?
| Stop Running Traffic
| | [Documentation]
@@ -640,6 +674,8 @@
| |
| | ... | \| 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
@@ -647,7 +683,6 @@
| | ${use_latency} = | Get Use Latency
| | ${unit} = | Set Variable If | """_cps""" in """${transaction_type}"""
| | ... | cps | pps
-| | # The following also sets \${rate_for_teardown}
| | ${results} = | Send traffic at specified rate
| | ... | rate=${max_rate}
| | ... | trial_duration=${trial_duration}
diff --git a/resources/libraries/robot/performance/performance_vars.robot b/resources/libraries/robot/performance/performance_vars.robot
index 0721634f71..a0fa277e4c 100644
--- a/resources/libraries/robot/performance/performance_vars.robot
+++ b/resources/libraries/robot/performance/performance_vars.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -404,6 +404,8 @@
| | ... | *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:*
| |
@@ -413,11 +415,14 @@
| | Set Numeric Frame Sizes
| | ${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]
-| | ... | 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.
@@ -447,6 +452,8 @@
| | ... | Type: float
| | ... | - 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
| | ... | - 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
diff --git a/resources/libraries/robot/shared/container.robot b/resources/libraries/robot/shared/container.robot
index 931508bdc9..9f08e6b1d4 100644
--- a/resources/libraries/robot/shared/container.robot
+++ b/resources/libraries/robot/shared/container.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:
@@ -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}
@@ -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}
diff --git a/resources/libraries/robot/shared/default.robot b/resources/libraries/robot/shared/default.robot
index 08646d9054..2dc78941b3 100644
--- a/resources/libraries/robot/shared/default.robot
+++ b/resources/libraries/robot/shared/default.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 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,13 +28,15 @@
| 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.export_json
+| 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
@@ -43,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
|
@@ -84,8 +87,6 @@
| | ... | 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 \|
@@ -96,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.
@@ -171,19 +149,20 @@
| | | Run Keyword | ${dut}.Add Unix Log
| | | Run Keyword | ${dut}.Add Unix CLI Listen
| | | Run Keyword | ${dut}.Add Unix CLI No Pager
-| | | Run Keyword | ${dut}.Add Unix Nodaemon
+| | | 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 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 | 2G
+| | | 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
@@ -208,15 +187,12 @@
| | [Arguments] | ${phy_cores} | ${rx_queues}=${None} | ${rxd}=${None}
| | ... | ${txd}=${None}
| |
+| | Create compute resources variables
+| | ... | ${phy_cores} | rx_queues=${rx_queues} | rxd=${rxd} | txd=${txd}
| | FOR | ${dut} | IN | @{duts}
-| | | &{compute_resource_info}= | Get Affinity Vswitch
-| | | ... | ${nodes} | ${dut} | ${phy_cores} | rx_queues=${rx_queues}
-| | | ... | rxd=${rxd} | txd=${txd}
-| | | Set Test Variable | &{compute_resource_info}
-| | | Create compute resources variables
-| | | 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}
+| | | ... | ${dut}.Add CPU Corelist Workers | ${${dut}_cpu_wt}
| | | Run Keyword | ${dut}.Add Buffers Per Numa | ${buffers_numa}
| | END
@@ -227,6 +203,22 @@
| | ... | _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}
diff --git a/resources/libraries/robot/shared/interfaces.robot b/resources/libraries/robot/shared/interfaces.robot
index 058255844b..4af68d0e28 100644
--- a/resources/libraries/robot/shared/interfaces.robot
+++ b/resources/libraries/robot/shared/interfaces.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 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
@@ -169,6 +165,8 @@
| | 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
@@ -179,11 +177,8 @@
| | ... | Pre-initialize rdma-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=1518
-| | FOR | ${dut} | IN | @{duts}
+| | | Set Interface MTU | ${nodes['${dut}']} | ${${dut}_pf_pci}
+| | | ... | mtu=${recommended_mtu}
| | | Set Interface Flow Control
| | | ... | ${nodes['${dut}']} | ${${dut}_pf_pci} | rxf="off" | txf="off"
| | END
@@ -193,13 +188,27 @@
| | ... | 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=1518
| | | Set Interface Flow Control
| | | ... | ${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
| | [Documentation]
@@ -337,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
@@ -349,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]
@@ -437,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]
@@ -829,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/suite_setup.robot b/resources/libraries/robot/shared/suite_setup.robot
index c01233ce05..5c92ad9f52 100644
--- a/resources/libraries/robot/shared/suite_setup.robot
+++ b/resources/libraries/robot/shared/suite_setup.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -241,53 +241,40 @@
| | ${type} = | Get TG Type | ${nodes}[TG]
| | ${version} = | Get TG Version | ${nodes}[TG]
| | Export TG Type And Version | ${type} | ${version}
-| | 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}
+| | 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
+| | ... | 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
-| | ... | ${tg} | ${TG_pf1}[0] | ${TG_pf2}[0]
-| | ... | ${tg} | ${TG_pf2}[0]
-| | ... | ${tg} | ${TG_pf1}[0]
-| | ... | ${osi_layer}
+| | Initialize traffic generator | ${osi_layer} | ${nic_pfs}
| Additional Suite Setup Action For iPerf3
| | [Documentation]
| | ... | Additional Setup for suites which uses performance measurement over
| | ... | iPerf3.
| |
-| | ${type} = | Get iPerf Type | ${nodes}[TG]
+| | ${type} = | Get iPerf Type
| | ${version} = | Get iPerf Version | ${nodes}[TG]
| | Export TG Type And Version | ${type} | ${version}
-| Additional Suite Setup Action For ipsechw
+| 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}
+| | ... | ${nginx_version}
| Additional Suite Setup Action For vppecho
| | [Documentation]
@@ -305,15 +292,16 @@
| | ${running}= | Is TRex running | ${tg}
| | Run keyword if | ${running}==${True} | Teardown traffic generator | ${tg}
| | ${curr_driver}= | Get PCI dev driver | ${tg}
-| | ... | ${tg['interfaces']['${tg_if1}']['pci_address']}
+| | ... | ${tg['interfaces']['${TG_pf1}[0]']['pci_address']}
| | Run keyword if | '${curr_driver}'!='${None}'
| | ... | PCI Driver Unbind | ${tg} |
-| | ... | ${tg['interfaces']['${tg_if1}']['pci_address']}
-| | ${driver}= | Get Variable Value | ${tg['interfaces']['${tg_if1}']['driver']}
+| | ... | ${tg['interfaces']['${TG_pf1}[0]']['pci_address']}
+| | ${driver}= | Get Variable Value
+| | ... | ${tg['interfaces']['${TG_pf1}[0]']['driver']}
| | PCI Driver Bind | ${tg}
-| | ... | ${tg['interfaces']['${tg_if1}']['pci_address']} | ${driver}
+| | ... | ${tg['interfaces']['${TG_pf1}[0]']['pci_address']} | ${driver}
| | ${intf_name}= | Get Linux interface name | ${tg}
-| | ... | ${tg['interfaces']['${tg_if1}']['pci_address']}
+| | ... | ${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}
@@ -321,6 +309,18 @@
| | | ... | ${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]
diff --git a/resources/libraries/robot/shared/suite_teardown.robot b/resources/libraries/robot/shared/suite_teardown.robot
index ab6d3b6f8c..810c8bb066 100644
--- a/resources/libraries/robot/shared/suite_teardown.robot
+++ b/resources/libraries/robot/shared/suite_teardown.robot
@@ -73,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 3bc88858c0..22e017fd6f 100644
--- a/resources/libraries/robot/shared/test_setup.robot
+++ b/resources/libraries/robot/shared/test_setup.robot
@@ -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:
@@ -49,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 6bfb532fbe..f590e8a7cd 100644
--- a/resources/libraries/robot/shared/test_teardown.robot
+++ b/resources/libraries/robot/shared/test_teardown.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -199,6 +199,8 @@
| | ${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}
diff --git a/resources/libraries/robot/shared/vm.robot b/resources/libraries/robot/shared/vm.robot
index 029956c6c0..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}
@@ -116,8 +116,9 @@
| | ... | rxq_count_int=${rxq_count_int}
| | ... | 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}
diff --git a/resources/libraries/robot/wireguard/wireguard.robot b/resources/libraries/robot/wireguard/wireguard.robot
index ca794d0c36..f85c0eb7b1 100644
--- a/resources/libraries/robot/wireguard/wireguard.robot
+++ b/resources/libraries/robot/wireguard/wireguard.robot
@@ -56,3 +56,11 @@
| | ... | 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
index bb9d1c70ae..e2e1fd52f1 100644
--- a/resources/templates/telemetry/bpf_runtime.yaml
+++ b/resources/templates/telemetry/bpf_runtime.yaml
@@ -35,6 +35,7 @@ logging:
handlers: [console_stdout, console_stderr]
scheduler:
duration: 1
+ sample_period: 100
programs:
- name: bundle_bpf
metrics:
@@ -46,6 +47,41 @@ programs:
- 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
@@ -53,15 +89,85 @@ programs:
- name
- cpu
- pid
- - name: llc_reference
- documentation: Last level cache operations by type
+ 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
- - name: llc_miss
- documentation: Last level cache operations by type
+ 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
@@ -69,21 +175,9 @@ programs:
- pid
events:
- type: 0x0 # HARDWARE
- name: 0x0 # PERF_COUNT_HW_CPU_CYCLES
- target: on_cpu_cycle
- table: cpu_cycle
- - type: 0x0 # HARDWARE
- name: 0x1 # PERF_COUNT_HW_INSTRUCTIONS
- target: on_cpu_instruction
- table: cpu_instruction
- - type: 0x0 # HARDWARE
- name: 0x2 # PERF_COUNT_HW_CACHE_REFERENCES
- target: on_cache_reference
- table: llc_reference
- - type: 0x0 # HARDWARE
name: 0x3 # PERF_COUNT_HW_CACHE_MISSES
target: on_cache_miss
- table: llc_miss
+ table: cache_miss
code: |
#include <linux/ptrace.h>
#include <uapi/linux/bpf_perf_event.h>
@@ -96,10 +190,7 @@ programs:
char name[TASK_COMM_LEN];
};
- BPF_HASH(llc_miss, struct key_t);
- BPF_HASH(llc_reference, struct key_t);
- BPF_HASH(cpu_instruction, struct key_t);
- BPF_HASH(cpu_cycle, struct key_t);
+ 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();
@@ -107,31 +198,555 @@ programs:
bpf_get_current_comm(&(key->name), sizeof(key->name));
}
- int on_cpu_cycle(struct bpf_perf_event_data *ctx) {
+ int on_cache_miss(struct bpf_perf_event_data *ctx) {
struct key_t key = {};
get_key(&key);
- cpu_cycle.increment(key, ctx->sample_period);
+ cache_miss.increment(key, ctx->sample_period);
return 0;
}
- int on_cpu_instruction(struct bpf_perf_event_data *ctx) {
+# - 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);
- cpu_instruction.increment(key, ctx->sample_period);
+ sw_context_switches.increment(key, ctx->sample_period);
return 0;
}
- int on_cache_reference(struct bpf_perf_event_data *ctx) {
+# - 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);
- llc_reference.increment(key, ctx->sample_period);
+ sw_page_faults_min.increment(key, ctx->sample_period);
return 0;
}
- int on_cache_miss(struct bpf_perf_event_data *ctx) {
+ - 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);
- llc_miss.increment(key, ctx->sample_period);
+ 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
index 2188588827..72c20604ee 100644
--- a/resources/templates/telemetry/vpp_clear_stats.yaml
+++ b/resources/templates/telemetry/vpp_clear_stats.yaml
@@ -41,40 +41,50 @@ programs:
gauge:
- name: calls
documentation: Number of calls total
+ namespace: vpp
+ subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
- thread_lcore
- name: vectors
documentation: Number of vectors total
+ namespace: vpp
+ subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
- thread_lcore
- name: suspends
documentation: Number of suspends total
+ namespace: vpp
+ subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
- thread_lcore
- name: clocks
documentation: Number of clocks total
+ namespace: vpp
+ subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
- thread_lcore
- name: vectors_calls
documentation: Number of vectors per call
+ namespace: vpp
+ subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
@@ -86,66 +96,92 @@ programs:
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
@@ -156,31 +192,43 @@ programs:
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
@@ -191,6 +239,8 @@ programs:
gauge:
- name: node_counter
documentation: Node counter
+ namespace: vpp
+ subsystem: node
labelnames:
- name
- reason
@@ -204,12 +254,16 @@ programs:
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
diff --git a/resources/templates/telemetry/vpp_runtime.yaml b/resources/templates/telemetry/vpp_runtime.yaml
index b9a2368981..d7beb23cc6 100644
--- a/resources/templates/telemetry/vpp_runtime.yaml
+++ b/resources/templates/telemetry/vpp_runtime.yaml
@@ -38,24 +38,13 @@ scheduler:
programs:
- name: bundle_vpp
metrics:
- info:
- - name: version
- documentation: VPP version
- namespace: vpp
- subsystem: version
- labelnames:
- - version
- code: |
- show version
- - name: bundle_vpp
- metrics:
gauge:
- name: calls
documentation: Number of calls total
namespace: vpp
subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
@@ -65,7 +54,7 @@ programs:
namespace: vpp
subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
@@ -75,7 +64,7 @@ programs:
namespace: vpp
subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
@@ -85,7 +74,7 @@ programs:
namespace: vpp
subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
@@ -95,7 +84,7 @@ programs:
namespace: vpp
subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
@@ -107,166 +96,12 @@ programs:
- 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
- wait {duration}
- show interface
- - name: bundle_vpp
- metrics:
- gauge:
- - name: node_counter
- documentation: Node counter
- namespace: vpp
- subsystem: counters
- labelnames:
- - name
- - reason
- - severity
- - thread_name
- - thread_id
- code: |
- clear node counters
- wait {duration}
- show node counters verbose
- - name: bundle_vpp
- metrics:
- gauge:
- - name: context_switches
- documentation: Per-thread context switches
- namespace: vpp
- subsystem: context_switches
- labelnames:
- - name
- - id
- code: |
- perfmon reset
- perfmon start bundle context-switches
- wait {duration}
- perfmon stop
- show perfmon statistics
- - name: bundle_vpp
- metrics:
- gauge:
- - name: minor_page_faults
- documentation: Per-thread page faults (minor)
- namespace: vpp
- subsystem: page_faults
- labelnames:
- - name
- - id
- - name: major_page_faults
- documentation: Per-thread page faults (major)
- namespace: vpp
- subsystem: page_faults
- labelnames:
- - name
- - id
- code: |
- perfmon reset
- perfmon start bundle page-faults
- wait {duration}
- perfmon stop
- show perfmon statistics
- - name: bundle_vpp
- metrics:
- gauge:
- name: calls
documentation: Instructions/packet, cycles/packet and IPC (calls)
namespace: vpp
subsystem: inst_and_clock
labelnames:
- - name
+ - node_name
- thread_name
- thread_id
- name: packets
@@ -274,7 +109,7 @@ programs:
namespace: vpp
subsystem: inst_and_clock
labelnames:
- - name
+ - node_name
- thread_name
- thread_id
- name: packets_per_call
@@ -282,7 +117,7 @@ programs:
namespace: vpp
subsystem: inst_and_clock
labelnames:
- - name
+ - node_name
- thread_name
- thread_id
- name: clocks_per_packets
@@ -290,7 +125,7 @@ programs:
namespace: vpp
subsystem: inst_and_clock
labelnames:
- - name
+ - node_name
- thread_name
- thread_id
- name: instructions_per_packets
@@ -298,7 +133,7 @@ programs:
namespace: vpp
subsystem: inst_and_clock
labelnames:
- - name
+ - node_name
- thread_name
- thread_id
- name: ipc
@@ -306,7 +141,7 @@ programs:
namespace: vpp
subsystem: inst_and_clock
labelnames:
- - name
+ - node_name
- thread_name
- thread_id
code: |
@@ -323,7 +158,7 @@ programs:
namespace: vpp
subsystem: cache_hierarchy
labelnames:
- - name
+ - node_name
- thread_name
- thread_id
- name: l1_miss
@@ -331,7 +166,7 @@ programs:
namespace: vpp
subsystem: cache_hierarchy
labelnames:
- - name
+ - node_name
- thread_name
- thread_id
- name: l2_hit
@@ -339,7 +174,7 @@ programs:
namespace: vpp
subsystem: cache_hierarchy
labelnames:
- - name
+ - node_name
- thread_name
- thread_id
- name: l2_miss
@@ -347,7 +182,7 @@ programs:
namespace: vpp
subsystem: cache_hierarchy
labelnames:
- - name
+ - node_name
- thread_name
- thread_id
- name: l3_hit
@@ -355,7 +190,7 @@ programs:
namespace: vpp
subsystem: cache_hierarchy
labelnames:
- - name
+ - node_name
- thread_name
- thread_id
- name: l3_miss
@@ -363,7 +198,7 @@ programs:
namespace: vpp
subsystem: cache_hierarchy
labelnames:
- - name
+ - node_name
- thread_name
- thread_id
code: |
@@ -372,151 +207,3 @@ programs:
wait {duration}
perfmon stop
show perfmon statistics
- - name: bundle_vpp
- metrics:
- gauge:
- - name: calls
- documentation: Load operations (calls)
- namespace: vpp
- subsystem: load_blocks
- labelnames:
- - name
- - thread_name
- - thread_id
- - name: packets
- documentation: Load operations (packets)
- namespace: vpp
- subsystem: load_blocks
- labelnames:
- - name
- - thread_name
- - thread_id
- code: |
- perfmon reset
- perfmon start bundle load-blocks
- wait {duration}
- perfmon stop
- show perfmon statistics
- - name: bundle_vpp
- metrics:
- gauge:
- - name: branches_per_call
- documentation: Branches/call
- namespace: vpp
- subsystem: branch_mispred
- labelnames:
- - name
- - thread_name
- - thread_id
- - name: branches_per_packet
- documentation: Branches/packet
- namespace: vpp
- subsystem: branch_mispred
- labelnames:
- - name
- - thread_name
- - thread_id
- - name: taken_per_call
- documentation: Taken/call
- namespace: vpp
- subsystem: branch_mispred
- labelnames:
- - name
- - thread_name
- - thread_id
- - name: taken_per_packet
- documentation: Taken/packet
- namespace: vpp
- subsystem: branch_mispred
- labelnames:
- - name
- - thread_name
- - thread_id
- - name: mis_predictions
- documentation: Mis-predictions
- namespace: vpp
- subsystem: branch_mispred
- labelnames:
- - name
- - thread_name
- - thread_id
- code: |
- perfmon reset
- perfmon start bundle branch-mispred
- wait {duration}
- perfmon stop
- show perfmon statistics
- - name: bundle_vpp
- metrics:
- gauge:
- - name: lvl0
- documentation: Branches/call
- namespace: vpp
- subsystem: power_licensing
- labelnames:
- - name
- - thread_name
- - thread_id
- - name: lvl1
- documentation: Branches/packet
- namespace: vpp
- subsystem: power_licensing
- labelnames:
- - name
- - thread_name
- - thread_id
- - name: lvl2
- documentation: Taken/call
- namespace: vpp
- subsystem: power_licensing
- labelnames:
- - name
- - thread_name
- - thread_id
- - name: throttle
- documentation: Taken/packet
- namespace: vpp
- subsystem: power_licensing
- labelnames:
- - name
- - thread_name
- - thread_id
- code: |
- perfmon reset
- perfmon start bundle power-licensing
- wait {duration}
- perfmon stop
- show perfmon statistics
- - name: bundle_vpp
- metrics:
- gauge:
- - name: runtime
- documentation: RunTime
- namespace: vpp
- subsystem: memory_bandwidth
- labelnames:
- - name
- - name: reads_mbs
- documentation: Reads (MB/s)
- namespace: vpp
- subsystem: memory_bandwidth
- labelnames:
- - name
- - name: writes_mbs
- documentation: Writes (MB/s)
- namespace: vpp
- subsystem: memory_bandwidth
- labelnames:
- - name
- - name: total_mbs
- documentation: Total (MB/s)
- namespace: vpp
- subsystem: memory_bandwidth
- labelnames:
- - name
- code: |
- perfmon reset
- perfmon start bundle memory-bandwidth
- 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
index dc900e6386..626839f410 100644
--- a/resources/templates/telemetry/vpp_show_stats.yaml
+++ b/resources/templates/telemetry/vpp_show_stats.yaml
@@ -41,40 +41,50 @@ programs:
counter:
- name: calls
documentation: Number of calls total
+ namespace: vpp
+ subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
- thread_lcore
- name: vectors
documentation: Number of vectors total
+ namespace: vpp
+ subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
- thread_lcore
- name: suspends
documentation: Number of suspends total
+ namespace: vpp
+ subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
- thread_lcore
- name: clocks
documentation: Number of clocks total
+ namespace: vpp
+ subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
- thread_lcore
- name: vectors_calls
documentation: Number of vectors per call
+ namespace: vpp
+ subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
@@ -86,66 +96,92 @@ programs:
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
@@ -156,31 +192,43 @@ programs:
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
@@ -191,6 +239,8 @@ programs:
counter:
- name: node_counter
documentation: Node counter
+ namespace: vpp
+ subsystem: node
labelnames:
- name
- reason
diff --git a/resources/templates/telemetry/vpp_test_teardown.yaml b/resources/templates/telemetry/vpp_test_teardown.yaml
index 37618bb852..ac096526ce 100644
--- a/resources/templates/telemetry/vpp_test_teardown.yaml
+++ b/resources/templates/telemetry/vpp_test_teardown.yaml
@@ -41,40 +41,50 @@ programs:
counter:
- name: calls
documentation: Number of calls total
+ namespace: vpp
+ subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
- thread_lcore
- name: vectors
documentation: Number of vectors total
+ namespace: vpp
+ subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
- thread_lcore
- name: suspends
documentation: Number of suspends total
+ namespace: vpp
+ subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
- thread_lcore
- name: clocks
documentation: Number of clocks total
+ namespace: vpp
+ subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
- thread_lcore
- name: vectors_calls
documentation: Number of vectors per call
+ namespace: vpp
+ subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
@@ -86,66 +96,92 @@ programs:
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
@@ -156,31 +192,43 @@ programs:
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
@@ -191,6 +239,8 @@ programs:
counter:
- name: node_counter
documentation: Node counter
+ namespace: vpp
+ subsystem: node
labelnames:
- name
- reason
diff --git a/resources/templates/telemetry/vppctl_clear_stats.yaml b/resources/templates/telemetry/vppctl_clear_stats.yaml
index 7c5124eb03..b23081e4f2 100644
--- a/resources/templates/telemetry/vppctl_clear_stats.yaml
+++ b/resources/templates/telemetry/vppctl_clear_stats.yaml
@@ -41,40 +41,50 @@ programs:
gauge:
- name: calls
documentation: Number of calls total
+ namespace: vpp
+ subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
- thread_lcore
- name: vectors
documentation: Number of vectors total
+ namespace: vpp
+ subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
- thread_lcore
- name: suspends
documentation: Number of suspends total
+ namespace: vpp
+ subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
- thread_lcore
- name: clocks
documentation: Number of clocks total
+ namespace: vpp
+ subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
- thread_lcore
- name: vectors_calls
documentation: Number of vectors per call
+ namespace: vpp
+ subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
@@ -86,66 +96,92 @@ programs:
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
@@ -156,31 +192,43 @@ programs:
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
@@ -191,6 +239,8 @@ programs:
gauge:
- name: node_counter
documentation: Node counter
+ namespace: vpp
+ subsystem: node
labelnames:
- name
- reason
@@ -204,12 +254,16 @@ programs:
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
diff --git a/resources/templates/telemetry/vppctl_runtime.yaml b/resources/templates/telemetry/vppctl_runtime.yaml
index d8ff734e84..2ac72c0b8a 100644
--- a/resources/templates/telemetry/vppctl_runtime.yaml
+++ b/resources/templates/telemetry/vppctl_runtime.yaml
@@ -38,24 +38,13 @@ scheduler:
programs:
- name: bundle_vppctl
metrics:
- info:
- - name: version
- documentation: VPP version
- namespace: vpp
- subsystem: version
- labelnames:
- - version
- code: |
- vppctl -s {socket} show version
- - name: bundle_vppctl
- metrics:
gauge:
- name: calls
documentation: Number of calls total
namespace: vpp
subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
@@ -65,7 +54,7 @@ programs:
namespace: vpp
subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
@@ -75,7 +64,7 @@ programs:
namespace: vpp
subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
@@ -85,7 +74,7 @@ programs:
namespace: vpp
subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
@@ -95,7 +84,7 @@ programs:
namespace: vpp
subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
@@ -107,166 +96,12 @@ programs:
- 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
- sleep {duration}
- vppctl -s {socket} show interface
- - name: bundle_vppctl
- metrics:
- gauge:
- - name: node_counter
- documentation: Node counter
- namespace: vpp
- subsystem: counters
- labelnames:
- - name
- - reason
- - severity
- - thread_name
- - thread_id
- code: |
- vppctl -s {socket} clear node counters
- sleep {duration}
- vppctl -s {socket} show node counters verbose
- - name: bundle_vppctl
- metrics:
- gauge:
- - name: context_switches
- documentation: Per-thread context switches
- namespace: vpp
- subsystem: context_switches
- labelnames:
- - name
- - id
- code: |
- vppctl -s {socket} perfmon reset
- vppctl -s {socket} perfmon start bundle context-switches
- sleep {duration}
- vppctl -s {socket} perfmon stop
- vppctl -s {socket} show perfmon statistics
- - name: bundle_vppctl
- metrics:
- gauge:
- - name: minor_page_faults
- documentation: Per-thread page faults (minor)
- namespace: vpp
- subsystem: page_faults
- labelnames:
- - name
- - id
- - name: major_page_faults
- documentation: Per-thread page faults (major)
- namespace: vpp
- subsystem: page_faults
- labelnames:
- - name
- - id
- code: |
- vppctl -s {socket} perfmon reset
- vppctl -s {socket} perfmon start bundle page-faults
- sleep {duration}
- vppctl -s {socket} perfmon stop
- vppctl -s {socket} show perfmon statistics
- - name: bundle_vppctl
- metrics:
- gauge:
- name: calls
documentation: Instructions/packet, cycles/packet and IPC (calls)
namespace: vpp
subsystem: inst_and_clock
labelnames:
- - name
+ - node_name
- thread_name
- thread_id
- name: packets
@@ -274,7 +109,7 @@ programs:
namespace: vpp
subsystem: inst_and_clock
labelnames:
- - name
+ - node_name
- thread_name
- thread_id
- name: packets_per_call
@@ -282,7 +117,7 @@ programs:
namespace: vpp
subsystem: inst_and_clock
labelnames:
- - name
+ - node_name
- thread_name
- thread_id
- name: clocks_per_packets
@@ -290,7 +125,7 @@ programs:
namespace: vpp
subsystem: inst_and_clock
labelnames:
- - name
+ - node_name
- thread_name
- thread_id
- name: instructions_per_packets
@@ -298,7 +133,7 @@ programs:
namespace: vpp
subsystem: inst_and_clock
labelnames:
- - name
+ - node_name
- thread_name
- thread_id
- name: ipc
@@ -306,7 +141,7 @@ programs:
namespace: vpp
subsystem: inst_and_clock
labelnames:
- - name
+ - node_name
- thread_name
- thread_id
code: |
@@ -323,7 +158,7 @@ programs:
namespace: vpp
subsystem: cache_hierarchy
labelnames:
- - name
+ - node_name
- thread_name
- thread_id
- name: l1_miss
@@ -331,7 +166,7 @@ programs:
namespace: vpp
subsystem: cache_hierarchy
labelnames:
- - name
+ - node_name
- thread_name
- thread_id
- name: l2_hit
@@ -339,7 +174,7 @@ programs:
namespace: vpp
subsystem: cache_hierarchy
labelnames:
- - name
+ - node_name
- thread_name
- thread_id
- name: l2_miss
@@ -347,7 +182,7 @@ programs:
namespace: vpp
subsystem: cache_hierarchy
labelnames:
- - name
+ - node_name
- thread_name
- thread_id
- name: l3_hit
@@ -355,7 +190,7 @@ programs:
namespace: vpp
subsystem: cache_hierarchy
labelnames:
- - name
+ - node_name
- thread_name
- thread_id
- name: l3_miss
@@ -363,7 +198,7 @@ programs:
namespace: vpp
subsystem: cache_hierarchy
labelnames:
- - name
+ - node_name
- thread_name
- thread_id
code: |
@@ -372,110 +207,3 @@ programs:
sleep {duration}
vppctl -s {socket} perfmon stop
vppctl -s {socket} show perfmon statistics
- - name: bundle_vppctl
- metrics:
- gauge:
- - name: calls
- documentation: Load operations (calls)
- namespace: vpp
- subsystem: load_blocks
- labelnames:
- - name
- - thread_name
- - thread_id
- - name: packets
- documentation: Load operations (packets)
- namespace: vpp
- subsystem: load_blocks
- labelnames:
- - name
- - thread_name
- - thread_id
- code: |
- vppctl -s {socket} perfmon reset
- vppctl -s {socket} perfmon start bundle load-blocks
- sleep {duration}
- vppctl -s {socket} perfmon stop
- vppctl -s {socket} show perfmon statistics
- - name: bundle_vppctl
- metrics:
- gauge:
- - name: branches_per_call
- documentation: Branches/call
- namespace: vpp
- subsystem: branch_mispred
- labelnames:
- - name
- - thread_name
- - thread_id
- - name: branches_per_packet
- documentation: Branches/packet
- namespace: vpp
- subsystem: branch_mispred
- labelnames:
- - name
- - thread_name
- - thread_id
- - name: taken_per_call
- documentation: Taken/call
- namespace: vpp
- subsystem: branch_mispred
- labelnames:
- - name
- - thread_name
- - thread_id
- - name: taken_per_packet
- documentation: Taken/packet
- namespace: vpp
- subsystem: branch_mispred
- labelnames:
- - name
- - thread_name
- - thread_id
- - name: mis_predictions
- documentation: Mis-predictions
- namespace: vpp
- subsystem: branch_mispred
- labelnames:
- - name
- - thread_name
- - thread_id
- code: |
- vppctl -s {socket} perfmon reset
- vppctl -s {socket} perfmon start bundle branch-mispred
- sleep {duration}
- vppctl -s {socket} perfmon stop
- vppctl -s {socket} show perfmon statistics
- - name: bundle_vppctl
- metrics:
- gauge:
- - name: runtime
- documentation: RunTime
- namespace: vpp
- subsystem: memory_bandwidth
- labelnames:
- - name
- - name: reads_mbs
- documentation: Reads (MB/s)
- namespace: vpp
- subsystem: memory_bandwidth
- labelnames:
- - name
- - name: writes_mbs
- documentation: Writes (MB/s)
- namespace: vpp
- subsystem: memory_bandwidth
- labelnames:
- - name
- - name: total_mbs
- documentation: Total (MB/s)
- namespace: vpp
- subsystem: memory_bandwidth
- labelnames:
- - name
- code: |
- vppctl -s {socket} perfmon reset
- vppctl -s {socket} perfmon start bundle memory-bandwidth
- 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
index 83bb746773..9f5a0240a1 100644
--- a/resources/templates/telemetry/vppctl_show_stats.yaml
+++ b/resources/templates/telemetry/vppctl_show_stats.yaml
@@ -41,40 +41,50 @@ programs:
counter:
- name: calls
documentation: Number of calls total
+ namespace: vpp
+ subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
- thread_lcore
- name: vectors
documentation: Number of vectors total
+ namespace: vpp
+ subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
- thread_lcore
- name: suspends
documentation: Number of suspends total
+ namespace: vpp
+ subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
- thread_lcore
- name: clocks
documentation: Number of clocks total
+ namespace: vpp
+ subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
- thread_lcore
- name: vectors_calls
documentation: Number of vectors per call
+ namespace: vpp
+ subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
@@ -86,66 +96,92 @@ programs:
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
@@ -156,31 +192,43 @@ programs:
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
@@ -191,6 +239,8 @@ programs:
counter:
- name: node_counter
documentation: Node counter
+ namespace: vpp
+ subsystem: node
labelnames:
- name
- reason
diff --git a/resources/templates/telemetry/vppctl_test_teardown.yaml b/resources/templates/telemetry/vppctl_test_teardown.yaml
index 10f2077137..e8458f7198 100644
--- a/resources/templates/telemetry/vppctl_test_teardown.yaml
+++ b/resources/templates/telemetry/vppctl_test_teardown.yaml
@@ -41,40 +41,50 @@ programs:
counter:
- name: calls
documentation: Number of calls total
+ namespace: vpp
+ subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
- thread_lcore
- name: vectors
documentation: Number of vectors total
+ namespace: vpp
+ subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
- thread_lcore
- name: suspends
documentation: Number of suspends total
+ namespace: vpp
+ subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
- thread_lcore
- name: clocks
documentation: Number of clocks total
+ namespace: vpp
+ subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
- thread_lcore
- name: vectors_calls
documentation: Number of vectors per call
+ namespace: vpp
+ subsystem: runtime
labelnames:
- - name
+ - node_name
- state
- thread_name
- thread_id
@@ -86,66 +96,92 @@ programs:
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
@@ -156,31 +192,43 @@ programs:
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
@@ -191,6 +239,8 @@ programs:
counter:
- name: node_counter
documentation: Node counter
+ namespace: vpp
+ subsystem: node
labelnames:
- name
- reason
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_dma.conf b/resources/templates/vcl/vcl_dma.conf
new file mode 100644
index 0000000000..46c578b770
--- /dev/null
+++ b/resources/templates/vcl/vcl_dma.conf
@@ -0,0 +1,9 @@
+vcl {
+ segment-size 4000000000
+ add-segment-size 4000000000
+ rx-fifo-size 4000000
+ tx-fifo-size 4000000
+ use-mq-eventfd
+ event-queue-size 500000
+ api-socket-name /run/vpp/api.sock
+}
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/tools/ab/ABFork.py b/resources/tools/ab/ABFork.py
index 8436ed38be..55288a9c92 100755
--- a/resources/tools/ab/ABFork.py
+++ b/resources/tools/ab/ABFork.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
-# Copyright (c) 2021 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:
@@ -136,7 +136,7 @@ def main():
# 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"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])} ")
diff --git a/resources/tools/ab/ABTools.py b/resources/tools/ab/ABTools.py
index 54aff19e92..b929b49fdd 100644
--- a/resources/tools/ab/ABTools.py
+++ b/resources/tools/ab/ABTools.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 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:
@@ -13,11 +13,14 @@
"""ab implementation into CSIT framework."""
-from robot.api import logger
-from resources.libraries.python.topology import NodeType
+from re import search
from resources.libraries.python.Constants import Constants
-from resources.libraries.python.ssh import exec_cmd_no_error
+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:
@@ -36,29 +39,29 @@ class ABTools:
:rtype: OptionString
"""
cmd = OptionString()
- cmd.add(u"python3")
+ cmd.add("python3")
dirname = f"{Constants.REMOTE_FW_DIR}/resources/tools/ab"
cmd.add(f"{dirname}/ABFork.py")
- cmd_options = OptionString(prefix=u"-")
+ cmd_options = OptionString(prefix="-")
# Number of requests to perform.
- cmd_options.add_with_value_from_dict(u"r", u"requests", kwargs)
+ cmd_options.add_with_value_from_dict("r", "requests", kwargs)
# Server port number to use.
- cmd_options.add_with_value_from_dict(u"p", u"port", kwargs)
+ 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(u"c", u"clients", kwargs)
+ cmd_options.add_with_value_from_dict("c", "clients", kwargs)
# Filename to be requested from the servers.
- cmd_options.add_with_value_from_dict(u"f", u"files", kwargs)
+ cmd_options.add_with_value_from_dict("f", "files", kwargs)
# Server ip address.
- cmd_options.add_with_value_from_dict(u"i", u"ip", kwargs)
+ cmd_options.add_with_value_from_dict("i", "ip", kwargs)
# tg ip address.
- cmd_options.add_with_value_from_dict(u"g", u"tip", kwargs)
+ cmd_options.add_with_value_from_dict("g", "tip", kwargs)
# Specify SSL/TLS cipher suite.
- cmd_options.add_with_value_from_dict(u"z", u"cipher", kwargs, default=0)
+ cmd_options.add_with_value_from_dict("z", "cipher", kwargs, default=0)
# Specify SSL/TLS protocol.
- cmd_options.add_with_value_from_dict(u"t", u"protocol", kwargs,
+ cmd_options.add_with_value_from_dict("t", "protocol", kwargs,
default=0)
# Mode: RPS or CPS.
- cmd_options.add_with_value_from_dict(u"m", u"mode", kwargs)
+ cmd_options.add_with_value_from_dict("m", "mode", kwargs)
return cmd.extend(cmd_options)
@staticmethod
@@ -71,11 +74,11 @@ class ABTools:
command is not available.
"""
- if tg_node[u"type"] != NodeType.TG:
- raise RuntimeError(u"Node type is not a TG!")
+ if tg_node["type"] != NodeType.TG:
+ raise RuntimeError("Node type is not a TG!")
- cmd = u"command -v ab"
- message = u"ab not installed on TG node!"
+ cmd = "command -v ab"
+ message = "ab not installed on TG node!"
exec_cmd_no_error(tg_node, cmd, message=message)
@staticmethod
@@ -99,13 +102,13 @@ class ABTools:
:rtype: str
"""
command = f"ab -V | head -1 | cut -d',' -f2"
- message = u"Get AB version failed!"
+ 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=u"TLS1.3"):
+ r_total, c_total, port, protocol="TLS1.3"):
""" Run ab test.
:param tg_node: Topology node.
@@ -136,7 +139,7 @@ class ABTools:
:raises: RuntimeError if node type is not a TG.
"""
if files_num == 0:
- files = u"return"
+ files = "return"
elif files_num >= 1024:
files = f"{int(files_num / 1024)}KB.json"
else:
@@ -153,66 +156,32 @@ class ABTools:
port=port,
mode=rps_cps,
)
- stdout, _ = exec_cmd_no_error(tg_node, cmd, timeout=180, sudo=True,
- message=u"ab runtime error!")
- log_msg = ABTools._parse_ab_output(stdout, rps_cps, tls_tcp)
-
- logger.info(log_msg)
-
- return log_msg
-
- @staticmethod
- def _parse_ab_output(msg, rps_cps, tls_tcp):
- """Parse the ab stdout with the results.
-
- :param msg: Ab Stdout.
- :param rps_cps: RPS or CPS.
- :param tls_tcp: TLS or TCP.
- :type msg: str
- :type rps_cps: str
- :type tls_tcp: str
- :return: Message with measured data.
- :rtype: str
- """
-
- msg_lst = msg.splitlines(keepends=False)
-
- total_cps = u""
- latency = u""
- processing = u""
- complete_req = u""
- failed_req = u""
- total_bytes = u""
- rate = u""
-
- if tls_tcp == u"tls":
- log_msg = u"\nMeasured HTTPS values:\n"
- else:
- log_msg = u"\nMeasured HTTP values:\n"
+ stdout, _ = exec_cmd_no_error(
+ tg_node, cmd, timeout=180, sudo=True, message="ab runtime error!"
+ )
- for line in msg_lst:
+ 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:
- # rps (cps)
- total_cps = line + u"\n"
- elif u"Transfer Rate:" in line:
- # Rate
- rate = line + u"\n"
- elif u"Latency:" in line:
- # Latency
- latency = line + u"\n"
- elif u"Total data transferred" in line:
- total_bytes = line + u"\n"
- elif u"Completed requests" in line:
- complete_req = line + u"\n"
- elif u"Failed requests" in line:
- failed_req = line + u"\n"
-
- log_msg += rate
- log_msg += latency
- log_msg += processing
- log_msg += complete_req
- log_msg += failed_req
- log_msg += total_bytes
- log_msg += total_cps
-
- return log_msg
+ 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/dash/Dockerfile b/resources/tools/dash/Dockerfile
deleted file mode 100644
index ee4ae1edd9..0000000000
--- a/resources/tools/dash/Dockerfile
+++ /dev/null
@@ -1,12 +0,0 @@
-ARG PYTHON_VERSION=3.8
-FROM python:${PYTHON_VERSION}-buster
-
-WORKDIR /app
-
-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/resources/tools/dash/app/.ebextensions/cron-linux.config b/resources/tools/dash/app/.ebextensions/cron-linux.config
deleted file mode 100644
index ae8c33c814..0000000000
--- a/resources/tools/dash/app/.ebextensions/cron-linux.config
+++ /dev/null
@@ -1,14 +0,0 @@
-files:
- "/etc/cron.d/mycron":
- mode: "000644"
- owner: root
- group: root
- content: |
- SHELL=/bin/bash
- PATH=/sbin:/bin:/usr/sbin:/usr/bin
- MAILTO=root
- 0 6 * * * 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/resources/tools/dash/app/app.ini b/resources/tools/dash/app/app.ini
deleted file mode 100644
index 9608f7c38d..0000000000
--- a/resources/tools/dash/app/app.ini
+++ /dev/null
@@ -1,20 +0,0 @@
-[uwsgi]
-ini = :pal
-py-autoreload = 0
-
-[pal]
-module = wsgi:app
-master-fifo = /tmp/masterfifo
-lazy = True
-lazy-apps = True
-touch-chain-reload
-listen = 128
-
-workers = 2
-plugin = python3
-
-master = true
-http-socket = :5000
-socket = /tmp/app.sock
-chmod-socket = 666
-
diff --git a/resources/tools/dash/app/config.py b/resources/tools/dash/app/config.py
deleted file mode 100644
index c927c3ca50..0000000000
--- a/resources/tools/dash/app/config.py
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/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.
-
-class Config:
- """Flask configuration variables.
- """
-
- # General Config
- FLASK_APP = "wsgi.py"
- FLASK_ENV = "production"
-
- # Static Assets
- STATIC_FOLDER = "static"
- TEMPLATES_FOLDER = "templates"
- COMPRESSOR_DEBUG ="True"
diff --git a/resources/tools/dash/app/pal/__init__.py b/resources/tools/dash/app/pal/__init__.py
deleted file mode 100644
index 0eb2a4e79e..0000000000
--- a/resources/tools/dash/app/pal/__init__.py
+++ /dev/null
@@ -1,69 +0,0 @@
-# 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.
-
-"""Initialize Flask app.
-"""
-
-import logging
-
-from flask import Flask
-from flask_assets import Environment
-
-from .utils.constants import Constants as C
-
-
-def init_app():
- """Construct core Flask application with embedded Dash app.
- """
-
- logging.basicConfig(
- format=u"%(asctime)s: %(levelname)s: %(message)s",
- datefmt=u"%Y/%m/%d %H:%M:%S",
- level=logging.INFO
- )
-
- logging.info("Application started.")
-
- app = Flask(__name__, instance_relative_config=False)
- app.config.from_object(u"config.Config")
-
- with app.app_context():
- # Import parts of our core Flask app.
- from . import routes
-
- assets = Environment()
- assets.init_app(app)
-
- # Set the time period for Trending
- 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
-
- # Import Dash applications.
- from .news.news import init_news
- app = init_news(app)
-
- from .stats.stats import init_stats
- app = init_stats(app, time_period=time_period)
-
- from .trending.trending import init_trending
- app = init_trending(app, time_period=time_period)
-
- from .report.report import init_report
- app = init_report(app, releases=C.RELEASES)
-
- return app
-
-
-app = init_app()
diff --git a/resources/tools/dash/app/pal/data/__init__.py b/resources/tools/dash/app/pal/data/__init__.py
deleted file mode 100644
index 5692432123..0000000000
--- a/resources/tools/dash/app/pal/data/__init__.py
+++ /dev/null
@@ -1,12 +0,0 @@
-# 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.
diff --git a/resources/tools/dash/app/pal/data/data.py b/resources/tools/dash/app/pal/data/data.py
deleted file mode 100644
index 77fd113a9c..0000000000
--- a/resources/tools/dash/app/pal/data/data.py
+++ /dev/null
@@ -1,351 +0,0 @@
-# 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.
-
-"""Prepare data for Plotly Dash applications.
-"""
-
-import logging
-import awswrangler as wr
-
-from yaml import load, FullLoader, YAMLError
-from datetime import datetime, timedelta
-from time import time
-from pytz import UTC
-from pandas import DataFrame
-from awswrangler.exceptions import EmptyDataFrame, NoFilesFound
-
-
-class Data:
- """Gets the data from parquets and stores it for further use by dash
- applications.
- """
-
- def __init__(self, data_spec_file: str, debug: bool=False) -> None:
- """Initialize the Data object.
-
- :param data_spec_file: Path to file specifying the data to be read from
- parquets.
- :param debug: If True, the debuf information is printed to stdout.
- :type data_spec_file: str
- :type debug: bool
- :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
- self._debug = debug
-
- # Specification of data to be read from parquets:
- self._data_spec = None
-
- # Data frame to keep the data:
- self._data = None
-
- # 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
-
- def _get_columns(self, parquet: str) -> list:
- """Get the list of columns from the data specification file to be read
- from parquets.
-
- :param parquet: The parquet's name.
- :type parquet: str
- :raises RuntimeError: if the parquet is not defined in the data
- specification file or it does not have any columns specified.
- :returns: List of columns.
- :rtype: list
- """
-
- try:
- return self._data_spec[parquet]["columns"]
- except KeyError as err:
- raise RuntimeError(
- f"The parquet {parquet} is not defined in the specification "
- f"file {self._data_spec_file} or it does not have any columns "
- f"specified.\n{err}"
- )
-
- def _get_path(self, parquet: str) -> str:
- """Get the path from the data specification file to be read from
- parquets.
-
- :param parquet: The parquet's name.
- :type parquet: str
- :raises RuntimeError: if the parquet is not defined in the data
- specification file or it does not have the path specified.
- :returns: Path.
- :rtype: str
- """
-
- try:
- return self._data_spec[parquet]["path"]
- except KeyError as err:
- raise RuntimeError(
- f"The parquet {parquet} is not defined in the specification "
- f"file {self._data_spec_file} or it does not have the path "
- f"specified.\n{err}"
- )
-
- def _get_list_of_files(self,
- 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
- """
- 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
- )
- if self._debug:
- logging.info("\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 _create_dataframe_from_parquet(self,
- path, partition_filter=None,
- columns=None,
- validate_schema=False,
- last_modified_begin=None,
- last_modified_end=None,
- days=None) -> 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.
- :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
- :returns: Pandas DataFrame or None if DataFrame cannot be fetched.
- :rtype: DataFrame
- """
- df = None
- 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,
- 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
- )
- if self._debug:
- df.info(verbose=True, memory_usage='deep')
- logging.info(
- u"\n"
- f"Creation of dataframe {path} took: {time() - start}"
- u"\n"
- )
- except NoFilesFound as err:
- logging.error(f"No parquets found.\n{err}")
- except EmptyDataFrame as err:
- logging.error(f"No data.\n{err}")
-
- self._data = df
- return df
-
- def check_datasets(self, days: int=None):
- """Read structure from parquet.
-
- :param days: Number of days back to the past for which the data will be
- read.
- :type days: int
- """
- self._get_list_of_files(path=self._get_path("trending"), days=days)
- self._get_list_of_files(path=self._get_path("statistics"), days=days)
-
- def read_stats(self, days: int=None) -> tuple:
- """Read statistics from parquet.
-
- It reads from:
- - Suite Result Analysis (SRA) partition,
- - NDRPDR trending partition,
- - MRR trending partition.
-
- :param days: Number of days back to the past for which the data will be
- read.
- :type days: int
- :returns: tuple of pandas DataFrame-s with data read from specified
- parquets.
- :rtype: tuple of pandas DataFrame-s
- """
-
- l_stats = lambda part: True if part["stats_type"] == "sra" else False
- l_mrr = lambda part: True if part["test_type"] == "mrr" else False
- l_ndrpdr = lambda part: True if part["test_type"] == "ndrpdr" else False
-
- return (
- self._create_dataframe_from_parquet(
- path=self._get_path("statistics"),
- partition_filter=l_stats,
- columns=self._get_columns("statistics"),
- days=days
- ),
- self._create_dataframe_from_parquet(
- path=self._get_path("statistics-trending-mrr"),
- partition_filter=l_mrr,
- columns=self._get_columns("statistics-trending-mrr"),
- days=days
- ),
- self._create_dataframe_from_parquet(
- path=self._get_path("statistics-trending-ndrpdr"),
- partition_filter=l_ndrpdr,
- columns=self._get_columns("statistics-trending-ndrpdr"),
- days=days
- )
- )
-
- def read_trending_mrr(self, days: int=None) -> DataFrame:
- """Read MRR data partition from parquet.
-
- :param days: Number of days back to the past for which the data will be
- read.
- :type days: int
- :returns: Pandas DataFrame with read data.
- :rtype: DataFrame
- """
-
- lambda_f = lambda part: True if part["test_type"] == "mrr" else False
-
- return self._create_dataframe_from_parquet(
- path=self._get_path("trending-mrr"),
- partition_filter=lambda_f,
- columns=self._get_columns("trending-mrr"),
- days=days
- )
-
- def read_trending_ndrpdr(self, days: int=None) -> DataFrame:
- """Read NDRPDR data partition from iterative parquet.
-
- :param days: Number of days back to the past for which the data will be
- read.
- :type days: int
- :returns: Pandas DataFrame with read data.
- :rtype: DataFrame
- """
-
- lambda_f = lambda part: True if part["test_type"] == "ndrpdr" else False
-
- return self._create_dataframe_from_parquet(
- path=self._get_path("trending-ndrpdr"),
- partition_filter=lambda_f,
- columns=self._get_columns("trending-ndrpdr"),
- days=days
- )
-
- def read_iterative_mrr(self, release: str) -> DataFrame:
- """Read MRR data partition from iterative parquet.
-
- :param release: The CSIT release from which the data will be read.
- :type release: str
- :returns: Pandas DataFrame with read data.
- :rtype: DataFrame
- """
-
- lambda_f = lambda part: True if part["test_type"] == "mrr" else False
-
- return self._create_dataframe_from_parquet(
- path=self._get_path("iterative-mrr").format(release=release),
- partition_filter=lambda_f,
- columns=self._get_columns("iterative-mrr")
- )
-
- def read_iterative_ndrpdr(self, release: str) -> DataFrame:
- """Read NDRPDR data partition from parquet.
-
- :param release: The CSIT release from which the data will be read.
- :type release: str
- :returns: Pandas DataFrame with read data.
- :rtype: DataFrame
- """
-
- lambda_f = lambda part: True if part["test_type"] == "ndrpdr" else False
-
- return self._create_dataframe_from_parquet(
- path=self._get_path("iterative-ndrpdr").format(release=release),
- partition_filter=lambda_f,
- columns=self._get_columns("iterative-ndrpdr")
- )
diff --git a/resources/tools/dash/app/pal/data/data.yaml b/resources/tools/dash/app/pal/data/data.yaml
deleted file mode 100644
index 396f1b1638..0000000000
--- a/resources/tools/dash/app/pal/data/data.yaml
+++ /dev/null
@@ -1,117 +0,0 @@
-statistics:
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/stats
- columns:
- - job
- - build
- - start_time
- - duration
-statistics-trending-ndrpdr:
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/trending
- columns:
- - job
- - build
- - dut_type
- - dut_version
- - hosts
- - start_time
- - passed
- - test_id
- - result_pdr_lower_rate_value
- - result_ndr_lower_rate_value
-statistics-trending-mrr:
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/trending
- columns:
- - job
- - build
- - dut_type
- - dut_version
- - hosts
- - start_time
- - passed
- - test_id
- - result_receive_rate_rate_avg
-trending:
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/trending
- columns:
- - job
- - build
- - start_time
-trending-mrr:
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/trending
- 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
-trending-ndrpdr:
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/trending
- 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_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
-iterative-mrr:
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/iterative_{release}
- 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_rate_values
-iterative-ndrpdr:
- path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/iterative_{release}
- 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_latency_forward_pdr_50_avg
- - result_latency_forward_pdr_50_unit
-# coverage-ndrpdr:
-# path: str
-# columns:
-# - list
diff --git a/resources/tools/dash/app/pal/debug.py b/resources/tools/dash/app/pal/debug.py
deleted file mode 100644
index f0543820b1..0000000000
--- a/resources/tools/dash/app/pal/debug.py
+++ /dev/null
@@ -1,45 +0,0 @@
-# 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.
-
-import logging
-
-from data.data import Data
-from utils.constants import Constants as C
-
-
-logging.basicConfig(
- format=u"%(asctime)s: %(levelname)s: %(message)s",
- datefmt=u"%Y/%m/%d %H:%M:%S",
- level=logging.INFO
-)
-
-# Set the time period for data fetch
-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_mrr = Data(
-# data_spec_file=C.DATA_SPEC_FILE,
-# debug=True
-#).read_trending_mrr(days=time_period)
-#
-#data_ndrpdr = Data(
-# data_spec_file=C.DATA_SPEC_FILE,
-# debug=True
-#).read_trending_ndrpdr(days=time_period)
-
-data_list = Data(
- data_spec_file=C.DATA_SPEC_FILE,
- debug=True
-).check_datasets(days=time_period) \ No newline at end of file
diff --git a/resources/tools/dash/app/pal/news/__init__.py b/resources/tools/dash/app/pal/news/__init__.py
deleted file mode 100644
index 5692432123..0000000000
--- a/resources/tools/dash/app/pal/news/__init__.py
+++ /dev/null
@@ -1,12 +0,0 @@
-# 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.
diff --git a/resources/tools/dash/app/pal/news/layout.py b/resources/tools/dash/app/pal/news/layout.py
deleted file mode 100644
index 73fabdf884..0000000000
--- a/resources/tools/dash/app/pal/news/layout.py
+++ /dev/null
@@ -1,707 +0,0 @@
-# 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.
-
-"""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
-from dash import Input, Output, State
-from yaml import load, FullLoader, YAMLError
-from copy import deepcopy
-
-from ..data.data import Data
-from ..utils.constants import Constants as C
-from ..utils.utils import classify_anomalies, show_tooltip, gen_new_url, \
- get_ttypes, get_cadences, get_test_beds, get_job, generate_options, \
- set_job_params
-from ..utils.url_processing import url_decode
-from ..data.data import Data
-from .tables import table_news
-
-
-class Layout:
- """The layout of the dash app and the callbacks.
- """
-
- def __init__(self, app: Flask, html_layout_file: str, data_spec_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 data_spec_file: Path and name of the file specifying the data to
- be read from parquets for this application.
- :param tooltip_file: Path and name of the yaml file specifying the
- tooltips.
- :type app: Flask
- :type html_layout_file: str
- :type data_spec_file: str
- :type tooltip_file: str
- """
-
- # Inputs
- self._app = app
- self._html_layout_file = html_layout_file
- self._data_spec_file = data_spec_file
- self._tooltip_file = tooltip_file
-
- # Read the data:
- data_stats, data_mrr, data_ndrpdr = Data(
- data_spec_file=self._data_spec_file,
- debug=True
- ).read_stats(days=C.NEWS_TIME_PERIOD)
-
- df_tst_info = pd.concat([data_mrr, data_ndrpdr], ignore_index=True)
-
- # Prepare information for the control panel:
- jobs = sorted(list(df_tst_info["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.NEWS_DEFAULT_JOB)
-
- # 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 jobs:
- # Create lists of failed tests:
- df_job = df_tst_info.loc[(df_tst_info["job"] == job)]
- last_build = max(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].sort_values(
- by="start_time", ignore_index=True)
- x_axis = tst_data["start_time"].tolist()
- if "-ndrpdr" in test:
- tst_data = tst_data.dropna(
- subset=["result_pdr_lower_rate_value", ]
- )
- if tst_data.empty:
- continue
- 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
- 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()
- 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._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}"
- )
-
- self._default_tab_failed = table_news(self.data, self._default["job"])
-
- # 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
-
- @property
- def data(self) -> pd.DataFrame:
- return self._data
-
- @property
- def default(self) -> dict:
- return self._default
-
- 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",
- children=[
- dcc.Store(id="control-panel"),
- dcc.Location(id="url", refresh=False),
- dbc.Row(
- id="row-navbar",
- class_name="g-0",
- children=[
- self._add_navbar(),
- ]
- ),
- dbc.Row(
- id="row-main",
- class_name="g-0",
- children=[
- self._add_ctrl_col(),
- self._add_plotting_col(),
- ]
- )
- ]
- )
- else:
- return html.Div(
- id="div-main-error",
- children=[
- dbc.Alert(
- [
- "An Error Occured",
- ],
- color="danger",
- ),
- ]
- )
-
- def _add_navbar(self):
- """Add nav element with navigation panel. It is placed on the top.
-
- :returns: Navigation bar.
- :rtype: dbc.NavbarSimple
- """
-
- return dbc.NavbarSimple(
- id="navbarsimple-main",
- children=[
- dbc.NavItem(
- dbc.NavLink(
- "Continuous Performance News",
- disabled=True,
- external_link=True,
- href="#"
- )
- )
- ],
- brand="Dashboard",
- brand_href="/",
- brand_external_link=True,
- class_name="p-2",
- fluid=True,
- )
-
- 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(
- id="col-controls",
- children=[
- self._add_ctrl_panel(),
- ],
- )
-
- 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.Row( # Failed tests
- id="row-table-failed",
- class_name="g-0 p-2",
- children=self._default_tab_failed
- ),
- dbc.Row(
- class_name="g-0 p-2",
- align="center",
- justify="start",
- children=[
- dbc.InputGroup(
- class_name="me-1",
- children=[
- dbc.InputGroupText(
- style=C.URL_STYLE,
- children=show_tooltip(
- self._tooltips,
- "help-url", "URL",
- "input-url"
- )
- ),
- dbc.Input(
- id="input-url",
- readonly=True,
- type="url",
- style=C.URL_STYLE,
- value=""
- )
- ]
- )
- ]
- )
- ],
- width=9,
- )
-
- def _add_ctrl_panel(self) -> dbc.Row:
- """Add control panel.
-
- :returns: Control panel.
- :rtype: dbc.Row
- """
- return dbc.Row(
- id="row-ctrl-panel",
- class_name="g-0",
- children=[
- dbc.Row(
- class_name="g-0 p-2",
- children=[
- dbc.Row(
- class_name="gy-1",
- children=[
- dbc.Label(
- class_name="p-0",
- children=show_tooltip(self._tooltips,
- "help-dut", "Device under Test")
- ),
- dbc.Row(
- dbc.RadioItems(
- id="ri-duts",
- inline=True,
- value=self.default["dut"],
- options=self.default["duts"]
- )
- )
- ]
- ),
- dbc.Row(
- class_name="gy-1",
- children=[
- dbc.Label(
- class_name="p-0",
- children=show_tooltip(self._tooltips,
- "help-ttype", "Test Type"),
- ),
- dbc.RadioItems(
- id="ri-ttypes",
- inline=True,
- value=self.default["ttype"],
- options=self.default["ttypes"]
- )
- ]
- ),
- dbc.Row(
- class_name="gy-1",
- children=[
- dbc.Label(
- class_name="p-0",
- children=show_tooltip(self._tooltips,
- "help-cadence", "Cadence"),
- ),
- dbc.RadioItems(
- id="ri-cadences",
- inline=True,
- value=self.default["cadence"],
- options=self.default["cadences"]
- )
- ]
- ),
- dbc.Row(
- class_name="gy-1",
- children=[
- dbc.Label(
- class_name="p-0",
- children=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"]
- )
- ]
- ),
- dbc.Row(
- class_name="gy-1",
- children=[
- dbc.Alert(
- id="al-job",
- color="info",
- children=self.default["job"]
- )
- ]
- )
- ]
- )
- ]
- )
-
- class ControlPanel:
- """A class representing the control panel.
- """
-
- def __init__(self, panel: dict, default: dict) -> None:
- """Initialisation of the control pannel by default values. If
- particular values are provided (parameter "panel") they are set
- afterwards.
-
- :param panel: Custom values to be set to the control panel.
- :param default: Default values to be set to the control panel.
- :type panel: dict
- :type defaults: dict
- """
-
- self._defaults = {
- "ri-ttypes-options": default["ttypes"],
- "ri-cadences-options": default["cadences"],
- "dd-tbeds-options": default["tbeds"],
- "ri-duts-value": default["dut"],
- "ri-ttypes-value": default["ttype"],
- "ri-cadences-value": default["cadence"],
- "dd-tbeds-value": default["tbed"],
- "al-job-children": default["job"]
- }
- self._panel = deepcopy(self._defaults)
- if panel:
- for key in self._defaults:
- self._panel[key] = panel[key]
-
- def set(self, kwargs: 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.")
-
- @property
- def defaults(self) -> dict:
- return self._defaults
-
- @property
- def panel(self) -> dict:
- return self._panel
-
- 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]
-
- def values(self) -> list:
- """Returns the values from the Control panel as a list.
-
- :returns: The values from the Control panel.
- :rtype: list
- """
- return list(self._panel.values())
-
- def callbacks(self, app):
- """Callbacks for the whole application.
-
- :param app: The application.
- :type app: Flask
- """
-
- @app.callback(
- Output("control-panel", "data"), # Store
- Output("row-table-failed", "children"),
- Output("input-url", "value"),
- 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_application(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 = self.ControlPanel(cp_data, self.default)
-
- # 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":
- # TODO: Add verification
- 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 = self.ControlPanel(None, job_params)
- else:
- ctrl_panel = self.ControlPanel(cp_data, self.default)
-
- 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": job})
- tab_failed = table_news(self.data, job)
-
- ret_val = [
- ctrl_panel.panel,
- tab_failed,
- gen_new_url(parsed_url, {"job": job})
- ]
- ret_val.extend(ctrl_panel.values())
- return ret_val
diff --git a/resources/tools/dash/app/pal/news/news.py b/resources/tools/dash/app/pal/news/news.py
deleted file mode 100644
index a0d05f1483..0000000000
--- a/resources/tools/dash/app/pal/news/news.py
+++ /dev/null
@@ -1,46 +0,0 @@
-# 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.
-
-"""Instantiate the News Dash application.
-"""
-import dash
-
-from ..utils.constants import Constants as C
-from .layout import Layout
-
-
-def init_news(server):
- """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.NEWS_ROUTES_PATHNAME_PREFIX,
- external_stylesheets=C.EXTERNAL_STYLESHEETS
- )
-
- layout = Layout(
- app=dash_app,
- html_layout_file=C.NEWS_HTML_LAYOUT_FILE,
- data_spec_file=C.DATA_SPEC_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/resources/tools/dash/app/pal/news/tables.py b/resources/tools/dash/app/pal/news/tables.py
deleted file mode 100644
index 1a6c7d2556..0000000000
--- a/resources/tools/dash/app/pal/news/tables.py
+++ /dev/null
@@ -1,85 +0,0 @@
-# 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.
-
-"""The tables with news.
-"""
-
-import pandas as pd
-import dash_bootstrap_components as dbc
-
-from ..utils.constants import Constants as C
-
-
-def table_news(data: pd.DataFrame, job: str) -> 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.
- :type data: pandas.DataFrame
- :type job: str
- """
-
- job_data = data.loc[(data["job"] == job)]
- failed = job_data["failed"].to_list()[0]
- regressions = {"Test Name": list(), "Last Regression": list()}
- for itm in job_data["regressions"].to_list()[0]:
- regressions["Test Name"].append(itm[0])
- regressions["Last Regression"].append(itm[1].strftime('%Y-%m-%d %H:%M'))
- progressions = {"Test Name": list(), "Last Progression": list()}
- for itm in job_data["progressions"].to_list()[0]:
- progressions["Test Name"].append(itm[0])
- progressions["Last Progression"].append(
- itm[1].strftime('%Y-%m-%d %H:%M'))
-
- 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="light"),
- 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="light"),
- dbc.Label(
- class_name="p-0",
- size="lg",
- children=(
- f"Regressions during the last {C.NEWS_TIME_PERIOD} days "
- f"({len(regressions['Test Name'])})"
- )
- ),
- dbc.Table.from_dataframe(
- pd.DataFrame.from_dict(regressions),
- bordered=True, striped=True, hover=True, size="sm", color="light"),
- dbc.Label(
- class_name="p-0",
- size="lg",
- children=(
- f"Progressions during the last {C.NEWS_TIME_PERIOD} days "
- f"({len(progressions['Test Name'])})"
- )
- ),
- dbc.Table.from_dataframe(
- pd.DataFrame.from_dict(progressions),
- bordered=True, striped=True, hover=True, size="sm", color="light")
- ]
diff --git a/resources/tools/dash/app/pal/report/__init__.py b/resources/tools/dash/app/pal/report/__init__.py
deleted file mode 100644
index 5692432123..0000000000
--- a/resources/tools/dash/app/pal/report/__init__.py
+++ /dev/null
@@ -1,12 +0,0 @@
-# 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.
diff --git a/resources/tools/dash/app/pal/report/graphs.py b/resources/tools/dash/app/pal/report/graphs.py
deleted file mode 100644
index 36f28d09e8..0000000000
--- a/resources/tools/dash/app/pal/report/graphs.py
+++ /dev/null
@@ -1,275 +0,0 @@
-# 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.
-
-"""
-"""
-
-import re
-import plotly.graph_objects as go
-import pandas as pd
-
-from copy import deepcopy
-
-from ..utils.constants import Constants as C
-from ..utils.utils import get_color
-
-
-def get_short_version(version: str, dut_type: str="vpp") -> str:
- """Returns the short version of DUT without build number.
-
- :param version: Original version string.
- :param dut_type: DUT type.
- :type version: str
- :type dut_type: str
- :returns: Short verion string.
- :rtype: str
- """
-
- if dut_type in ("trex", "dpdk"):
- return version
-
- s_version = str()
- groups = re.search(
- pattern=re.compile(r"^(\d{2}).(\d{2})-(rc0|rc1|rc2|release$)"),
- string=version
- )
- if groups:
- try:
- s_version = \
- f"{groups.group(1)}.{groups.group(2)}.{groups.group(3)}".\
- replace("release", "rls")
- except IndexError:
- pass
-
- return s_version
-
-
-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
-
- core = str() if itm["dut"] == "trex" else f"{itm['core']}"
- ttype = "ndrpdr" if itm["testtype"] in ("ndr", "pdr") else itm["testtype"]
- dut_v100 = "none" if itm["dut"] == "trex" else itm["dut"]
- dut_v101 = itm["dut"]
-
- df = data.loc[(
- (data["release"] == itm["rls"]) &
- (
- (
- (data["version"] == "1.0.0") &
- (data["dut_type"].str.lower() == dut_v100)
- ) |
- (
- (data["version"] == "1.0.1") &
- (data["dut_type"].str.lower() == dut_v101)
- )
- ) &
- (data["test_type"] == ttype) &
- (data["passed"] == True)
- )]
- 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:dict, layout: dict,
- normalize: bool) -> 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 frquency
- Constants.NORM_FREQUENCY.
- :param data: pandas.DataFrame
- :param sel: dict
- :param layout: dict
- :param normalize: bool
- :returns: Tuple of graphs - throughput and latency.
- :rtype: tuple(plotly.graph_objects.Figure, plotly.graph_objects.Figure)
- """
-
- fig_tput = None
- fig_lat = None
-
- tput_traces = list()
- y_tput_max = 0
- lat_traces = list()
- y_lat_max = 0
- x_lat = list()
- show_latency = False
- show_tput = False
- 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["testtype"] == "mrr":
- y_data_raw = itm_data[C.VALUE_ITER[itm["testtype"]]].to_list()[0]
- y_data = [(y * norm_factor) for y in y_data_raw]
- if len(y_data) > 0:
- y_tput_max = \
- max(y_data) if max(y_data) > y_tput_max else y_tput_max
- else:
- y_data_raw = itm_data[C.VALUE_ITER[itm["testtype"]]].to_list()
- y_data = [(y * norm_factor) for y in y_data_raw]
- if y_data:
- y_tput_max = \
- max(y_data) if max(y_data) > y_tput_max else y_tput_max
- nr_of_samples = len(y_data)
- tput_kwargs = dict(
- y=y_data,
- 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))
- )
- tput_traces.append(go.Box(**tput_kwargs))
- show_tput = True
-
- if itm["testtype"] == "pdr":
- y_lat_row = itm_data[C.VALUE_ITER["pdr-lat"]].to_list()
- y_lat = [(y / norm_factor) for y in y_lat_row]
- if y_lat:
- y_lat_max = max(y_lat) if max(y_lat) > y_lat_max else y_lat_max
- 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))
- )
- x_lat.append(idx + 1)
- lat_traces.append(go.Box(**lat_kwargs))
- show_latency = True
- else:
- lat_traces.append(go.Box())
-
- if show_tput:
- 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))]
- if y_tput_max:
- pl_tput["yaxis"]["range"] = [0, (int(y_tput_max / 1e6) + 1) * 1e6]
- fig_tput = go.Figure(data=tput_traces, layout=pl_tput)
-
- if show_latency:
- 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 / 10) + 1) * 10]
- fig_lat = go.Figure(data=lat_traces, layout=pl_lat)
-
- return fig_tput, fig_lat
-
-
-def table_comparison(data: pd.DataFrame, sel:dict,
- normalize: bool) -> pd.DataFrame:
- """Generate the comparison table with selected tests.
-
- :param data: Data frame with iterative data.
- :param sel: Selected tests.
- :param normalize: If True, the data is normalized to CPU frquency
- Constants.NORM_FREQUENCY.
- :param data: pandas.DataFrame
- :param sel: dict
- :param normalize: bool
- :returns: Comparison table.
- :rtype: pandas.DataFrame
- """
- table = pd.DataFrame(
- # {
- # "Test Case": [
- # "64b-2t1c-avf-eth-l2xcbase-eth-2memif-1dcr",
- # "64b-2t1c-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc",
- # "64b-2t1c-avf-ethip4udp-ip4base-iacl50sl-10kflows",
- # "78b-2t1c-avf-ethip6-ip6scale2m-rnd "],
- # "2106.0-8": [
- # "14.45 +- 0.08",
- # "9.63 +- 0.05",
- # "9.7 +- 0.02",
- # "8.95 +- 0.06"],
- # "2110.0-8": [
- # "14.45 +- 0.08",
- # "9.63 +- 0.05",
- # "9.7 +- 0.02",
- # "8.95 +- 0.06"],
- # "2110.0-9": [
- # "14.45 +- 0.08",
- # "9.63 +- 0.05",
- # "9.7 +- 0.02",
- # "8.95 +- 0.06"],
- # "2202.0-9": [
- # "14.45 +- 0.08",
- # "9.63 +- 0.05",
- # "9.7 +- 0.02",
- # "8.95 +- 0.06"],
- # "2110.0-9 vs 2110.0-8": [
- # "-0.23 +- 0.62",
- # "-1.37 +- 1.3",
- # "+0.08 +- 0.2",
- # "-2.16 +- 0.83"],
- # "2202.0-9 vs 2110.0-9": [
- # "+6.95 +- 0.72",
- # "+5.35 +- 1.26",
- # "+4.48 +- 1.48",
- # "+4.09 +- 0.95"]
- # }
- )
-
- return table
diff --git a/resources/tools/dash/app/pal/report/layout.py b/resources/tools/dash/app/pal/report/layout.py
deleted file mode 100644
index 978ab0de6c..0000000000
--- a/resources/tools/dash/app/pal/report/layout.py
+++ /dev/null
@@ -1,1446 +0,0 @@
-# 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.
-
-"""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 copy import deepcopy
-from ast import literal_eval
-
-from ..utils.constants import Constants as C
-from ..utils.utils import show_tooltip, label, sync_checklists, list_tests, \
- gen_new_url
-from ..utils.url_processing import url_decode
-from ..data.data import Data
-from .graphs import graph_iterative, table_comparison, get_short_version, \
- select_iterative_data
-
-
-class Layout:
- """The layout of the dash app and the callbacks.
- """
-
- def __init__(self, app: Flask, releases: list, html_layout_file: str,
- graph_layout_file: str, data_spec_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 releases: Lis of releases to be displayed.
- :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 data_spec_file: Path and name of the file specifying the data to
- be read from parquets for this application.
- :param tooltip_file: Path and name of the yaml file specifying the
- tooltips.
- :type app: Flask
- :type releases: list
- :type html_layout_file: str
- :type graph_layout_file: str
- :type data_spec_file: str
- :type tooltip_file: str
- """
-
- # Inputs
- self._app = app
- self.releases = releases
- self._html_layout_file = html_layout_file
- self._graph_layout_file = graph_layout_file
- self._data_spec_file = data_spec_file
- self._tooltip_file = tooltip_file
-
- # Read the data:
- self._data = pd.DataFrame()
- for rls in releases:
- data_mrr = Data(self._data_spec_file, True).\
- read_iterative_mrr(release=rls.replace("csit", "rls"))
- data_mrr["release"] = rls
- data_ndrpdr = Data(self._data_spec_file, True).\
- read_iterative_ndrpdr(release=rls.replace("csit", "rls"))
- data_ndrpdr["release"] = rls
- self._data = pd.concat(
- [self._data, data_mrr, data_ndrpdr], ignore_index=True)
-
- # Get structure of tests:
- tbs = dict()
- cols = ["job", "test_id", "test_type", "dut_version", "release"]
- for _, row in self._data[cols].drop_duplicates().iterrows():
- rls = row["release"]
- ttype = row["test_type"]
- lst_job = row["job"].split("-")
- dut = lst_job[1]
- d_ver = get_short_version(row["dut_version"], dut)
- 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(infra, None) is None:
- tbs[rls][dut][d_ver][infra] = dict()
- if tbs[rls][dut][d_ver][infra].get(area, None) is None:
- tbs[rls][dut][d_ver][infra][area] = dict()
- if tbs[rls][dut][d_ver][infra][area].get(test, None) is None:
- tbs[rls][dut][d_ver][infra][area][test] = dict()
- tbs[rls][dut][d_ver][infra][area][test]["core"] = list()
- tbs[rls][dut][d_ver][infra][area][test]["frame-size"] = list()
- tbs[rls][dut][d_ver][infra][area][test]["test-type"] = list()
- if core.upper() not in \
- tbs[rls][dut][d_ver][infra][area][test]["core"]:
- tbs[rls][dut][d_ver][infra][area][test]["core"].append(
- core.upper())
- if framesize.upper() not in \
- tbs[rls][dut][d_ver][infra][area][test]["frame-size"]:
- tbs[rls][dut][d_ver][infra][area][test]["frame-size"].append(
- framesize.upper())
- if ttype == "mrr":
- if "MRR" not in \
- tbs[rls][dut][d_ver][infra][area][test]["test-type"]:
- tbs[rls][dut][d_ver][infra][area][test]["test-type"].append(
- "MRR")
- elif ttype == "ndrpdr":
- if "NDR" not in \
- tbs[rls][dut][d_ver][infra][area][test]["test-type"]:
- tbs[rls][dut][d_ver][infra][area][test]["test-type"].extend(
- ("NDR", "PDR", ))
- self._spec_tbs = tbs
-
- # Read from files:
- self._html_layout = ""
- 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
-
- @property
- def spec_tbs(self):
- return self._spec_tbs
-
- @property
- def data(self):
- return self._data
-
- @property
- def layout(self):
- return self._graph_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",
- children=[
- dbc.Row(
- id="row-navbar",
- class_name="g-0",
- children=[
- self._add_navbar(),
- ]
- ),
- dcc.Loading(
- 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"),
- ]
- )
- ),
- dbc.Row(
- id="row-main",
- class_name="g-0",
- children=[
- dcc.Store(id="selected-tests"),
- dcc.Store(id="control-panel"),
- dcc.Location(id="url", refresh=False),
- self._add_ctrl_col(),
- self._add_plotting_col(),
- ]
- )
- ]
- )
- else:
- return html.Div(
- id="div-main-error",
- children=[
- dbc.Alert(
- [
- "An Error Occured",
- ],
- color="danger",
- ),
- ]
- )
-
- def _add_navbar(self):
- """Add nav element with navigation panel. It is placed on the top.
-
- :returns: Navigation bar.
- :rtype: dbc.NavbarSimple
- """
- return dbc.NavbarSimple(
- id="navbarsimple-main",
- children=[
- dbc.NavItem(
- dbc.NavLink(
- "Iterative Test Runs",
- disabled=True,
- external_link=True,
- href="#"
- )
- )
- ],
- brand="Dashboard",
- brand_href="/",
- brand_external_link=True,
- class_name="p-2",
- fluid=True,
- )
-
- 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(
- id="col-controls",
- children=[
- self._add_ctrl_panel(),
- ],
- )
-
- 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=[
- dcc.Loading(
- children=[
- dbc.Row( # Graphs
- class_name="g-0 p-2",
- children=[
- dbc.Col(
- dbc.Row( # Throughput
- id="row-graph-tput",
- class_name="g-0 p-2",
- children=[C.PLACEHOLDER, ]
- ),
- width=6
- ),
- dbc.Col(
- dbc.Row( # Latency
- id="row-graph-lat",
- class_name="g-0 p-2",
- children=[C.PLACEHOLDER, ]
- ),
- width=6
- )
- ]
- ),
- dbc.Row( # Tables
- id="row-table",
- class_name="g-0 p-2",
- children=[C.PLACEHOLDER, ]
- ),
- dbc.Row( # Download
- id="row-btn-download",
- class_name="g-0 p-2",
- children=[C.PLACEHOLDER, ]
- )
- ]
- )
- ],
- width=9
- )
-
- def _add_ctrl_panel(self) -> dbc.Row:
- """Add control panel.
-
- :returns: Control panel.
- :rtype: dbc.Row
- """
- return dbc.Row(
- id="row-ctrl-panel",
- class_name="g-0 p-2",
- children=[
- dbc.Row(
- class_name="g-0",
- children=[
- dbc.InputGroup(
- [
- dbc.InputGroupText(
- children=show_tooltip(self._tooltips,
- "help-release", "CSIT Release")
- ),
- dbc.Select(
- id="dd-ctrl-rls",
- placeholder=("Select a Release..."),
- options=sorted(
- [
- {"label": k, "value": k} \
- for k in self.spec_tbs.keys()
- ],
- key=lambda d: d["label"]
- )
- )
- ],
- class_name="mb-3",
- size="sm",
- ),
- ]
- ),
- dbc.Row(
- class_name="g-0",
- children=[
- dbc.InputGroup(
- [
- dbc.InputGroupText(
- children=show_tooltip(self._tooltips,
- "help-dut", "DUT")
- ),
- dbc.Select(
- id="dd-ctrl-dut",
- placeholder=(
- "Select a Device under Test..."
- )
- )
- ],
- class_name="mb-3",
- size="sm",
- ),
- ]
- ),
- dbc.Row(
- class_name="g-0",
- children=[
- dbc.InputGroup(
- [
- dbc.InputGroupText(
- children=show_tooltip(self._tooltips,
- "help-dut-ver", "DUT Version")
- ),
- dbc.Select(
- id="dd-ctrl-dutver",
- placeholder=(
- "Select a Version of "
- "Device under Test..."
- )
- )
- ],
- class_name="mb-3",
- size="sm",
- ),
- ]
- ),
- dbc.Row(
- class_name="g-0",
- children=[
- dbc.InputGroup(
- [
- dbc.InputGroupText(
- children=show_tooltip(self._tooltips,
- "help-infra", "Infra")
- ),
- dbc.Select(
- id="dd-ctrl-phy",
- placeholder=(
- "Select a Physical Test Bed "
- "Topology..."
- )
- )
- ],
- class_name="mb-3",
- size="sm",
- ),
- ]
- ),
- dbc.Row(
- class_name="g-0",
- children=[
- dbc.InputGroup(
- [
- dbc.InputGroupText(
- children=show_tooltip(self._tooltips,
- "help-area", "Area")
- ),
- dbc.Select(
- id="dd-ctrl-area",
- placeholder="Select an Area...",
- disabled=True,
- ),
- ],
- class_name="mb-3",
- size="sm",
- ),
- ]
- ),
- dbc.Row(
- class_name="g-0",
- children=[
- dbc.InputGroup(
- [
- dbc.InputGroupText(
- children=show_tooltip(self._tooltips,
- "help-test", "Test")
- ),
- dbc.Select(
- id="dd-ctrl-test",
- placeholder="Select a Test...",
- disabled=True,
- ),
- ],
- class_name="mb-3",
- size="sm",
- ),
- ]
- ),
- dbc.Row(
- id="row-ctrl-framesize",
- class_name="gy-1",
- children=[
- dbc.Label(
- children=show_tooltip(self._tooltips,
- "help-framesize", "Frame Size"),
- class_name="p-0"
- ),
- dbc.Col(
- children=[
- dbc.Checklist(
- id="cl-ctrl-framesize-all",
- options=C.CL_ALL_DISABLED,
- inline=True,
- switch=False
- ),
- ],
- width=3
- ),
- dbc.Col(
- children=[
- dbc.Checklist(
- id="cl-ctrl-framesize",
- inline=True,
- switch=False
- )
- ]
- )
- ]
- ),
- dbc.Row(
- id="row-ctrl-core",
- class_name="gy-1",
- children=[
- dbc.Label(
- children=show_tooltip(self._tooltips,
- "help-cores", "Number of Cores"),
- class_name="p-0"
- ),
- dbc.Col(
- children=[
- dbc.Checklist(
- id="cl-ctrl-core-all",
- options=C.CL_ALL_DISABLED,
- inline=False,
- switch=False
- )
- ],
- width=3
- ),
- dbc.Col(
- children=[
- dbc.Checklist(
- id="cl-ctrl-core",
- inline=True,
- switch=False
- )
- ]
- )
- ]
- ),
- dbc.Row(
- id="row-ctrl-testtype",
- class_name="gy-1",
- children=[
- dbc.Label(
- children=show_tooltip(self._tooltips,
- "help-ttype", "Test Type"),
- class_name="p-0"
- ),
- dbc.Col(
- children=[
- dbc.Checklist(
- id="cl-ctrl-testtype-all",
- options=C.CL_ALL_DISABLED,
- inline=True,
- switch=False
- ),
- ],
- width=3
- ),
- dbc.Col(
- children=[
- dbc.Checklist(
- id="cl-ctrl-testtype",
- inline=True,
- switch=False
- )
- ]
- )
- ]
- ),
- dbc.Row(
- id="row-ctrl-normalize",
- class_name="gy-1",
- children=[
- dbc.Label(
- children=show_tooltip(self._tooltips,
- "help-normalize", "Normalize"),
- class_name="p-0"
- ),
- dbc.Col(
- children=[
- dbc.Checklist(
- id="cl-ctrl-normalize",
- options=[{
- "value": "normalize",
- "label": (
- "Normalize results to CPU"
- "frequency 2GHz"
- )
- }],
- value=[],
- inline=True,
- switch=False
- ),
- ]
- )
- ]
- ),
- dbc.Row(
- class_name="gy-1 p-0",
- children=[
- dbc.ButtonGroup(
- [
- dbc.Button(
- id="btn-ctrl-add",
- children="Add Selected",
- class_name="me-1",
- color="info"
- )
- ],
- size="md",
- )
- ]
- ),
- dbc.Row(
- id="row-card-sel-tests",
- class_name="gy-1",
- style=C.STYLE_DISABLED,
- children=[
- dbc.Label(
- "Selected tests",
- class_name="p-0"
- ),
- dbc.Checklist(
- class_name="overflow-auto",
- id="cl-selected",
- options=[],
- inline=False,
- style={"max-height": "20em"},
- )
- ],
- ),
- dbc.Row(
- id="row-btns-sel-tests",
- style=C.STYLE_DISABLED,
- children=[
- dbc.ButtonGroup(
- class_name="gy-2",
- children=[
- dbc.Button(
- id="btn-sel-remove",
- children="Remove Selected",
- class_name="w-100 me-1",
- color="info",
- disabled=False
- ),
- dbc.Button(
- id="btn-sel-remove-all",
- children="Remove All",
- class_name="w-100 me-1",
- color="info",
- disabled=False
- ),
- ],
- size="md",
- )
- ]
- ),
- ]
- )
-
- class ControlPanel:
- """A class representing the control panel.
- """
-
- def __init__(self, panel: dict) -> None:
- """Initialisation of the control pannel by default values. If
- particular values are provided (parameter "panel") they are set
- afterwards.
-
- :param panel: Custom values to be set to the control panel.
- :param default: Default values to be set to the control panel.
- :type panel: dict
- :type defaults: dict
- """
-
- # Defines also the order of keys
- self._defaults = {
- "dd-rls-value": str(),
- "dd-dut-options": list(),
- "dd-dut-disabled": True,
- "dd-dut-value": str(),
- "dd-dutver-options": list(),
- "dd-dutver-disabled": True,
- "dd-dutver-value": str(),
- "dd-phy-options": list(),
- "dd-phy-disabled": True,
- "dd-phy-value": str(),
- "dd-area-options": list(),
- "dd-area-disabled": True,
- "dd-area-value": str(),
- "dd-test-options": list(),
- "dd-test-disabled": True,
- "dd-test-value": str(),
- "cl-core-options": list(),
- "cl-core-value": list(),
- "cl-core-all-value": list(),
- "cl-core-all-options": C.CL_ALL_DISABLED,
- "cl-framesize-options": list(),
- "cl-framesize-value": list(),
- "cl-framesize-all-value": list(),
- "cl-framesize-all-options": C.CL_ALL_DISABLED,
- "cl-testtype-options": list(),
- "cl-testtype-value": list(),
- "cl-testtype-all-value": list(),
- "cl-testtype-all-options": C.CL_ALL_DISABLED,
- "btn-add-disabled": True,
- "cl-normalize-value": list(),
- "cl-selected-options": list()
- }
-
- self._panel = deepcopy(self._defaults)
- if panel:
- for key in self._defaults:
- self._panel[key] = panel[key]
-
- @property
- def defaults(self) -> dict:
- return self._defaults
-
- @property
- def panel(self) -> dict:
- return self._panel
-
- def set(self, kwargs: 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]
-
- def values(self) -> tuple:
- """Returns the values from the Control panel as a list.
-
- :returns: The values from the Control panel.
- :rtype: list
- """
- return tuple(self._panel.values())
-
- def callbacks(self, app):
- """Callbacks for the whole application.
-
- :param app: The application.
- :type app: Flask
- """
-
- def _generate_plotting_area(figs: tuple, table: pd.DataFrame,
- url: str) -> tuple:
- """Generate the plotting area with all its content.
-
- :param figs: Figures to be placed in the plotting area.
- :param table: A table to be placed in the plotting area bellow the
- figures.
- :param utl: The URL to be placed in the plotting area bellow the
- tables.
- :type figs: tuple of plotly.graph_objects.Figure
- :type table: pandas.DataFrame
- :type url: str
- :returns: tuple of elements to be shown in the plotting area.
- :rtype: tuple
- (dcc.Graph, dcc.Graph, dbc.Table, list(dbc.Col, dbc.Col))
- """
-
- (fig_tput, fig_lat) = figs
-
- row_fig_tput = C.PLACEHOLDER
- row_fig_lat = C.PLACEHOLDER
- row_table = C.PLACEHOLDER
- row_btn_dwnld = C.PLACEHOLDER
-
- if fig_tput:
- row_fig_tput = [
- dcc.Graph(
- id={"type": "graph", "index": "tput"},
- figure=fig_tput
- )
- ]
- row_btn_dwnld = [
- dbc.Col( # Download
- width=2,
- children=[
- dcc.Loading(children=[
- dbc.Button(
- id="btn-download-data",
- children=show_tooltip(self._tooltips,
- "help-download", "Download Data"),
- class_name="me-1",
- color="info"
- ),
- dcc.Download(id="download-data")
- ]),
- ]
- ),
- dbc.Col( # Show URL
- width=10,
- children=[
- dbc.InputGroup(
- class_name="me-1",
- children=[
- dbc.InputGroupText(
- style=C.URL_STYLE,
- children=show_tooltip(self._tooltips,
- "help-url", "URL", "input-url")
- ),
- dbc.Input(
- id="input-url",
- readonly=True,
- type="url",
- style=C.URL_STYLE,
- value=url
- )
- ]
- )
- ]
- )
- ]
- if fig_lat:
- row_fig_lat = [
- dcc.Graph(
- id={"type": "graph", "index": "lat"},
- figure=fig_lat
- )
- ]
- if not table.empty:
- row_table = [
- dbc.Table.from_dataframe(
- table,
- id={"type": "table", "index": "compare"},
- striped=True,
- bordered=True,
- hover=True
- )
- ]
-
- return row_fig_tput, row_fig_lat, row_table, row_btn_dwnld
-
- @app.callback(
- Output("control-panel", "data"), # Store
- Output("selected-tests", "data"), # Store
- Output("row-graph-tput", "children"),
- Output("row-graph-lat", "children"),
- Output("row-table", "children"),
- Output("row-btn-download", "children"),
- Output("row-card-sel-tests", "style"),
- Output("row-btns-sel-tests", "style"),
- Output("dd-ctrl-rls", "value"),
- Output("dd-ctrl-dut", "options"),
- Output("dd-ctrl-dut", "disabled"),
- Output("dd-ctrl-dut", "value"),
- Output("dd-ctrl-dutver", "options"),
- Output("dd-ctrl-dutver", "disabled"),
- Output("dd-ctrl-dutver", "value"),
- Output("dd-ctrl-phy", "options"),
- Output("dd-ctrl-phy", "disabled"),
- Output("dd-ctrl-phy", "value"),
- Output("dd-ctrl-area", "options"),
- Output("dd-ctrl-area", "disabled"),
- Output("dd-ctrl-area", "value"),
- Output("dd-ctrl-test", "options"),
- Output("dd-ctrl-test", "disabled"),
- Output("dd-ctrl-test", "value"),
- Output("cl-ctrl-core", "options"),
- Output("cl-ctrl-core", "value"),
- Output("cl-ctrl-core-all", "value"),
- Output("cl-ctrl-core-all", "options"),
- Output("cl-ctrl-framesize", "options"),
- Output("cl-ctrl-framesize", "value"),
- Output("cl-ctrl-framesize-all", "value"),
- Output("cl-ctrl-framesize-all", "options"),
- Output("cl-ctrl-testtype", "options"),
- Output("cl-ctrl-testtype", "value"),
- Output("cl-ctrl-testtype-all", "value"),
- Output("cl-ctrl-testtype-all", "options"),
- Output("btn-ctrl-add", "disabled"),
- Output("cl-ctrl-normalize", "value"),
- Output("cl-selected", "options"), # User selection
- State("control-panel", "data"), # Store
- State("selected-tests", "data"), # Store
- State("cl-selected", "value"), # User selection
- Input("dd-ctrl-rls", "value"),
- Input("dd-ctrl-dut", "value"),
- Input("dd-ctrl-dutver", "value"),
- Input("dd-ctrl-phy", "value"),
- Input("dd-ctrl-area", "value"),
- Input("dd-ctrl-test", "value"),
- Input("cl-ctrl-core", "value"),
- Input("cl-ctrl-core-all", "value"),
- Input("cl-ctrl-framesize", "value"),
- Input("cl-ctrl-framesize-all", "value"),
- Input("cl-ctrl-testtype", "value"),
- Input("cl-ctrl-testtype-all", "value"),
- Input("cl-ctrl-normalize", "value"),
- Input("btn-ctrl-add", "n_clicks"),
- Input("btn-sel-remove", "n_clicks"),
- Input("btn-sel-remove-all", "n_clicks"),
- Input("url", "href")
- )
- def _update_ctrl_panel(cp_data: dict, store_sel: list, list_sel: list,
- dd_rls: str, dd_dut: str, dd_dutver: str, dd_phy: str, dd_area: str,
- dd_test: str, cl_core: list, cl_core_all: list, cl_framesize: list,
- cl_framesize_all: list, cl_testtype: list, cl_testtype_all: list,
- cl_normalize: list, btn_add: int, btn_remove: int,
- btn_remove_all: int, href: str) -> tuple:
- """Update the application when the event is detected.
-
- :param cp_data: Current status of the control panel stored in
- browser.
- :param store_sel: List of tests selected by user stored in the
- browser.
- :param list_sel: List of tests selected by the user shown in the
- checklist.
- :param dd_rls: Input - Releases.
- :param dd_dut: Input - DUTs.
- :param dd_dutver: Input - Version of DUT.
- :param dd_phy: Input - topo- arch-nic-driver.
- :param dd_area: Input - Tested area.
- :param dd_test: Input - Test.
- :param cl_core: Input - Number of cores.
- :param cl_core_all: Input - All numbers of cores.
- :param cl_framesize: Input - Frame sizes.
- :param cl_framesize_all: Input - All frame sizes.
- :param cl_testtype: Input - Test type (NDR, PDR, MRR).
- :param cl_testtype_all: Input - All test types.
- :param cl_normalize: Input - Normalize the results.
- :param btn_add: Input - Button "Add Selected" tests.
- :param btn_remove: Input - Button "Remove selected" tests.
- :param btn_remove_all: Input - Button "Remove All" tests.
- :param href: Input - The URL provided by the browser.
- :type cp_data: dict
- :type store_sel: list
- :type list_sel: list
- :type dd_rls: str
- :type dd_dut: str
- :type dd_dutver: str
- :type dd_phy: str
- :type dd_area: str
- :type dd_test: str
- :type cl_core: list
- :type cl_core_all: list
- :type cl_framesize: list
- :type cl_framesize_all: list
- :type cl_testtype: list
- :type cl_testtype_all: list
- :type cl_normalize: list
- :type btn_add: int
- :type btn_remove: int
- :type btn_remove_all: int
- :type href: str
- :returns: New values for web page elements.
- :rtype: tuple
- """
-
- ctrl_panel = self.ControlPanel(cp_data)
-
- # Parse the url:
- parsed_url = url_decode(href)
-
- row_fig_tput = no_update
- row_fig_lat = no_update
- row_table = no_update
- row_btn_dwnld = no_update
- row_card_sel_tests = no_update
- row_btns_sel_tests = no_update
-
- trigger_id = callback_context.triggered[0]["prop_id"].split(".")[0]
-
- if trigger_id == "dd-ctrl-rls":
- try:
- rls = self.spec_tbs[dd_rls]
- options = sorted(
- [{"label": v, "value": v} for v in rls.keys()],
- key=lambda d: d["label"]
- )
- disabled = False
- except KeyError:
- options = list()
- disabled = True
- ctrl_panel.set({
- "dd-rls-value": dd_rls,
- "dd-dut-value": str(),
- "dd-dut-options": options,
- "dd-dut-disabled": disabled,
- "dd-dutver-value": str(),
- "dd-dutver-options": list(),
- "dd-dutver-disabled": True,
- "dd-phy-value": str(),
- "dd-phy-options": list(),
- "dd-phy-disabled": True,
- "dd-area-value": str(),
- "dd-area-options": list(),
- "dd-area-disabled": True,
- "dd-test-value": str(),
- "dd-test-options": list(),
- "dd-test-disabled": True,
- "cl-core-options": list(),
- "cl-core-value": list(),
- "cl-core-all-value": list(),
- "cl-core-all-options": C.CL_ALL_DISABLED,
- "cl-framesize-options": list(),
- "cl-framesize-value": list(),
- "cl-framesize-all-value": list(),
- "cl-framesize-all-options": C.CL_ALL_DISABLED,
- "cl-testtype-options": list(),
- "cl-testtype-value": list(),
- "cl-testtype-all-value": list(),
- "cl-testtype-all-options": C.CL_ALL_DISABLED
- })
- elif trigger_id == "dd-ctrl-dut":
- try:
- rls = ctrl_panel.get("dd-rls-value")
- dut = self.spec_tbs[rls][dd_dut]
- options = sorted(
- [{"label": v, "value": v} for v in dut.keys()],
- key=lambda d: d["label"]
- )
- disabled = False
- except KeyError:
- options = list()
- disabled = True
- ctrl_panel.set({
- "dd-dut-value": dd_dut,
- "dd-dutver-value": str(),
- "dd-dutver-options": options,
- "dd-dutver-disabled": disabled,
- "dd-phy-value": str(),
- "dd-phy-options": list(),
- "dd-phy-disabled": True,
- "dd-area-value": str(),
- "dd-area-options": list(),
- "dd-area-disabled": True,
- "dd-test-value": str(),
- "dd-test-options": list(),
- "dd-test-disabled": True,
- "cl-core-options": list(),
- "cl-core-value": list(),
- "cl-core-all-value": list(),
- "cl-core-all-options": C.CL_ALL_DISABLED,
- "cl-framesize-options": list(),
- "cl-framesize-value": list(),
- "cl-framesize-all-value": list(),
- "cl-framesize-all-options": C.CL_ALL_DISABLED,
- "cl-testtype-options": list(),
- "cl-testtype-value": list(),
- "cl-testtype-all-value": list(),
- "cl-testtype-all-options": C.CL_ALL_DISABLED
- })
- elif trigger_id == "dd-ctrl-dutver":
- try:
- rls = ctrl_panel.get("dd-rls-value")
- dut = ctrl_panel.get("dd-dut-value")
- dutver = self.spec_tbs[rls][dut][dd_dutver]
- options = sorted(
- [{"label": v, "value": v} for v in dutver.keys()],
- key=lambda d: d["label"]
- )
- disabled = False
- except KeyError:
- options = list()
- disabled = True
- ctrl_panel.set({
- "dd-dutver-value": dd_dutver,
- "dd-phy-value": str(),
- "dd-phy-options": options,
- "dd-phy-disabled": disabled,
- "dd-area-value": str(),
- "dd-area-options": list(),
- "dd-area-disabled": True,
- "dd-test-value": str(),
- "dd-test-options": list(),
- "dd-test-disabled": True,
- "cl-core-options": list(),
- "cl-core-value": list(),
- "cl-core-all-value": list(),
- "cl-core-all-options": C.CL_ALL_DISABLED,
- "cl-framesize-options": list(),
- "cl-framesize-value": list(),
- "cl-framesize-all-value": list(),
- "cl-framesize-all-options": C.CL_ALL_DISABLED,
- "cl-testtype-options": list(),
- "cl-testtype-value": list(),
- "cl-testtype-all-value": list(),
- "cl-testtype-all-options": C.CL_ALL_DISABLED
- })
- elif trigger_id == "dd-ctrl-phy":
- try:
- rls = ctrl_panel.get("dd-rls-value")
- dut = ctrl_panel.get("dd-dut-value")
- dutver = ctrl_panel.get("dd-dutver-value")
- phy = self.spec_tbs[rls][dut][dutver][dd_phy]
- options = sorted(
- [{"label": label(v), "value": v} for v in phy.keys()],
- key=lambda d: d["label"]
- )
- disabled = False
- except KeyError:
- options = list()
- disabled = True
- ctrl_panel.set({
- "dd-phy-value": dd_phy,
- "dd-area-value": str(),
- "dd-area-options": options,
- "dd-area-disabled": disabled,
- "dd-test-value": str(),
- "dd-test-options": list(),
- "dd-test-disabled": True,
- "cl-core-options": list(),
- "cl-core-value": list(),
- "cl-core-all-value": list(),
- "cl-core-all-options": C.CL_ALL_DISABLED,
- "cl-framesize-options": list(),
- "cl-framesize-value": list(),
- "cl-framesize-all-value": list(),
- "cl-framesize-all-options": C.CL_ALL_DISABLED,
- "cl-testtype-options": list(),
- "cl-testtype-value": list(),
- "cl-testtype-all-value": list(),
- "cl-testtype-all-options": C.CL_ALL_DISABLED
- })
- elif trigger_id == "dd-ctrl-area":
- try:
- rls = ctrl_panel.get("dd-rls-value")
- dut = ctrl_panel.get("dd-dut-value")
- dutver = ctrl_panel.get("dd-dutver-value")
- phy = ctrl_panel.get("dd-phy-value")
- area = self.spec_tbs[rls][dut][dutver][phy][dd_area]
- options = sorted(
- [{"label": v, "value": v} for v in area.keys()],
- key=lambda d: d["label"]
- )
- disabled = False
- except KeyError:
- options = list()
- disabled = True
- ctrl_panel.set({
- "dd-area-value": dd_area,
- "dd-test-value": str(),
- "dd-test-options": options,
- "dd-test-disabled": disabled,
- "cl-core-options": list(),
- "cl-core-value": list(),
- "cl-core-all-value": list(),
- "cl-core-all-options": C.CL_ALL_DISABLED,
- "cl-framesize-options": list(),
- "cl-framesize-value": list(),
- "cl-framesize-all-value": list(),
- "cl-framesize-all-options": C.CL_ALL_DISABLED,
- "cl-testtype-options": list(),
- "cl-testtype-value": list(),
- "cl-testtype-all-value": list(),
- "cl-testtype-all-options": C.CL_ALL_DISABLED
- })
- elif trigger_id == "dd-ctrl-test":
- rls = ctrl_panel.get("dd-rls-value")
- dut = ctrl_panel.get("dd-dut-value")
- dutver = ctrl_panel.get("dd-dutver-value")
- phy = ctrl_panel.get("dd-phy-value")
- area = ctrl_panel.get("dd-area-value")
- test = self.spec_tbs[rls][dut][dutver][phy][area][dd_test]
- if dut and phy and area and dd_test:
- ctrl_panel.set({
- "dd-test-value": dd_test,
- "cl-core-options": [{"label": v, "value": v}
- for v in sorted(test["core"])],
- "cl-core-value": list(),
- "cl-core-all-value": list(),
- "cl-core-all-options": C.CL_ALL_ENABLED,
- "cl-framesize-options": [{"label": v, "value": v}
- for v in sorted(test["frame-size"])],
- "cl-framesize-value": list(),
- "cl-framesize-all-value": list(),
- "cl-framesize-all-options": C.CL_ALL_ENABLED,
- "cl-testtype-options": [{"label": v, "value": v}
- for v in sorted(test["test-type"])],
- "cl-testtype-value": list(),
- "cl-testtype-all-value": list(),
- "cl-testtype-all-options": C.CL_ALL_ENABLED,
- })
- elif trigger_id == "cl-ctrl-core":
- val_sel, val_all = sync_checklists(
- options=ctrl_panel.get("cl-core-options"),
- sel=cl_core,
- all=list(),
- id=""
- )
- ctrl_panel.set({
- "cl-core-value": val_sel,
- "cl-core-all-value": val_all,
- })
- elif trigger_id == "cl-ctrl-core-all":
- val_sel, val_all = sync_checklists(
- options = ctrl_panel.get("cl-core-options"),
- sel=list(),
- all=cl_core_all,
- id="all"
- )
- ctrl_panel.set({
- "cl-core-value": val_sel,
- "cl-core-all-value": val_all,
- })
- elif trigger_id == "cl-ctrl-framesize":
- val_sel, val_all = sync_checklists(
- options = ctrl_panel.get("cl-framesize-options"),
- sel=cl_framesize,
- all=list(),
- id=""
- )
- ctrl_panel.set({
- "cl-framesize-value": val_sel,
- "cl-framesize-all-value": val_all,
- })
- elif trigger_id == "cl-ctrl-framesize-all":
- val_sel, val_all = sync_checklists(
- options = ctrl_panel.get("cl-framesize-options"),
- sel=list(),
- all=cl_framesize_all,
- id="all"
- )
- ctrl_panel.set({
- "cl-framesize-value": val_sel,
- "cl-framesize-all-value": val_all,
- })
- elif trigger_id == "cl-ctrl-testtype":
- val_sel, val_all = sync_checklists(
- options = ctrl_panel.get("cl-testtype-options"),
- sel=cl_testtype,
- all=list(),
- id=""
- )
- ctrl_panel.set({
- "cl-testtype-value": val_sel,
- "cl-testtype-all-value": val_all,
- })
- elif trigger_id == "cl-ctrl-testtype-all":
- val_sel, val_all = sync_checklists(
- options = ctrl_panel.get("cl-testtype-options"),
- sel=list(),
- all=cl_testtype_all,
- id="all"
- )
- ctrl_panel.set({
- "cl-testtype-value": val_sel,
- "cl-testtype-all-value": val_all,
- })
- elif trigger_id == "btn-ctrl-add":
- _ = btn_add
- rls = ctrl_panel.get("dd-rls-value")
- dut = ctrl_panel.get("dd-dut-value")
- dutver = ctrl_panel.get("dd-dutver-value")
- phy = ctrl_panel.get("dd-phy-value")
- area = ctrl_panel.get("dd-area-value")
- test = ctrl_panel.get("dd-test-value")
- cores = ctrl_panel.get("cl-core-value")
- framesizes = ctrl_panel.get("cl-framesize-value")
- testtypes = ctrl_panel.get("cl-testtype-value")
- # Add selected test to the list of tests in store:
- if all((rls, dut, dutver, phy, area, test, cores, framesizes,
- testtypes)):
- if store_sel is None:
- store_sel = list()
- for core in cores:
- for framesize in framesizes:
- for ttype in testtypes:
- 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 [itm["id"] for itm 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"])
- row_card_sel_tests = C.STYLE_ENABLED
- row_btns_sel_tests = C.STYLE_ENABLED
- if C.CLEAR_ALL_INPUTS:
- ctrl_panel.set(ctrl_panel.defaults)
- ctrl_panel.set({
- "cl-selected-options": list_tests(store_sel)
- })
- elif trigger_id == "btn-sel-remove-all":
- _ = btn_remove_all
- row_fig_tput = C.PLACEHOLDER
- row_fig_lat = C.PLACEHOLDER
- row_table = C.PLACEHOLDER
- row_btn_dwnld = C.PLACEHOLDER
- row_card_sel_tests = C.STYLE_DISABLED
- row_btns_sel_tests = C.STYLE_DISABLED
- store_sel = list()
- ctrl_panel.set({"cl-selected-options": list()})
- elif trigger_id == "btn-sel-remove":
- _ = btn_remove
- if list_sel:
- new_store_sel = list()
- for item in store_sel:
- if item["id"] not in list_sel:
- new_store_sel.append(item)
- store_sel = new_store_sel
- elif trigger_id == "url":
- # TODO: Add verification
- url_params = parsed_url["params"]
- if url_params:
- store_sel = literal_eval(
- url_params.get("store_sel", list())[0])
- if store_sel:
- row_card_sel_tests = C.STYLE_ENABLED
- row_btns_sel_tests = C.STYLE_ENABLED
-
- if trigger_id in ("btn-ctrl-add", "url", "btn-sel-remove",
- "cl-ctrl-normalize"):
- if store_sel:
- row_fig_tput, row_fig_lat, row_table, row_btn_dwnld = \
- _generate_plotting_area(
- graph_iterative(
- self.data, store_sel, self.layout,
- bool(cl_normalize)
- ),
- table_comparison(
- self.data, store_sel, bool(cl_normalize)
- ),
- gen_new_url(parsed_url, {"store_sel": store_sel})
- )
- ctrl_panel.set({
- "cl-selected-options": list_tests(store_sel)
- })
- else:
- row_fig_tput = C.PLACEHOLDER
- row_fig_lat = C.PLACEHOLDER
- row_table = C.PLACEHOLDER
- row_btn_dwnld = C.PLACEHOLDER
- row_card_sel_tests = C.STYLE_DISABLED
- row_btns_sel_tests = C.STYLE_DISABLED
- store_sel = list()
- ctrl_panel.set({"cl-selected-options": list()})
-
- if ctrl_panel.get("cl-core-value") and \
- ctrl_panel.get("cl-framesize-value") and \
- ctrl_panel.get("cl-testtype-value"):
- disabled = False
- else:
- disabled = True
- ctrl_panel.set({
- "btn-add-disabled": disabled,
- "cl-normalize-value": cl_normalize
- })
-
- ret_val = [
- ctrl_panel.panel, store_sel,
- row_fig_tput, row_fig_lat, row_table, row_btn_dwnld,
- row_card_sel_tests, row_btns_sel_tests
- ]
- ret_val.extend(ctrl_panel.values())
- return ret_val
-
- @app.callback(
- Output("download-data", "data"),
- State("selected-tests", "data"),
- Input("btn-download-data", "n_clicks"),
- prevent_initial_call=True
- )
- def _download_data(store_sel, n_clicks):
- """Download the data
-
- :param store_sel: List of tests selected by user stored in the
- browser.
- :param n_clicks: Number of clicks on the button "Download".
- :type store_sel: list
- :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
-
- 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)
diff --git a/resources/tools/dash/app/pal/report/layout.yaml b/resources/tools/dash/app/pal/report/layout.yaml
deleted file mode 100644
index 689a91d291..0000000000
--- a/resources/tools/dash/app/pal/report/layout.yaml
+++ /dev/null
@@ -1,240 +0,0 @@
-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: False
- yaxis:
- title: "Packet Throughput [pps]"
- 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: False
- range: [0, 50]
- autosize: False
- margin:
- t: 50
- b: 0
- l: 80
- r: 20
- showlegend: True
- legend:
- orientation: "h"
- font:
- size: 10
- width: 700
- height: 900
- 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: False
- 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: False
- range: [0, 50]
- autosize: False
- margin:
- t: 50
- b: 0
- l: 80
- r: 20
- showlegend: True
- legend:
- orientation: "h"
- font:
- size: 10
- width: 700
- height: 900
- paper_bgcolor: "#fff"
- plot_bgcolor: "#fff"
- hoverlabel:
- namelength: -1
-
-plot-hdrh-latency:
- # title:
- # text: "Latency by Percentile Distribution"
- # xanchor: "center"
- # x: 0.5
- # font:
- # size: 10
- showlegend: True
- legend:
- traceorder: "normal"
- orientation: "h"
- # font:
- # size: 16
- 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 [%]"
- # titlefont:
- # size: 14
- autorange: False
- fixedrange: 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]
- # tickfont:
- # size: 14
- yaxis:
- title: "One-Way Latency per Direction [us]"
- # 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: True
- #height: 400
- paper_bgcolor: "white"
- plot_bgcolor: "white"
-
-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"
- 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
- },
- },
- ]
diff --git a/resources/tools/dash/app/pal/static/dist/css/bootstrap.min.css b/resources/tools/dash/app/pal/static/dist/css/bootstrap.min.css
deleted file mode 100644
index a7c5612a62..0000000000
--- a/resources/tools/dash/app/pal/static/dist/css/bootstrap.min.css
+++ /dev/null
@@ -1,12 +0,0 @@
-/*!
- * Bootswatch v5.1.3
- * Homepage: https://bootswatch.com
- * Copyright 2012-2021 Thomas Park
- * Licensed under MIT
- * Based on Bootstrap
-*//*!
- * Bootstrap v5.1.3 (https://getbootstrap.com/)
- * Copyright 2011-2021 The Bootstrap Authors
- * Copyright 2011-2021 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
- */@import url(https://fonts.googleapis.com/css2?family=Nunito+Sans:wght@400;600&display=swap);:root{--bs-blue:#007bff;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#e83e8c;--bs-red:#d9534f;--bs-orange:#fd7e14;--bs-yellow:#f0ad4e;--bs-green:#4bbf73;--bs-teal:#20c997;--bs-cyan:#1f9bcf;--bs-white:#fff;--bs-gray:#919aa1;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#f7f7f9;--bs-gray-300:#eceeef;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#919aa1;--bs-gray-700:#55595c;--bs-gray-800:#343a40;--bs-gray-900:#1a1a1a;--bs-primary:#1a1a1a;--bs-secondary:#fff;--bs-success:#4bbf73;--bs-info:#1f9bcf;--bs-warning:#f0ad4e;--bs-danger:#d9534f;--bs-light:#fff;--bs-dark:#343a40;--bs-primary-rgb:26,26,26;--bs-secondary-rgb:255,255,255;--bs-success-rgb:75,191,115;--bs-info-rgb:31,155,207;--bs-warning-rgb:240,173,78;--bs-danger-rgb:217,83,79;--bs-light-rgb:255,255,255;--bs-dark-rgb:52,58,64;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-body-color-rgb:85,89,92;--bs-body-bg-rgb:255,255,255;--bs-font-sans-serif:"Nunito Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#55595c;--bs-body-bg:#fff}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:600;line-height:1.2;color:#1a1a1a}.h1,h1{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h1,h1{font-size:2rem}}.h2,h2{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h2,h2{font-size:1.75rem}}.h3,h3{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h3,h3{font-size:1.5rem}}.h4,h4{font-size:1.25rem}.h5,h5{font-size:1rem}.h6,h6{font-size:.75rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#1a1a1a;text-decoration:underline}a:hover{color:#151515}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#1a1a1a}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#919aa1;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#919aa1}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #eceeef;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:#919aa1}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{width:100%;padding-right:var(--bs-gutter-x,.75rem);padding-left:var(--bs-gutter-x,.75rem);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{-ms-flex-negative:0;flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.333333%}.row-cols-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.666667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.333333%}.col-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.666667%}.col-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.333333%}.col-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.666667%}.col-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.333333%}.col-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.666667%}.col-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.333333%}.col-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.666667%}.col-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-sm-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-sm-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-sm-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-sm-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.333333%}.row-cols-sm-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-sm-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-sm-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.666667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-sm-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.333333%}.col-sm-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.666667%}.col-sm-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-sm-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.333333%}.col-sm-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.666667%}.col-sm-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-sm-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.333333%}.col-sm-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.666667%}.col-sm-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-sm-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.333333%}.col-sm-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.666667%}.col-sm-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-md-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-md-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-md-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-md-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.333333%}.row-cols-md-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-md-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-md-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.666667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-md-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.333333%}.col-md-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.666667%}.col-md-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-md-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.333333%}.col-md-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.666667%}.col-md-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-md-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.333333%}.col-md-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.666667%}.col-md-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-md-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.333333%}.col-md-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.666667%}.col-md-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-lg-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-lg-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-lg-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-lg-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.333333%}.row-cols-lg-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-lg-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-lg-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.666667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-lg-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.333333%}.col-lg-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.666667%}.col-lg-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-lg-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.333333%}.col-lg-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.666667%}.col-lg-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-lg-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.333333%}.col-lg-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.666667%}.col-lg-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-lg-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.333333%}.col-lg-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.666667%}.col-lg-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-xl-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-xl-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-xl-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-xl-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.333333%}.row-cols-xl-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-xl-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-xl-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.666667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-xl-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.333333%}.col-xl-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.666667%}.col-xl-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-xl-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.333333%}.col-xl-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.666667%}.col-xl-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-xl-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.333333%}.col-xl-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.666667%}.col-xl-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-xl-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.333333%}.col-xl-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.666667%}.col-xl-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{-ms-flex:1 0 0%;flex:1 0 0%}.row-cols-xxl-auto>*{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.row-cols-xxl-1>*{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.row-cols-xxl-2>*{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.row-cols-xxl-3>*{-ms-flex:0 0 auto;flex:0 0 auto;width:33.333333%}.row-cols-xxl-4>*{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.row-cols-xxl-5>*{-ms-flex:0 0 auto;flex:0 0 auto;width:20%}.row-cols-xxl-6>*{-ms-flex:0 0 auto;flex:0 0 auto;width:16.666667%}.col-xxl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.col-xxl-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.333333%}.col-xxl-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.666667%}.col-xxl-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.col-xxl-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.333333%}.col-xxl-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.666667%}.col-xxl-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.col-xxl-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.333333%}.col-xxl-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.666667%}.col-xxl-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.col-xxl-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.333333%}.col-xxl-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.666667%}.col-xxl-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.333333%}.offset-xxl-2{margin-left:16.666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.333333%}.offset-xxl-5{margin-left:41.666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.333333%}.offset-xxl-8{margin-left:66.666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.333333%}.offset-xxl-11{margin-left:91.666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-bg:transparent;--bs-table-accent-bg:transparent;--bs-table-striped-color:#55595c;--bs-table-striped-bg:rgba(0, 0, 0, 0.05);--bs-table-active-color:#55595c;--bs-table-active-bg:rgba(0, 0, 0, 0.1);--bs-table-hover-color:#55595c;--bs-table-hover-bg:rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:#55595c;vertical-align:top;border-color:rgba(0,0,0,.05)}.table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table>:not(:first-child){border-top:2px solid currentColor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg:var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover>*{--bs-table-accent-bg:var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-bg:#d1d1d1;--bs-table-striped-bg:#c7c7c7;--bs-table-striped-color:#000;--bs-table-active-bg:#bcbcbc;--bs-table-active-color:#000;--bs-table-hover-bg:#c1c1c1;--bs-table-hover-color:#000;color:#000;border-color:#bcbcbc}.table-secondary{--bs-table-bg:white;--bs-table-striped-bg:#f2f2f2;--bs-table-striped-color:#000;--bs-table-active-bg:#e6e6e6;--bs-table-active-color:#000;--bs-table-hover-bg:#ececec;--bs-table-hover-color:#000;color:#000;border-color:#e6e6e6}.table-success{--bs-table-bg:#dbf2e3;--bs-table-striped-bg:#d0e6d8;--bs-table-striped-color:#000;--bs-table-active-bg:#c5dacc;--bs-table-active-color:#000;--bs-table-hover-bg:#cbe0d2;--bs-table-hover-color:#000;color:#000;border-color:#c5dacc}.table-info{--bs-table-bg:#d2ebf5;--bs-table-striped-bg:#c8dfe9;--bs-table-striped-color:#000;--bs-table-active-bg:#bdd4dd;--bs-table-active-color:#000;--bs-table-hover-bg:#c2d9e3;--bs-table-hover-color:#000;color:#000;border-color:#bdd4dd}.table-warning{--bs-table-bg:#fcefdc;--bs-table-striped-bg:#efe3d1;--bs-table-striped-color:#000;--bs-table-active-bg:#e3d7c6;--bs-table-active-color:#000;--bs-table-hover-bg:#e9ddcc;--bs-table-hover-color:#000;color:#000;border-color:#e3d7c6}.table-danger{--bs-table-bg:#f7dddc;--bs-table-striped-bg:#ebd2d1;--bs-table-striped-color:#000;--bs-table-active-bg:#dec7c6;--bs-table-active-color:#000;--bs-table-hover-bg:#e4cccc;--bs-table-hover-color:#000;color:#000;border-color:#dec7c6}.table-light{--bs-table-bg:#fff;--bs-table-striped-bg:#f2f2f2;--bs-table-striped-color:#000;--bs-table-active-bg:#e6e6e6;--bs-table-active-color:#000;--bs-table-hover-bg:#ececec;--bs-table-hover-color:#000;color:#000;border-color:#e6e6e6}.table-dark{--bs-table-bg:#343a40;--bs-table-striped-bg:#3e444a;--bs-table-striped-color:#fff;--bs-table-active-bg:#484e53;--bs-table-active-color:#fff;--bs-table-hover-bg:#43494e;--bs-table-hover-color:#fff;color:#fff;border-color:#484e53}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:.75rem;padding-bottom:.75rem;margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:2rem;padding-bottom:2rem;font-size:1.25rem}.col-form-label-sm{padding-top:.5rem;padding-bottom:.5rem;font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:#919aa1}.form-control{display:block;width:100%;padding:.75rem 1.5rem;font-size:1rem;font-weight:400;line-height:1.5;color:#55595c;background-color:#f7f7f9;background-clip:padding-box;border:0 solid #ced4da;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#55595c;background-color:#f7f7f9;border-color:#8d8d8d;outline:0;box-shadow:0 0 0 .25rem rgba(26,26,26,.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::-webkit-input-placeholder{color:#919aa1;opacity:1}.form-control::-moz-placeholder{color:#919aa1;opacity:1}.form-control:-ms-input-placeholder{color:#919aa1;opacity:1}.form-control::-ms-input-placeholder{color:#919aa1;opacity:1}.form-control::placeholder{color:#919aa1;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#eceeef;opacity:1}.form-control::file-selector-button{padding:.75rem 1.5rem;margin:-.75rem -1.5rem;-webkit-margin-end:1.5rem;-moz-margin-end:1.5rem;margin-inline-end:1.5rem;color:#55595c;background-color:#eceeef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:0;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#e0e2e3}.form-control::-webkit-file-upload-button{padding:.75rem 1.5rem;margin:-.75rem -1.5rem;-webkit-margin-end:1.5rem;margin-inline-end:1.5rem;color:#55595c;background-color:#eceeef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:0;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#e0e2e3}.form-control-plaintext{display:block;width:100%;padding:.75rem 0;margin-bottom:0;line-height:1.5;color:#55595c;background-color:transparent;border:solid transparent;border-width:0 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + 1rem);padding:.5rem 1rem;font-size:.875rem}.form-control-sm::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;-moz-margin-end:1rem;margin-inline-end:1rem}.form-control-sm::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg{min-height:calc(1.5em + 4rem);padding:2rem 2rem;font-size:1.25rem}.form-control-lg::file-selector-button{padding:2rem 2rem;margin:-2rem -2rem;-webkit-margin-end:2rem;-moz-margin-end:2rem;margin-inline-end:2rem}.form-control-lg::-webkit-file-upload-button{padding:2rem 2rem;margin:-2rem -2rem;-webkit-margin-end:2rem;margin-inline-end:2rem}textarea.form-control{min-height:calc(1.5em + 1.5rem)}textarea.form-control-sm{min-height:calc(1.5em + 1rem)}textarea.form-control-lg{min-height:calc(1.5em + 4rem)}.form-control-color{width:3rem;height:auto;padding:.75rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{height:1.5em}.form-control-color::-webkit-color-swatch{height:1.5em}.form-select{display:block;width:100%;padding:.75rem 4.5rem .75rem 1.5rem;-moz-padding-start:calc(1.5rem - 3px);font-size:1rem;font-weight:400;line-height:1.5;color:#55595c;background-color:#f7f7f9;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 1.5rem center;background-size:16px 12px;border:0 solid #ced4da;border-radius:0;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#8d8d8d;outline:0;box-shadow:0 0 0 .25rem rgba(26,26,26,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:1.5rem;background-image:none}.form-select:disabled{background-color:#f7f7f9}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #55595c}.form-select-sm{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:.875rem}.form-select-lg{padding-top:2rem;padding-bottom:2rem;padding-left:2rem;font-size:1.25rem}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#f7f7f9;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{-webkit-filter:brightness(90%);filter:brightness(90%)}.form-check-input:focus{border-color:#8d8d8d;outline:0;box-shadow:0 0 0 .25rem rgba(26,26,26,.25)}.form-check-input:checked{background-color:#1a1a1a;border-color:#1a1a1a}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#1a1a1a;border-color:#1a1a1a;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;-webkit-filter:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");background-position:left center;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%238d8d8d'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;-webkit-filter:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(26,26,26,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(26,26,26,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#1a1a1a;border:0;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#bababa}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#eceeef;border-color:transparent}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#1a1a1a;border:0;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#bababa}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#eceeef;border-color:transparent}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:3.5rem;line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem 1.5rem;pointer-events:none;border:0 solid transparent;-webkit-transform-origin:0 0;transform-origin:0 0;transition:opacity .1s ease-in-out,-webkit-transform .1s ease-in-out;transition:opacity .1s ease-in-out,transform .1s ease-in-out;transition:opacity .1s ease-in-out,transform .1s ease-in-out,-webkit-transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control{padding:1rem 1.5rem}.form-floating>.form-control::-webkit-input-placeholder{color:transparent}.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control:-ms-input-placeholder{color:transparent}.form-floating>.form-control::-ms-input-placeholder{color:transparent}.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-ms-input-placeholder){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:not(:-ms-input-placeholder)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;-webkit-transform:scale(.85) translateY(-.5rem) translateX(.15rem);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;-webkit-transform:scale(.85) translateY(-.5rem) translateX(.15rem);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.75rem 1.5rem;font-size:1rem;font-weight:400;line-height:1.5;color:#55595c;text-align:center;white-space:nowrap;background-color:#eceeef;border:0 solid #ced4da}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:2rem 2rem;font-size:1.25rem}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.5rem 1rem;font-size:.875rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:6rem}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#4bbf73}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(75,191,115,.9)}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#4bbf73;padding-right:calc(1.5em + 1.5rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%234bbf73' d='M2.3 6.73L.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'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .375rem) center;background-size:calc(.75em + .75rem) calc(.75em + .75rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#4bbf73;box-shadow:0 0 0 .25rem rgba(75,191,115,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + 1.5rem);background-position:top calc(.375em + .375rem) right calc(.375em + .375rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:#4bbf73}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{padding-right:8.25rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%234bbf73' d='M2.3 6.73L.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'/%3e%3c/svg%3e");background-position:right 1.5rem center,center right 4.5rem;background-size:16px 12px,calc(.75em + .75rem) calc(.75em + .75rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:#4bbf73;box-shadow:0 0 0 .25rem rgba(75,191,115,.25)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:#4bbf73}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:#4bbf73}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(75,191,115,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#4bbf73}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group .form-control.is-valid,.input-group .form-select.is-valid,.was-validated .input-group .form-control:valid,.was-validated .input-group .form-select:valid{z-index:1}.input-group .form-control.is-valid:focus,.input-group .form-select.is-valid:focus,.was-validated .input-group .form-control:valid:focus,.was-validated .input-group .form-select:valid:focus{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#d9534f}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(217,83,79,.9)}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#d9534f;padding-right:calc(1.5em + 1.5rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23d9534f'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23d9534f' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .375rem) center;background-size:calc(.75em + .75rem) calc(.75em + .75rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#d9534f;box-shadow:0 0 0 .25rem rgba(217,83,79,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + 1.5rem);background-position:top calc(.375em + .375rem) right calc(.375em + .375rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:#d9534f}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{padding-right:8.25rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23d9534f'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23d9534f' stroke='none'/%3e%3c/svg%3e");background-position:right 1.5rem center,center right 4.5rem;background-size:16px 12px,calc(.75em + .75rem) calc(.75em + .75rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:#d9534f;box-shadow:0 0 0 .25rem rgba(217,83,79,.25)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:#d9534f}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:#d9534f}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(217,83,79,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#d9534f}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group .form-control.is-invalid,.input-group .form-select.is-invalid,.was-validated .input-group .form-control:invalid,.was-validated .input-group .form-select:invalid{z-index:2}.input-group .form-control.is-invalid:focus,.input-group .form-select.is-invalid:focus,.was-validated .input-group .form-control:invalid:focus,.was-validated .input-group .form-select:invalid:focus{z-index:3}.btn{display:inline-block;font-weight:600;line-height:1.5rem;color:#55595c;text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:0 solid transparent;padding:.75rem 1.5rem;font-size:1rem;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#55595c}.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(26,26,26,.25)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65}.btn-primary{color:#fff;background-color:#1a1a1a;border-color:#1a1a1a}.btn-primary:hover{color:#fff;background-color:#161616;border-color:#151515}.btn-check:focus+.btn-primary,.btn-primary:focus{color:#fff;background-color:#161616;border-color:#151515;box-shadow:0 0 0 .25rem rgba(60,60,60,.5)}.btn-check:active+.btn-primary,.btn-check:checked+.btn-primary,.btn-primary.active,.btn-primary:active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#151515;border-color:#141414}.btn-check:active+.btn-primary:focus,.btn-check:checked+.btn-primary:focus,.btn-primary.active:focus,.btn-primary:active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(60,60,60,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#1a1a1a;border-color:#1a1a1a}.btn-secondary{color:#000;background-color:#fff;border-color:#fff}.btn-secondary:hover{color:#000;background-color:#fff;border-color:#fff}.btn-check:focus+.btn-secondary,.btn-secondary:focus{color:#000;background-color:#fff;border-color:#fff;box-shadow:0 0 0 .25rem rgba(217,217,217,.5)}.btn-check:active+.btn-secondary,.btn-check:checked+.btn-secondary,.btn-secondary.active,.btn-secondary:active,.show>.btn-secondary.dropdown-toggle{color:#000;background-color:#fff;border-color:#fff}.btn-check:active+.btn-secondary:focus,.btn-check:checked+.btn-secondary:focus,.btn-secondary.active:focus,.btn-secondary:active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(217,217,217,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#000;background-color:#fff;border-color:#fff}.btn-success{color:#fff;background-color:#4bbf73;border-color:#4bbf73}.btn-success:hover{color:#fff;background-color:#40a262;border-color:#3c995c}.btn-check:focus+.btn-success,.btn-success:focus{color:#fff;background-color:#40a262;border-color:#3c995c;box-shadow:0 0 0 .25rem rgba(102,201,136,.5)}.btn-check:active+.btn-success,.btn-check:checked+.btn-success,.btn-success.active,.btn-success:active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#3c995c;border-color:#388f56}.btn-check:active+.btn-success:focus,.btn-check:checked+.btn-success:focus,.btn-success.active:focus,.btn-success:active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(102,201,136,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#4bbf73;border-color:#4bbf73}.btn-info{color:#fff;background-color:#1f9bcf;border-color:#1f9bcf}.btn-info:hover{color:#fff;background-color:#1a84b0;border-color:#197ca6}.btn-check:focus+.btn-info,.btn-info:focus{color:#fff;background-color:#1a84b0;border-color:#197ca6;box-shadow:0 0 0 .25rem rgba(65,170,214,.5)}.btn-check:active+.btn-info,.btn-check:checked+.btn-info,.btn-info.active,.btn-info:active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#197ca6;border-color:#17749b}.btn-check:active+.btn-info:focus,.btn-check:checked+.btn-info:focus,.btn-info.active:focus,.btn-info:active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(65,170,214,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#1f9bcf;border-color:#1f9bcf}.btn-warning{color:#000;background-color:#f0ad4e;border-color:#f0ad4e}.btn-warning:hover{color:#000;background-color:#f2b969;border-color:#f2b560}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#000;background-color:#f2b969;border-color:#f2b560;box-shadow:0 0 0 .25rem rgba(204,147,66,.5)}.btn-check:active+.btn-warning,.btn-check:checked+.btn-warning,.btn-warning.active,.btn-warning:active,.show>.btn-warning.dropdown-toggle{color:#000;background-color:#f3bd71;border-color:#f2b560}.btn-check:active+.btn-warning:focus,.btn-check:checked+.btn-warning:focus,.btn-warning.active:focus,.btn-warning:active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(204,147,66,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#000;background-color:#f0ad4e;border-color:#f0ad4e}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d9534f}.btn-danger:hover{color:#fff;background-color:#b84743;border-color:#ae423f}.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fff;background-color:#b84743;border-color:#ae423f;box-shadow:0 0 0 .25rem rgba(223,109,105,.5)}.btn-check:active+.btn-danger,.btn-check:checked+.btn-danger,.btn-danger.active,.btn-danger:active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#ae423f;border-color:#a33e3b}.btn-check:active+.btn-danger:focus,.btn-check:checked+.btn-danger:focus,.btn-danger.active:focus,.btn-danger:active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(223,109,105,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#d9534f;border-color:#d9534f}.btn-light{color:#000;background-color:#fff;border-color:#fff}.btn-light:hover{color:#000;background-color:#fff;border-color:#fff}.btn-check:focus+.btn-light,.btn-light:focus{color:#000;background-color:#fff;border-color:#fff;box-shadow:0 0 0 .25rem rgba(217,217,217,.5)}.btn-check:active+.btn-light,.btn-check:checked+.btn-light,.btn-light.active,.btn-light:active,.show>.btn-light.dropdown-toggle{color:#000;background-color:#fff;border-color:#fff}.btn-check:active+.btn-light:focus,.btn-check:checked+.btn-light:focus,.btn-light.active:focus,.btn-light:active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(217,217,217,.5)}.btn-light.disabled,.btn-light:disabled{color:#000;background-color:#fff;border-color:#fff}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#2c3136;border-color:#2a2e33}.btn-check:focus+.btn-dark,.btn-dark:focus{color:#fff;background-color:#2c3136;border-color:#2a2e33;box-shadow:0 0 0 .25rem rgba(82,88,93,.5)}.btn-check:active+.btn-dark,.btn-check:checked+.btn-dark,.btn-dark.active,.btn-dark:active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#2a2e33;border-color:#272c30}.btn-check:active+.btn-dark:focus,.btn-check:checked+.btn-dark:focus,.btn-dark.active:focus,.btn-dark:active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-primary{color:#1a1a1a;border-color:#1a1a1a}.btn-outline-primary:hover{color:#fff;background-color:#1a1a1a;border-color:#1a1a1a}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(26,26,26,.5)}.btn-check:active+.btn-outline-primary,.btn-check:checked+.btn-outline-primary,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show,.btn-outline-primary:active{color:#fff;background-color:#1a1a1a;border-color:#1a1a1a}.btn-check:active+.btn-outline-primary:focus,.btn-check:checked+.btn-outline-primary:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus,.btn-outline-primary:active:focus{box-shadow:0 0 0 .25rem rgba(26,26,26,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#1a1a1a;background-color:transparent}.btn-outline-secondary{color:#fff;border-color:#fff}.btn-outline-secondary:hover{color:#000;background-color:#fff;border-color:#fff}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(255,255,255,.5)}.btn-check:active+.btn-outline-secondary,.btn-check:checked+.btn-outline-secondary,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show,.btn-outline-secondary:active{color:#000;background-color:#fff;border-color:#fff}.btn-check:active+.btn-outline-secondary:focus,.btn-check:checked+.btn-outline-secondary:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus,.btn-outline-secondary:active:focus{box-shadow:0 0 0 .25rem rgba(255,255,255,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#fff;background-color:transparent}.btn-outline-success{color:#4bbf73;border-color:#4bbf73}.btn-outline-success:hover{color:#fff;background-color:#4bbf73;border-color:#4bbf73}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(75,191,115,.5)}.btn-check:active+.btn-outline-success,.btn-check:checked+.btn-outline-success,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show,.btn-outline-success:active{color:#fff;background-color:#4bbf73;border-color:#4bbf73}.btn-check:active+.btn-outline-success:focus,.btn-check:checked+.btn-outline-success:focus,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus,.btn-outline-success:active:focus{box-shadow:0 0 0 .25rem rgba(75,191,115,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#4bbf73;background-color:transparent}.btn-outline-info{color:#1f9bcf;border-color:#1f9bcf}.btn-outline-info:hover{color:#fff;background-color:#1f9bcf;border-color:#1f9bcf}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(31,155,207,.5)}.btn-check:active+.btn-outline-info,.btn-check:checked+.btn-outline-info,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show,.btn-outline-info:active{color:#fff;background-color:#1f9bcf;border-color:#1f9bcf}.btn-check:active+.btn-outline-info:focus,.btn-check:checked+.btn-outline-info:focus,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus,.btn-outline-info:active:focus{box-shadow:0 0 0 .25rem rgba(31,155,207,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#1f9bcf;background-color:transparent}.btn-outline-warning{color:#f0ad4e;border-color:#f0ad4e}.btn-outline-warning:hover{color:#000;background-color:#f0ad4e;border-color:#f0ad4e}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(240,173,78,.5)}.btn-check:active+.btn-outline-warning,.btn-check:checked+.btn-outline-warning,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show,.btn-outline-warning:active{color:#000;background-color:#f0ad4e;border-color:#f0ad4e}.btn-check:active+.btn-outline-warning:focus,.btn-check:checked+.btn-outline-warning:focus,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus,.btn-outline-warning:active:focus{box-shadow:0 0 0 .25rem rgba(240,173,78,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#f0ad4e;background-color:transparent}.btn-outline-danger{color:#d9534f;border-color:#d9534f}.btn-outline-danger:hover{color:#fff;background-color:#d9534f;border-color:#d9534f}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(217,83,79,.5)}.btn-check:active+.btn-outline-danger,.btn-check:checked+.btn-outline-danger,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show,.btn-outline-danger:active{color:#fff;background-color:#d9534f;border-color:#d9534f}.btn-check:active+.btn-outline-danger:focus,.btn-check:checked+.btn-outline-danger:focus,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus,.btn-outline-danger:active:focus{box-shadow:0 0 0 .25rem rgba(217,83,79,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#d9534f;background-color:transparent}.btn-outline-light{color:#fff;border-color:#fff}.btn-outline-light:hover{color:#000;background-color:#fff;border-color:#fff}.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{box-shadow:0 0 0 .25rem rgba(255,255,255,.5)}.btn-check:active+.btn-outline-light,.btn-check:checked+.btn-outline-light,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show,.btn-outline-light:active{color:#000;background-color:#fff;border-color:#fff}.btn-check:active+.btn-outline-light:focus,.btn-check:checked+.btn-outline-light:focus,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus,.btn-outline-light:active:focus{box-shadow:0 0 0 .25rem rgba(255,255,255,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#fff;background-color:transparent}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{box-shadow:0 0 0 .25rem rgba(52,58,64,.5)}.btn-check:active+.btn-outline-dark,.btn-check:checked+.btn-outline-dark,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show,.btn-outline-dark:active{color:#fff;background-color:#343a40;border-color:#343a40}.btn-check:active+.btn-outline-dark:focus,.btn-check:checked+.btn-outline-dark:focus,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus,.btn-outline-dark:active:focus{box-shadow:0 0 0 .25rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-link{font-weight:400;color:#1a1a1a;text-decoration:underline}.btn-link:hover{color:#151515}.btn-link.disabled,.btn-link:disabled{color:#919aa1}.btn-group-lg>.btn,.btn-lg{padding:2rem 2rem;font-size:1.25rem;border-radius:0}.btn-group-sm>.btn,.btn-sm{padding:.5rem 1rem;font-size:.875rem;border-radius:0}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropend,.dropstart,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:0;font-size:1rem;color:#55595c;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:.125rem}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(0,0,0,.15)}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#1a1a1a;text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#171717;background-color:#f7f7f9}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#1a1a1a}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:.875rem;color:#919aa1;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#1a1a1a}.dropdown-menu-dark{color:#eceeef;background-color:#343a40;border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item{color:#eceeef}.dropdown-menu-dark .dropdown-item:focus,.dropdown-menu-dark .dropdown-item:hover{color:#fff;background-color:rgba(255,255,255,.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#fff;background-color:#1a1a1a}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#adb5bd}.dropdown-menu-dark .dropdown-divider{border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item-text{color:#eceeef}.dropdown-menu-dark .dropdown-header{color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:0}.dropdown-toggle-split{padding-right:1.125rem;padding-left:1.125rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:1.5rem;padding-left:1.5rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:0}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem;color:#1a1a1a;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:#151515}.nav-link.disabled{color:#919aa1;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #eceeef}.nav-tabs .nav-link{margin-bottom:-1px;background:0 0;border:1px solid transparent}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#f7f7f9 #f7f7f9 #eceeef;isolation:isolate}.nav-tabs .nav-link.disabled{color:#919aa1;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#55595c;background-color:#fff;border-color:#eceeef #eceeef #fff}.nav-tabs .dropdown-menu{margin-top:-1px}.nav-pills .nav-link{background:0 0;border:0}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#1a1a1a}.nav-fill .nav-item,.nav-fill>.nav-link{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding-top:1.5rem;padding-bottom:1.5rem}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:-ms-flexbox;display:flex;-ms-flex-wrap:inherit;flex-wrap:inherit;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;text-decoration:none;white-space:nowrap}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;transition:box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 .25rem}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas-header{display:none}.navbar-expand-sm .offcanvas{position:inherit;bottom:0;z-index:1000;-ms-flex-positive:1;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;-webkit-transform:none;transform:none}.navbar-expand-sm .offcanvas-bottom,.navbar-expand-sm .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-sm .offcanvas-body{display:-ms-flexbox;display:flex;-ms-flex-positive:0;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas-header{display:none}.navbar-expand-md .offcanvas{position:inherit;bottom:0;z-index:1000;-ms-flex-positive:1;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;-webkit-transform:none;transform:none}.navbar-expand-md .offcanvas-bottom,.navbar-expand-md .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-md .offcanvas-body{display:-ms-flexbox;display:flex;-ms-flex-positive:0;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas-header{display:none}.navbar-expand-lg .offcanvas{position:inherit;bottom:0;z-index:1000;-ms-flex-positive:1;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;-webkit-transform:none;transform:none}.navbar-expand-lg .offcanvas-bottom,.navbar-expand-lg .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-lg .offcanvas-body{display:-ms-flexbox;display:flex;-ms-flex-positive:0;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas-header{display:none}.navbar-expand-xl .offcanvas{position:inherit;bottom:0;z-index:1000;-ms-flex-positive:1;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;-webkit-transform:none;transform:none}.navbar-expand-xl .offcanvas-bottom,.navbar-expand-xl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xl .offcanvas-body{display:-ms-flexbox;display:flex;-ms-flex-positive:0;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas{position:inherit;bottom:0;z-index:1000;-ms-flex-positive:1;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;-webkit-transform:none;transform:none}.navbar-expand-xxl .offcanvas-bottom,.navbar-expand-xxl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xxl .offcanvas-body{display:-ms-flexbox;display:flex;-ms-flex-positive:0;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas-header{display:none}.navbar-expand .offcanvas{position:inherit;bottom:0;z-index:1000;-ms-flex-positive:1;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;-webkit-transform:none;transform:none}.navbar-expand .offcanvas-bottom,.navbar-expand .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand .offcanvas-body{display:-ms-flexbox;display:flex;-ms-flex-positive:0;flex-grow:0;padding:0;overflow-y:visible}.navbar-light .navbar-brand{color:#1a1a1a}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:#1a1a1a}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:#1a1a1a}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .show>.nav-link{color:#1a1a1a}.navbar-light .navbar-toggler{color:rgba(0,0,0,.3);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.3%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.3)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:#1a1a1a}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.55)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:#fff}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.55);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.55)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0}.card>.list-group:last-child{border-bottom-width:0}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem 1rem}.card-title{margin-bottom:.5rem}.card-subtitle{margin-top:-.25rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:1rem}.card-header{padding:.5rem 1rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-footer{padding:.5rem 1rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-header-tabs{margin-right:-.5rem;margin-bottom:-.5rem;margin-left:-.5rem;border-bottom:0}.card-header-pills{margin-right:-.5rem;margin-left:-.5rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-group>.card{margin-bottom:.75rem}@media (min-width:576px){.card-group{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}}.accordion-button{position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;width:100%;padding:1rem 1.25rem;font-size:1rem;color:#55595c;text-align:left;background-color:#fff;border:0;overflow-anchor:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:#171717;background-color:#e8e8e8;box-shadow:inset 0 -1px 0 rgba(0,0,0,.125)}.accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23171717'%3e%3cpath 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'/%3e%3c/svg%3e");-webkit-transform:rotate(-180deg);transform:rotate(-180deg)}.accordion-button::after{-ms-flex-negative:0;flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2355595c'%3e%3cpath 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'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1.25rem;transition:-webkit-transform .2s ease-in-out;transition:transform .2s ease-in-out;transition:transform .2s ease-in-out,-webkit-transform .2s ease-in-out}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:#8d8d8d;outline:0;box-shadow:0 0 0 .25rem rgba(26,26,26,.25)}.accordion-header{margin-bottom:0}.accordion-item{background-color:#fff;border:1px solid rgba(0,0,0,.125)}.accordion-item:not(:first-of-type){border-top:0}.accordion-body{padding:1rem 1.25rem}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:0 0;margin-bottom:1rem;list-style:none}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#919aa1;content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:#919aa1}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;color:#1a1a1a;text-decoration:none;background-color:#fff;border:1px solid transparent;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:#151515;background-color:#f7f7f9;border-color:transparent}.page-link:focus{z-index:3;color:#151515;background-color:#f7f7f9;outline:0;box-shadow:0 0 0 .25rem rgba(26,26,26,.25)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#1a1a1a;border-color:#1a1a1a}.page-item.disabled .page-link{color:#919aa1;pointer-events:none;background-color:#fff;border-color:transparent}.page-link{padding:.375rem .75rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem}.badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:1rem 1rem;margin-bottom:1rem;border:1px solid transparent}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{color:#101010;background-color:#d1d1d1;border-color:#bababa}.alert-primary .alert-link{color:#0d0d0d}.alert-secondary{color:#999;background-color:#fff;border-color:#fff}.alert-secondary .alert-link{color:#7a7a7a}.alert-success{color:#2d7345;background-color:#dbf2e3;border-color:#c9ecd5}.alert-success .alert-link{color:#245c37}.alert-info{color:#135d7c;background-color:#d2ebf5;border-color:#bce1f1}.alert-info .alert-link{color:#0f4a63}.alert-warning{color:#90682f;background-color:#fcefdc;border-color:#fbe6ca}.alert-warning .alert-link{color:#735326}.alert-danger{color:#82322f;background-color:#f7dddc;border-color:#f4cbca}.alert-danger .alert-link{color:#682826}.alert-light{color:#999;background-color:#fff;border-color:#fff}.alert-light .alert-link{color:#7a7a7a}.alert-dark{color:#1f2326;background-color:#d6d8d9;border-color:#c2c4c6}.alert-dark .alert-link{color:#191c1e}@-webkit-keyframes progress-bar-stripes{0%{background-position-x:1rem}}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#f7f7f9}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#1a1a1a;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>li::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:#55595c;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#55595c;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#55595c;background-color:#f7f7f9}.list-group-item{position:relative;display:block;padding:.5rem 1rem;color:#1a1a1a;text-decoration:none;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item.disabled,.list-group-item:disabled{color:#919aa1;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#1a1a1a;border-color:#1a1a1a}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1400px){.list-group-horizontal-xxl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#101010;background-color:#d1d1d1}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#101010;background-color:#bcbcbc}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#101010;border-color:#101010}.list-group-item-secondary{color:#999;background-color:#fff}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#999;background-color:#e6e6e6}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#999;border-color:#999}.list-group-item-success{color:#2d7345;background-color:#dbf2e3}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#2d7345;background-color:#c5dacc}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#2d7345;border-color:#2d7345}.list-group-item-info{color:#135d7c;background-color:#d2ebf5}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#135d7c;background-color:#bdd4dd}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#135d7c;border-color:#135d7c}.list-group-item-warning{color:#90682f;background-color:#fcefdc}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#90682f;background-color:#e3d7c6}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#90682f;border-color:#90682f}.list-group-item-danger{color:#82322f;background-color:#f7dddc}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#82322f;background-color:#dec7c6}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#82322f;border-color:#82322f}.list-group-item-light{color:#999;background-color:#fff}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#999;background-color:#e6e6e6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#999;border-color:#999}.list-group-item-dark{color:#1f2326;background-color:#d6d8d9}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1f2326;background-color:#c1c2c3}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1f2326;border-color:#1f2326}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:#000;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;opacity:.5}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(26,26,26,.25);opacity:1}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:.25}.btn-close-white{-webkit-filter:invert(1) grayscale(100%) brightness(200%);filter:invert(1) grayscale(100%) brightness(200%)}.toast{width:350px;max-width:100%;font-size:.875rem;pointer-events:auto;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.15)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:.75rem}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.5rem .75rem;color:#919aa1;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-header .btn-close{margin-right:-.375rem;margin-left:.75rem}.toast-body{padding:.75rem;word-wrap:break-word}.modal{position:fixed;top:0;left:0;z-index:1055;display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1050;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #eceeef}.modal-header .btn-close{padding:.5rem .5rem;margin:-.5rem -.5rem -.5rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #eceeef}.modal-footer>*{margin:.25rem}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{position:absolute;z-index:1080;display:block;margin:0;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[data-popper-placement^=right],.bs-tooltip-end{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[data-popper-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[data-popper-placement^=left],.bs-tooltip-start{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000}.popover{position:absolute;top:0;left:0;z-index:1070;display:block;max-width:276px;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2)}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f0f0f0}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:1rem;color:#1a1a1a;background-color:#f0f0f0;border-bottom:1px solid rgba(0,0,0,.2)}.popover-header:empty{display:none}.popover-body{padding:1rem 1rem;color:#55595c}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath 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'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath 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'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{-webkit-filter:invert(1) grayscale(100);filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:.75s linear infinite spinner-grow;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.offcanvas{position:fixed;bottom:0;z-index:1045;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;max-width:100%;visibility:hidden;background-color:#fff;background-clip:padding-box;outline:0;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem}.offcanvas-header .btn-close{padding:.5rem .5rem;margin-top:-.5rem;margin-right:-.5rem;margin-bottom:-.5rem}.offcanvas-title{margin-bottom:0;line-height:1.5}.offcanvas-body{-ms-flex-positive:1;flex-grow:1;padding:1rem 1rem;overflow-y:auto}.offcanvas-start{top:0;left:0;width:400px;border-right:1px solid rgba(0,0,0,.2);-webkit-transform:translateX(-100%);transform:translateX(-100%)}.offcanvas-end{top:0;right:0;width:400px;border-left:1px solid rgba(0,0,0,.2);-webkit-transform:translateX(100%);transform:translateX(100%)}.offcanvas-top{top:0;right:0;left:0;height:30vh;max-height:100%;border-bottom:1px solid rgba(0,0,0,.2);-webkit-transform:translateY(-100%);transform:translateY(-100%)}.offcanvas-bottom{right:0;left:0;height:30vh;max-height:100%;border-top:1px solid rgba(0,0,0,.2);-webkit-transform:translateY(100%);transform:translateY(100%)}.offcanvas.show{-webkit-transform:none;transform:none}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentColor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{-webkit-animation:placeholder-glow 2s ease-in-out infinite;animation:placeholder-glow 2s ease-in-out infinite}@-webkit-keyframes placeholder-glow{50%{opacity:.2}}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;-webkit-animation:placeholder-wave 2s linear infinite;animation:placeholder-wave 2s linear infinite}@-webkit-keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0;mask-position:-200% 0}}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0;mask-position:-200% 0}}.clearfix::after{display:block;clear:both;content:""}.link-primary{color:#1a1a1a}.link-primary:focus,.link-primary:hover{color:#151515}.link-secondary{color:#fff}.link-secondary:focus,.link-secondary:hover{color:#fff}.link-success{color:#4bbf73}.link-success:focus,.link-success:hover{color:#3c995c}.link-info{color:#1f9bcf}.link-info:focus,.link-info:hover{color:#197ca6}.link-warning{color:#f0ad4e}.link-warning:focus,.link-warning:hover{color:#f3bd71}.link-danger{color:#d9534f}.link-danger:focus,.link-danger:hover{color:#ae423f}.link-light{color:#fff}.link-light:focus,.link-light:hover{color:#fff}.link-dark{color:#343a40}.link-dark:focus,.link-dark:hover{color:#2a2e33}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:calc(3 / 4 * 100%)}.ratio-16x9{--bs-aspect-ratio:calc(9 / 16 * 100%)}.ratio-21x9{--bs-aspect-ratio:calc(9 / 21 * 100%)}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.hstack{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-item-align:stretch;align-self:stretch}.vstack{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-direction:column;flex-direction:column;-ms-flex-item-align:stretch;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;-ms-flex-item-align:stretch;align-self:stretch;width:1px;min-height:1em;background-color:currentColor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{-webkit-transform:translate(-50%,-50%)!important;transform:translate(-50%,-50%)!important}.translate-middle-x{-webkit-transform:translateX(-50%)!important;transform:translateX(-50%)!important}.translate-middle-y{-webkit-transform:translateY(-50%)!important;transform:translateY(-50%)!important}.border{border:1px solid #eceeef!important}.border-0{border:0!important}.border-top{border-top:1px solid #eceeef!important}.border-top-0{border-top:0!important}.border-end{border-right:1px solid #eceeef!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:1px solid #eceeef!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:1px solid #eceeef!important}.border-start-0{border-left:0!important}.border-primary{border-color:#1a1a1a!important}.border-secondary{border-color:#fff!important}.border-success{border-color:#4bbf73!important}.border-info{border-color:#1f9bcf!important}.border-warning{border-color:#f0ad4e!important}.border-danger{border-color:#d9534f!important}.border-light{border-color:#fff!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.justify-content-evenly{-ms-flex-pack:space-evenly!important;justify-content:space-evenly!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}.order-first{-ms-flex-order:-1!important;order:-1!important}.order-0{-ms-flex-order:0!important;order:0!important}.order-1{-ms-flex-order:1!important;order:1!important}.order-2{-ms-flex-order:2!important;order:2!important}.order-3{-ms-flex-order:3!important;order:3!important}.order-4{-ms-flex-order:4!important;order:4!important}.order-5{-ms-flex-order:5!important;order:5!important}.order-last{-ms-flex-order:6!important;order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.325rem + .9vw)!important}.fs-2{font-size:calc(1.3rem + .6vw)!important}.fs-3{font-size:calc(1.275rem + .3vw)!important}.fs-4{font-size:1.25rem!important}.fs-5{font-size:1rem!important}.fs-6{font-size:.75rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-light{font-weight:300!important}.fw-lighter{font-weight:lighter!important}.fw-normal{font-weight:400!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:#919aa1!important}.text-black-50{--bs-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--bs-text-opacity:1;color:rgba(255,255,255,.5)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:0.25}.text-opacity-50{--bs-text-opacity:0.5}.text-opacity-75{--bs-text-opacity:0.75}.text-opacity-100{--bs-text-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-opacity-10{--bs-bg-opacity:0.1}.bg-opacity-25{--bs-bg-opacity:0.25}.bg-opacity-50{--bs-bg-opacity:0.5}.bg-opacity-75{--bs-bg-opacity:0.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:.25rem!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:.2rem!important}.rounded-2{border-radius:.25rem!important}.rounded-3{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-end{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-start{border-bottom-left-radius:.25rem!important;border-top-left-radius:.25rem!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.justify-content-sm-evenly{-ms-flex-pack:space-evenly!important;justify-content:space-evenly!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}.order-sm-first{-ms-flex-order:-1!important;order:-1!important}.order-sm-0{-ms-flex-order:0!important;order:0!important}.order-sm-1{-ms-flex-order:1!important;order:1!important}.order-sm-2{-ms-flex-order:2!important;order:2!important}.order-sm-3{-ms-flex-order:3!important;order:3!important}.order-sm-4{-ms-flex-order:4!important;order:4!important}.order-sm-5{-ms-flex-order:5!important;order:5!important}.order-sm-last{-ms-flex-order:6!important;order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.justify-content-md-evenly{-ms-flex-pack:space-evenly!important;justify-content:space-evenly!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}.order-md-first{-ms-flex-order:-1!important;order:-1!important}.order-md-0{-ms-flex-order:0!important;order:0!important}.order-md-1{-ms-flex-order:1!important;order:1!important}.order-md-2{-ms-flex-order:2!important;order:2!important}.order-md-3{-ms-flex-order:3!important;order:3!important}.order-md-4{-ms-flex-order:4!important;order:4!important}.order-md-5{-ms-flex-order:5!important;order:5!important}.order-md-last{-ms-flex-order:6!important;order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.justify-content-lg-evenly{-ms-flex-pack:space-evenly!important;justify-content:space-evenly!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}.order-lg-first{-ms-flex-order:-1!important;order:-1!important}.order-lg-0{-ms-flex-order:0!important;order:0!important}.order-lg-1{-ms-flex-order:1!important;order:1!important}.order-lg-2{-ms-flex-order:2!important;order:2!important}.order-lg-3{-ms-flex-order:3!important;order:3!important}.order-lg-4{-ms-flex-order:4!important;order:4!important}.order-lg-5{-ms-flex-order:5!important;order:5!important}.order-lg-last{-ms-flex-order:6!important;order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.justify-content-xl-evenly{-ms-flex-pack:space-evenly!important;justify-content:space-evenly!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}.order-xl-first{-ms-flex-order:-1!important;order:-1!important}.order-xl-0{-ms-flex-order:0!important;order:0!important}.order-xl-1{-ms-flex-order:1!important;order:1!important}.order-xl-2{-ms-flex-order:2!important;order:2!important}.order-xl-3{-ms-flex-order:3!important;order:3!important}.order-xl-4{-ms-flex-order:4!important;order:4!important}.order-xl-5{-ms-flex-order:5!important;order:5!important}.order-xl-last{-ms-flex-order:6!important;order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:-ms-flexbox!important;display:flex!important}.d-xxl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xxl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xxl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xxl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xxl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xxl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xxl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xxl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xxl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.flex-xxl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xxl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.justify-content-xxl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xxl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xxl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xxl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xxl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.justify-content-xxl-evenly{-ms-flex-pack:space-evenly!important;justify-content:space-evenly!important}.align-items-xxl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xxl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xxl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xxl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xxl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xxl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xxl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xxl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xxl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xxl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xxl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xxl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xxl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xxl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xxl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xxl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xxl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}.order-xxl-first{-ms-flex-order:-1!important;order:-1!important}.order-xxl-0{-ms-flex-order:0!important;order:0!important}.order-xxl-1{-ms-flex-order:1!important;order:1!important}.order-xxl-2{-ms-flex-order:2!important;order:2!important}.order-xxl-3{-ms-flex-order:3!important;order:3!important}.order-xxl-4{-ms-flex-order:4!important;order:4!important}.order-xxl-5{-ms-flex-order:5!important;order:5!important}.order-xxl-last{-ms-flex-order:6!important;order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2rem!important}.fs-2{font-size:1.75rem!important}.fs-3{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}.d-print-none{display:none!important}}.navbar{font-size:.875rem;text-transform:uppercase;font-weight:600}.navbar-nav .nav-link{padding-top:.715rem;padding-bottom:.715rem}.navbar-brand{margin-right:2rem}.bg-primary{background-color:theme-color("primary")!important}.bg-light{border:1px solid rgba(0,0,0,.1)}.bg-light.navbar-fixed-top{border-width:0 0 1px}.bg-light.navbar-bottom-top{border-width:1px 0 0}.nav-item{margin-right:2rem}.btn{font-size:.875rem;text-transform:uppercase}.btn-group-sm>.btn,.btn-sm{font-size:10px}.btn-warning,.btn-warning:focus,.btn-warning:hover,.btn-warning:not([disabled]):not(.disabled):active{color:#fff}.btn-outline-secondary{border-color:#919aa1;color:#919aa1}.btn-outline-secondary:not([disabled]):not(.disabled):active,.btn-outline-secondary:not([disabled]):not(.disabled):focus,.btn-outline-secondary:not([disabled]):not(.disabled):hover{background-color:#ced4da;border-color:#ced4da;color:#fff}.btn-outline-secondary:not([disabled]):not(.disabled):focus{box-shadow:0 0 0 .2rem rgba(206,212,218,.5)}[class*=btn-outline-]{border-width:2px}.border-secondary{border:1px solid #ced4da!important}body{font-weight:200;letter-spacing:1px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{text-transform:uppercase;letter-spacing:3px}.text-secondary{color:#55595c!important}th{font-size:.875rem;text-transform:uppercase}.table td,.table th{padding:1.5rem}.table-sm td,.table-sm th{padding:.75rem}.dropdown-menu{font-size:.875rem;text-transform:none}.badge{padding-top:.28rem}.badge-pill{border-radius:10rem}.badge.bg-light,.badge.bg-secondary{color:#343a40}.list-group-item .h1,.list-group-item .h2,.list-group-item .h3,.list-group-item .h4,.list-group-item .h5,.list-group-item .h6,.list-group-item h1,.list-group-item h2,.list-group-item h3,.list-group-item h4,.list-group-item h5,.list-group-item h6{color:inherit}.card-header,.card-title{color:inherit} \ No newline at end of file
diff --git a/resources/tools/dash/app/pal/stats/__init__.py b/resources/tools/dash/app/pal/stats/__init__.py
deleted file mode 100644
index 5692432123..0000000000
--- a/resources/tools/dash/app/pal/stats/__init__.py
+++ /dev/null
@@ -1,12 +0,0 @@
-# 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.
diff --git a/resources/tools/dash/app/pal/stats/graphs.py b/resources/tools/dash/app/pal/stats/graphs.py
deleted file mode 100644
index 42f23da5aa..0000000000
--- a/resources/tools/dash/app/pal/stats/graphs.py
+++ /dev/null
@@ -1,138 +0,0 @@
-# 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.
-
-"""
-"""
-
-import plotly.graph_objects as go
-import pandas as pd
-
-from datetime import datetime, timedelta
-
-def select_data(data: pd.DataFrame, itm:str, start: datetime,
- end: datetime) -> 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.
- :param start: The date (and time) when the selected data starts.
- :param end: The date (and time) when the selected data ends.
- :type data: pandas.DataFrame
- :type itm: str
- :type start: datetime.datetime
- :type end: datetime.datetime
- :returns: A data frame with selected data.
- :rtype: pandas.DataFrame
- """
-
- df = data.loc[
- (data["job"] == itm) &
- (data["start_time"] >= start) & (data["start_time"] <= end)
- ].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,
- start: datetime=datetime.utcnow()-timedelta(days=180),
- end: datetime=datetime.utcnow()) -> 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.
- :param start: The date (and time) when the selected data starts.
- :param end: The date (and time) when the selected data ends.
- :type df: pandas.DataFrame
- :type job: str
- :type layout: dict
- :type start: datetime.datetime
- :type end: datetime.datetime
- :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, start, end)
- if data.empty:
- return None, None
-
- hover = list()
- for _, row in data.iterrows():
- d_type = "trex" if row["dut_type"] == "none" else row["dut_type"]
- 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"{d_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=u"Duration",
- text=hover,
- hoverinfo=u"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:
- fig_passed = go.Figure(
- data=[
- go.Bar(
- x=data["start_time"],
- y=data["passed"],
- name=u"Passed",
- hovertext=hover,
- hoverinfo=u"text"
- ),
- go.Bar(
- x=data["start_time"],
- y=data["failed"],
- name=u"Failed",
- hovertext=hover,
- hoverinfo=u"text"
- )
- ]
- )
- 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/resources/tools/dash/app/pal/stats/layout.py b/resources/tools/dash/app/pal/stats/layout.py
deleted file mode 100644
index 1d271cb265..0000000000
--- a/resources/tools/dash/app/pal/stats/layout.py
+++ /dev/null
@@ -1,920 +0,0 @@
-# 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.
-
-"""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 datetime import datetime, timedelta
-from copy import deepcopy
-
-from ..utils.constants import Constants as C
-from ..utils.utils import show_tooltip, gen_new_url, get_date, get_ttypes, \
- get_cadences, get_test_beds, get_job, generate_options, set_job_params
-from ..utils.url_processing import url_decode
-from ..data.data import Data
-from .graphs import graph_statistics, select_data
-
-
-class Layout:
- """The layout of the dash app and the callbacks.
- """
-
- def __init__(self, app: Flask, html_layout_file: str,
- graph_layout_file: str, data_spec_file: str, tooltip_file: str,
- time_period: int=None) -> 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 data_spec_file: Path and name of the file specifying the data to
- be read from parquets for this application.
- :param tooltip_file: Path and name of the yaml file specifying the
- tooltips.
- :param time_period: It defines the time period for data read from the
- parquets in days from now back to the past.
- :type app: Flask
- :type html_layout_file: str
- :type graph_layout_file: str
- :type data_spec_file: str
- :type tooltip_file: str
- :type time_period: int
- """
-
- # Inputs
- self._app = app
- self._html_layout_file = html_layout_file
- self._graph_layout_file = graph_layout_file
- self._data_spec_file = data_spec_file
- self._tooltip_file = tooltip_file
- self._time_period = time_period
-
- # Read the data:
- data_stats, data_mrr, data_ndrpdr = Data(
- data_spec_file=self._data_spec_file,
- debug=True
- ).read_stats(days=self._time_period)
-
- df_tst_info = pd.concat([data_mrr, data_ndrpdr], ignore_index=True)
-
- # 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"]]
-
- data_time_period = \
- (datetime.utcnow() - data_stats["start_time"].min()).days
- if self._time_period > data_time_period:
- self._time_period = data_time_period
-
- 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 = df_tst_info.loc[(df_tst_info["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 = ""
- 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}"
- )
-
-
- self._default_fig_passed, self._default_fig_duration = graph_statistics(
- self.data, self._default["job"], self.layout
- )
-
- # 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
-
- @property
- def data(self) -> pd.DataFrame:
- return self._data
-
- @property
- def layout(self) -> dict:
- return self._graph_layout
-
- @property
- def time_period(self) -> int:
- return self._time_period
-
- @property
- def default(self) -> any:
- return self._default
-
- 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",
- children=[
- dcc.Store(id="control-panel"),
- dcc.Location(id="url", refresh=False),
- dbc.Row(
- id="row-navbar",
- class_name="g-0",
- children=[
- self._add_navbar(),
- ]
- ),
- dcc.Loading(
- 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(),
- ]
- )
- ]
- )
- else:
- return html.Div(
- id="div-main-error",
- children=[
- dbc.Alert(
- [
- "An Error Occured",
- ],
- color="danger",
- ),
- ]
- )
-
- def _add_navbar(self):
- """Add nav element with navigation panel. It is placed on the top.
-
- :returns: Navigation bar.
- :rtype: dbc.NavbarSimple
- """
- return dbc.NavbarSimple(
- id="navbarsimple-main",
- children=[
- dbc.NavItem(
- dbc.NavLink(
- "Continuous Performance Statistics",
- disabled=True,
- external_link=True,
- href="#"
- )
- )
- ],
- brand="Dashboard",
- brand_href="/",
- brand_external_link=True,
- class_name="p-2",
- fluid=True,
- )
-
- 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(
- id="col-controls",
- children=[
- self._add_ctrl_panel(),
- ],
- )
-
- 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.Row( # Passed / failed tests
- id="row-graph-passed",
- class_name="g-0 p-2",
- children=[
- dcc.Loading(children=[
- dcc.Graph(
- id="graph-passed",
- figure=self._default_fig_passed
- )
- ])
- ]
- ),
- dbc.Row( # Duration
- id="row-graph-duration",
- class_name="g-0 p-2",
- children=[
- dcc.Loading(children=[
- dcc.Graph(
- id="graph-duration",
- figure=self._default_fig_duration
- )
- ])
- ]
- ),
- dbc.Row(
- class_name="g-0 p-2",
- align="center",
- justify="start",
- children=[
- dbc.Col( # Download
- width=2,
- children=[
- dcc.Loading(children=[
- dbc.Button(
- id="btn-download-data",
- children=show_tooltip(self._tooltips,
- "help-download", "Download Data"),
- class_name="me-1",
- color="info"
- ),
- dcc.Download(id="download-data")
- ])
- ]
- ),
- dbc.Col( # Show URL
- width=10,
- children=[
- dbc.InputGroup(
- class_name="me-1",
- children=[
- dbc.InputGroupText(
- style=C.URL_STYLE,
- children=show_tooltip(
- self._tooltips,
- "help-url", "URL",
- "input-url"
- )
- ),
- dbc.Input(
- id="input-url",
- readonly=True,
- type="url",
- style=C.URL_STYLE,
- value=""
- )
- ]
- )
- ]
- )
- ]
- )
- ],
- width=9,
- )
-
- def _add_ctrl_panel(self) -> dbc.Row:
- """Add control panel.
-
- :returns: Control panel.
- :rtype: dbc.Row
- """
- return dbc.Row(
- id="row-ctrl-panel",
- class_name="g-0",
- children=[
- dbc.Row(
- class_name="g-0 p-2",
- children=[
- dbc.Row(
- class_name="gy-1",
- children=[
- dbc.Label(
- class_name="p-0",
- children=show_tooltip(self._tooltips,
- "help-dut", "Device under Test")
- ),
- dbc.Row(
- dbc.RadioItems(
- id="ri-duts",
- inline=True,
- value=self.default["dut"],
- options=self.default["duts"]
- )
- )
- ]
- ),
- dbc.Row(
- class_name="gy-1",
- children=[
- dbc.Label(
- class_name="p-0",
- children=show_tooltip(self._tooltips,
- "help-ttype", "Test Type"),
- ),
- dbc.RadioItems(
- id="ri-ttypes",
- inline=True,
- value=self.default["ttype"],
- options=self.default["ttypes"]
- )
- ]
- ),
- dbc.Row(
- class_name="gy-1",
- children=[
- dbc.Label(
- class_name="p-0",
- children=show_tooltip(self._tooltips,
- "help-cadence", "Cadence"),
- ),
- dbc.RadioItems(
- id="ri-cadences",
- inline=True,
- value=self.default["cadence"],
- options=self.default["cadences"]
- )
- ]
- ),
- dbc.Row(
- class_name="gy-1",
- children=[
- dbc.Label(
- class_name="p-0",
- children=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"]
- )
- ]
- ),
- dbc.Row(
- class_name="gy-1",
- children=[
- dbc.Alert(
- id="al-job",
- color="info",
- children=self.default["job"]
- )
- ]
- ),
- dbc.Row(
- class_name="g-0 p-2",
- children=[
- dbc.Label(
- class_name="gy-1",
- children=show_tooltip(self._tooltips,
- "help-time-period", "Time Period"),
- ),
- dcc.DatePickerRange(
- id="dpr-period",
- className="d-flex justify-content-center",
- min_date_allowed=\
- datetime.utcnow() - timedelta(
- days=self.time_period),
- max_date_allowed=datetime.utcnow(),
- initial_visible_month=datetime.utcnow(),
- start_date=\
- datetime.utcnow() - timedelta(
- days=self.time_period),
- end_date=datetime.utcnow(),
- display_format="D MMM YY"
- )
- ]
- )
- ]
- ),
- ]
- )
-
- class ControlPanel:
- """A class representing the control panel.
- """
-
- def __init__(self, panel: dict, default: dict) -> None:
- """Initialisation of the control pannel by default values. If
- particular values are provided (parameter "panel") they are set
- afterwards.
-
- :param panel: Custom values to be set to the control panel.
- :param default: Default values to be set to the control panel.
- :type panel: dict
- :type defaults: dict
- """
-
- self._defaults = {
- "ri-ttypes-options": default["ttypes"],
- "ri-cadences-options": default["cadences"],
- "dd-tbeds-options": default["tbeds"],
- "ri-duts-value": default["dut"],
- "ri-ttypes-value": default["ttype"],
- "ri-cadences-value": default["cadence"],
- "dd-tbeds-value": default["tbed"],
- "al-job-children": default["job"]
- }
- self._panel = deepcopy(self._defaults)
- if panel:
- for key in self._defaults:
- self._panel[key] = panel[key]
-
- def set(self, kwargs: 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.")
-
- @property
- def defaults(self) -> dict:
- return self._defaults
-
- @property
- def panel(self) -> dict:
- return self._panel
-
- 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]
-
- def values(self) -> list:
- """Returns the values from the Control panel as a list.
-
- :returns: The values from the Control panel.
- :rtype: list
- """
- return list(self._panel.values())
-
-
- def callbacks(self, app):
- """Callbacks for the whole application.
-
- :param app: The application.
- :type app: Flask
- """
-
- @app.callback(
- Output("control-panel", "data"), # Store
- Output("graph-passed", "figure"),
- Output("graph-duration", "figure"),
- Output("input-url", "value"),
- 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("dpr-period", "start_date"),
- Input("dpr-period", "end_date"),
- Input("url", "href")
- )
- def _update_ctrl_panel(cp_data: dict, dut: str, ttype: str, cadence:str,
- tbed: str, start: str, end: 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 start: Date and time where the data processing starts.
- :param end: Date and time where the data processing ends.
- :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 start: str
- :type end: str
- :type href: str
- :returns: New values for web page elements.
- :rtype: tuple
- """
-
- ctrl_panel = self.ControlPanel(cp_data, self.default)
-
- start = get_date(start)
- end = get_date(end)
-
- # 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 == "dpr-period":
- pass
- elif trigger_id == "url":
- # TODO: Add verification
- if url_params:
- new_job = url_params.get("job", list())[0]
- new_start = url_params.get("start", list())[0]
- new_end = url_params.get("end", list())[0]
- if new_job and new_start and new_end:
- start = get_date(new_start)
- end = get_date(new_end)
- job_params = set_job_params(self.job_info, new_job)
- ctrl_panel = self.ControlPanel(None, job_params)
- else:
- ctrl_panel = self.ControlPanel(cp_data, self.default)
-
- 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": job})
- fig_passed, fig_duration = graph_statistics(self.data, job,
- self.layout, start, end)
-
- ret_val = [
- ctrl_panel.panel,
- fig_passed,
- fig_duration,
- gen_new_url(
- parsed_url,
- {
- "job": job,
- "start": start,
- "end": end
- }
- )
- ]
- ret_val.extend(ctrl_panel.values())
- return ret_val
-
- @app.callback(
- Output("download-data", "data"),
- State("control-panel", "data"), # Store
- State("dpr-period", "start_date"),
- State("dpr-period", "end_date"),
- Input("btn-download-data", "n_clicks"),
- prevent_initial_call=True
- )
- def _download_data(cp_data: dict, start: str, end: str, n_clicks: int):
- """Download the data
-
- :param cp_data: Current status of the control panel stored in
- browser.
- :param start: Date and time where the data processing starts.
- :param end: Date and time where the data processing ends.
- :param n_clicks: Number of clicks on the button "Download".
- :type cp_data: dict
- :type start: str
- :type end: str
- :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 = self.ControlPanel(cp_data, self.default)
-
- 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, get_date(start), get_date(end))
- 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:
- metadata = [
- dbc.Card(
- class_name="gy-2 p-0",
- children=[
- dbc.CardHeader(children=[
- dcc.Clipboard(
- target_id="metadata",
- title="Copy",
- style={"display": "inline-block"}
- ),
- title
- ]),
- dbc.CardBody(
- id="metadata",
- class_name="p-0",
- children=[dbc.ListGroup(
- children=[
- dbc.ListGroupItem(
- [
- dbc.Badge(
- x.split(":")[0]
- ),
- x.split(": ")[1]
- ]
- ) for x in lst_graph_data
- ],
- flush=True),
- ]
- )
- ]
- )
- ]
-
- 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
diff --git a/resources/tools/dash/app/pal/stats/layout.yaml b/resources/tools/dash/app/pal/stats/layout.yaml
deleted file mode 100644
index 0a102e4d0a..0000000000
--- a/resources/tools/dash/app/pal/stats/layout.yaml
+++ /dev/null
@@ -1,117 +0,0 @@
-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"
- 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
- 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"
- 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
- paper_bgcolor: "#fff"
- plot_bgcolor: "#fff"
- hoverlabel:
- namelength: -1
diff --git a/resources/tools/dash/app/pal/stats/stats.py b/resources/tools/dash/app/pal/stats/stats.py
deleted file mode 100644
index 5b31faca44..0000000000
--- a/resources/tools/dash/app/pal/stats/stats.py
+++ /dev/null
@@ -1,48 +0,0 @@
-# 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.
-
-"""Instantiate the Statistics Dash application.
-"""
-import dash
-
-from ..utils.constants import Constants as C
-from .layout import Layout
-
-
-def init_stats(server, time_period=None):
- """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.STATS_ROUTES_PATHNAME_PREFIX,
- external_stylesheets=C.EXTERNAL_STYLESHEETS
- )
-
- layout = Layout(
- app=dash_app,
- html_layout_file=C.STATS_HTML_LAYOUT_FILE,
- graph_layout_file=C.STATS_GRAPH_LAYOUT_FILE,
- data_spec_file=C.DATA_SPEC_FILE,
- tooltip_file=C.TOOLTIP_FILE,
- time_period=time_period
- )
- dash_app.index_string = layout.html_layout
- dash_app.layout = layout.add_content()
-
- return dash_app.server
diff --git a/resources/tools/dash/app/pal/templates/base_layout.jinja2 b/resources/tools/dash/app/pal/templates/base_layout.jinja2
deleted file mode 100644
index 09b035ee9e..0000000000
--- a/resources/tools/dash/app/pal/templates/base_layout.jinja2
+++ /dev/null
@@ -1,22 +0,0 @@
-<!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 -->
- <link rel="stylesheet" href="{{ url_for('static', filename='dist/css/bootstrap.min.css') }}" crossorigin="anonymous" />
- <!-- Favicons -->
- <link rel="shortcut icon" href="{{ url_for('static', filename='dist/img/favicon.svg') }}" type="image/x-icon" />
-</head>
-<body class="{{template}}">
- {% block content %}{% endblock %}
-</body>
-</html>
diff --git a/resources/tools/dash/app/pal/templates/index_layout.jinja2 b/resources/tools/dash/app/pal/templates/index_layout.jinja2
deleted file mode 100644
index 4acd1bda2d..0000000000
--- a/resources/tools/dash/app/pal/templates/index_layout.jinja2
+++ /dev/null
@@ -1,34 +0,0 @@
-{% extends "base_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">Dashboard</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">
- <a href="/trending/" class="btn btn-primary fw-bold">Performance Trending</a>
- </p>
- <p class="lead">
- <a href="/report/" class="btn btn-primary fw-bold">Iterative Test Runs</a>
- </p>
- <p class="lead">
- <a href="/stats/" class="btn btn-primary fw-bold">Job Statistics</a>
- </p>
- <p class="lead">
- <a href="/news/" class="btn btn-primary fw-bold">News</a>
- </p>
- </main>
-
- <footer class="mt-auto text-white-50">
- <p>Copyright © 2016-2022 <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/resources/tools/dash/app/pal/templates/news_layout.jinja2 b/resources/tools/dash/app/pal/templates/news_layout.jinja2
deleted file mode 100644
index c3ac89f731..0000000000
--- a/resources/tools/dash/app/pal/templates/news_layout.jinja2
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <title>Continuous Performance News</title>
- {%metas%}
- {%favicon%}
- {%css%}
-</head>
-<body>
- {%app_entry%}
- <footer>
- {%config%}
- {%scripts%}
- {%renderer%}
- </footer>
-</body>
-</html> \ No newline at end of file
diff --git a/resources/tools/dash/app/pal/templates/report_layout.jinja2 b/resources/tools/dash/app/pal/templates/report_layout.jinja2
deleted file mode 100644
index c535d37b03..0000000000
--- a/resources/tools/dash/app/pal/templates/report_layout.jinja2
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <title>Iterative Test Runs</title>
- {%metas%}
- {%favicon%}
- {%css%}
-</head>
-<body>
- {%app_entry%}
- <footer>
- {%config%}
- {%scripts%}
- {%renderer%}
- </footer>
-</body>
-</html> \ No newline at end of file
diff --git a/resources/tools/dash/app/pal/templates/stats_layout.jinja2 b/resources/tools/dash/app/pal/templates/stats_layout.jinja2
deleted file mode 100644
index dae6f00c19..0000000000
--- a/resources/tools/dash/app/pal/templates/stats_layout.jinja2
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <title>Continuous Performance Statistics</title>
- {%metas%}
- {%favicon%}
- {%css%}
-</head>
-<body>
- {%app_entry%}
- <footer>
- {%config%}
- {%scripts%}
- {%renderer%}
- </footer>
-</body>
-</html> \ No newline at end of file
diff --git a/resources/tools/dash/app/pal/templates/trending_layout.jinja2 b/resources/tools/dash/app/pal/templates/trending_layout.jinja2
deleted file mode 100644
index 4881397cfd..0000000000
--- a/resources/tools/dash/app/pal/templates/trending_layout.jinja2
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <title>Continuous Performance Trending</title>
- {%metas%}
- {%favicon%}
- {%css%}
-</head>
-<body>
- {%app_entry%}
- <footer>
- {%config%}
- {%scripts%}
- {%renderer%}
- </footer>
-</body>
-</html> \ No newline at end of file
diff --git a/resources/tools/dash/app/pal/trending/__init__.py b/resources/tools/dash/app/pal/trending/__init__.py
deleted file mode 100644
index 5692432123..0000000000
--- a/resources/tools/dash/app/pal/trending/__init__.py
+++ /dev/null
@@ -1,12 +0,0 @@
-# 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.
diff --git a/resources/tools/dash/app/pal/trending/graphs.py b/resources/tools/dash/app/pal/trending/graphs.py
deleted file mode 100644
index 06bea25466..0000000000
--- a/resources/tools/dash/app/pal/trending/graphs.py
+++ /dev/null
@@ -1,417 +0,0 @@
-# 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.
-
-"""
-"""
-
-import plotly.graph_objects as go
-import pandas as pd
-
-import hdrh.histogram
-import hdrh.codec
-
-from datetime import datetime
-
-from ..utils.constants import Constants as C
-from ..utils.utils import classify_anomalies, get_color
-
-
-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 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: 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
-
- core = str() if itm["dut"] == "trex" else f"{itm['core']}"
- ttype = "ndrpdr" if itm["testtype"] in ("ndr", "pdr") else itm["testtype"]
- dut_v100 = "none" if itm["dut"] == "trex" else itm["dut"]
- dut_v101 = itm["dut"]
-
- df = data.loc[(
- (
- (
- (data["version"] == "1.0.0") &
- (data["dut_type"].str.lower() == dut_v100)
- ) |
- (
- (data["version"] == "1.0.1") &
- (data["dut_type"].str.lower() == dut_v101)
- )
- ) &
- (data["test_type"] == ttype) &
- (data["passed"] == True)
- )]
- df = df[df.job.str.endswith(f"{topo}-{arch}")]
- 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 _generate_trending_traces(ttype: str, name: str, df: pd.DataFrame,
- start: datetime, end: datetime, color: str, norm_factor: 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 start: The date (and time) when the selected data starts.
- :param end: The date (and time) when the selected data ends.
- :param color: The color of the trace (samples and trend line).
- :param norm_factor: 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 start: datetime.datetime
- :type end: datetime.datetime
- :type color: str
- :type norm_factor: float
- :returns: Traces (samples, trending line, anomalies)
- :rtype: list
- """
-
- df = df.dropna(subset=[C.VALUE[ttype], ])
- if df.empty:
- return list()
- df = df.loc[((df["start_time"] >= start) & (df["start_time"] <= end))]
- if df.empty:
- return list()
-
- x_axis = df["start_time"].tolist()
- if ttype == "pdr-lat":
- y_data = [(itm / norm_factor) for itm in df[C.VALUE[ttype]].tolist()]
- else:
- y_data = [(itm * norm_factor) for itm in df[C.VALUE[ttype]].tolist()]
-
- anomalies, trend_avg, trend_stdev = classify_anomalies(
- {k: v for k, v in zip(x_axis, y_data)}
- )
-
- hover = list()
- customdata = list()
- for idx, (_, row) in enumerate(df.iterrows()):
- d_type = "trex" if row["dut_type"] == "none" else row["dut_type"]
- hover_itm = (
- f"date: {row['start_time'].strftime('%Y-%m-%d %H:%M:%S')}<br>"
- f"<prop> [{row[C.UNIT[ttype]]}]: {y_data[idx]:,.0f}<br>"
- f"<stdev>"
- f"{d_type}-ref: {row['dut_version']}<br>"
- f"csit-ref: {row['job']}/{row['build']}<br>"
- f"hosts: {', '.join(row['hosts'])}"
- )
- if ttype == "mrr":
- stdev = (
- f"stdev [{row['result_receive_rate_rate_unit']}]: "
- f"{row['result_receive_rate_rate_stdev']:,.0f}<br>"
- )
- else:
- stdev = ""
- hover_itm = hover_itm.replace(
- "<prop>", "latency" if ttype == "pdr-lat" else "average"
- ).replace("<stdev>", stdev)
- hover.append(hover_itm)
- if ttype == "pdr-lat":
- customdata.append(_get_hdrh_latencies(row, name))
-
- hover_trend = list()
- for avg, stdev, (_, row) in zip(trend_avg, trend_stdev, df.iterrows()):
- d_type = "trex" if row["dut_type"] == "none" else row["dut_type"]
- hover_itm = (
- f"date: {row['start_time'].strftime('%Y-%m-%d %H:%M:%S')}<br>"
- f"trend [pps]: {avg:,.0f}<br>"
- f"stdev [pps]: {stdev:,.0f}<br>"
- f"{d_type}-ref: {row['dut_version']}<br>"
- f"csit-ref: {row['job']}/{row['build']}<br>"
- f"hosts: {', '.join(row['hosts'])}"
- )
- if ttype == "pdr-lat":
- 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+name",
- showlegend=True,
- legendgroup=name,
- customdata=customdata
- ),
- 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+name",
- showlegend=False,
- legendgroup=name,
- )
- ]
-
- 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"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 == "pdr-lat":
- 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+name",
- showlegend=False,
- legendgroup=name,
- name=name,
- marker={
- "size": 15,
- "symbol": "circle-open",
- "color": anomaly_color,
- "colorscale": C.COLORSCALE_LAT \
- if ttype == "pdr-lat" 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 == "pdr-lat" else C.TICK_TEXT_TPUT,
- "ticks": "",
- "ticklen": 0,
- "tickangle": -90,
- "thickness": 10
- }
- }
- )
- )
-
- return traces
-
-
-def graph_trending(data: pd.DataFrame, sel:dict, layout: dict,
- start: datetime, end: datetime, normalize: bool) -> 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 start: The date (and time) when the selected data starts.
- :param end: The date (and time) when the selected data ends.
- :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 start: datetime.datetime
- :type end: datetype.datetype
- :type normalize: bool
- :returns: Trending graph(s)
- :rtype: tuple(plotly.graph_objects.Figure, plotly.graph_objects.Figure)
- """
-
- if not sel:
- return None, None
-
- fig_tput = None
- fig_lat = None
- for idx, itm in enumerate(sel):
-
- df = select_trending_data(data, itm)
- if df is None or df.empty:
- continue
-
- name = "-".join((itm["dut"], itm["phy"], itm["framesize"], itm["core"],
- itm["test"], itm["testtype"], ))
- 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[topo_arch]) \
- if topo_arch else 1.0
- else:
- norm_factor = 1.0
- traces = _generate_trending_traces(
- itm["testtype"], name, df, start, end, get_color(idx), norm_factor
- )
- if traces:
- if not fig_tput:
- fig_tput = go.Figure()
- fig_tput.add_traces(traces)
-
- if itm["testtype"] == "pdr":
- traces = _generate_trending_traces(
- "pdr-lat", name, df, start, end, get_color(idx), norm_factor
- )
- if traces:
- if not fig_lat:
- fig_lat = go.Figure()
- fig_lat.add_traces(traces)
-
- if fig_tput:
- fig_tput.update_layout(layout.get("plot-trending-tput", dict()))
- if fig_lat:
- fig_lat.update_layout(layout.get("plot-trending-lat", dict()))
-
- return fig_tput, fig_lat
-
-
-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) as err:
- 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
diff --git a/resources/tools/dash/app/pal/trending/layout.py b/resources/tools/dash/app/pal/trending/layout.py
deleted file mode 100644
index 2be19f8439..0000000000
--- a/resources/tools/dash/app/pal/trending/layout.py
+++ /dev/null
@@ -1,1393 +0,0 @@
-# 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.
-
-"""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 datetime import datetime, timedelta
-from copy import deepcopy
-from json import loads, JSONDecodeError
-from ast import literal_eval
-
-from ..utils.constants import Constants as C
-from ..utils.utils import show_tooltip, label, sync_checklists, list_tests, \
- get_date, gen_new_url
-from ..utils.url_processing import url_decode
-from ..data.data import Data
-from .graphs import graph_trending, graph_hdrh_latency, \
- select_trending_data
-
-
-class Layout:
- """The layout of the dash app and the callbacks.
- """
-
- def __init__(self, app: Flask, html_layout_file: str,
- graph_layout_file: str, data_spec_file: str, tooltip_file: str,
- time_period: str=None) -> 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 data_spec_file: Path and name of the file specifying the data to
- be read from parquets for this application.
- :param tooltip_file: Path and name of the yaml file specifying the
- tooltips.
- :param time_period: It defines the time period for data read from the
- parquets in days from now back to the past.
- :type app: Flask
- :type html_layout_file: str
- :type graph_layout_file: str
- :type data_spec_file: str
- :type tooltip_file: str
- :type time_period: int
- """
-
- # Inputs
- self._app = app
- self._html_layout_file = html_layout_file
- self._graph_layout_file = graph_layout_file
- self._data_spec_file = data_spec_file
- self._tooltip_file = tooltip_file
- self._time_period = time_period
-
- # Read the data:
- data_mrr = Data(
- data_spec_file=self._data_spec_file,
- debug=True
- ).read_trending_mrr(days=self._time_period)
-
- data_ndrpdr = Data(
- data_spec_file=self._data_spec_file,
- debug=True
- ).read_trending_ndrpdr(days=self._time_period)
-
- self._data = pd.concat([data_mrr, data_ndrpdr], ignore_index=True)
-
- data_time_period = \
- (datetime.utcnow() - self._data["start_time"].min()).days
- if self._time_period > data_time_period:
- self._time_period = data_time_period
-
-
- # Get structure of tests:
- tbs = dict()
- for _, row in self._data[["job", "test_id"]].drop_duplicates().\
- iterrows():
- lst_job = row["job"].split("-")
- dut = lst_job[1]
- ttype = lst_job[3]
- 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(infra, None) is None:
- tbs[dut][infra] = dict()
- if tbs[dut][infra].get(area, None) is None:
- tbs[dut][infra][area] = dict()
- if tbs[dut][infra][area].get(test, None) is None:
- tbs[dut][infra][area][test] = dict()
- tbs[dut][infra][area][test]["core"] = list()
- tbs[dut][infra][area][test]["frame-size"] = list()
- tbs[dut][infra][area][test]["test-type"] = list()
- if core.upper() not in tbs[dut][infra][area][test]["core"]:
- tbs[dut][infra][area][test]["core"].append(core.upper())
- if framesize.upper() not in \
- tbs[dut][infra][area][test]["frame-size"]:
- tbs[dut][infra][area][test]["frame-size"].append(
- framesize.upper())
- if ttype == "mrr":
- if "MRR" not in tbs[dut][infra][area][test]["test-type"]:
- tbs[dut][infra][area][test]["test-type"].append("MRR")
- elif ttype == "ndrpdr":
- if "NDR" not in tbs[dut][infra][area][test]["test-type"]:
- tbs[dut][infra][area][test]["test-type"].extend(
- ("NDR", "PDR"))
- self._spec_tbs = tbs
-
- # Read from files:
- self._html_layout = ""
- 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
-
- @property
- def spec_tbs(self):
- return self._spec_tbs
-
- @property
- def data(self):
- return self._data
-
- @property
- def layout(self):
- return self._graph_layout
-
- @property
- def time_period(self):
- return self._time_period
-
- 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",
- children=[
- dbc.Row(
- id="row-navbar",
- class_name="g-0",
- children=[
- self._add_navbar(),
- ]
- ),
- dcc.Loading(
- 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"),
- ]
- )
- ),
- dbc.Row(
- id="row-main",
- class_name="g-0",
- children=[
- dcc.Store(id="selected-tests"),
- dcc.Store(id="control-panel"),
- dcc.Location(id="url", refresh=False),
- self._add_ctrl_col(),
- self._add_plotting_col(),
- ]
- )
- ]
- )
- else:
- return html.Div(
- id="div-main-error",
- children=[
- dbc.Alert(
- [
- "An Error Occured",
- ],
- color="danger",
- ),
- ]
- )
-
- def _add_navbar(self):
- """Add nav element with navigation panel. It is placed on the top.
-
- :returns: Navigation bar.
- :rtype: dbc.NavbarSimple
- """
- return dbc.NavbarSimple(
- id="navbarsimple-main",
- children=[
- dbc.NavItem(
- dbc.NavLink(
- "Continuous Performance Trending",
- disabled=True,
- external_link=True,
- href="#"
- )
- )
- ],
- brand="Dashboard",
- brand_href="/",
- brand_external_link=True,
- class_name="p-2",
- fluid=True,
- )
-
- 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(
- id="col-controls",
- children=[
- self._add_ctrl_panel(),
- ],
- )
-
- 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=[
- dcc.Loading(
- children=[
- dbc.Row( # Throughput
- id="row-graph-tput",
- class_name="g-0 p-2",
- children=[
- C.PLACEHOLDER
- ]
- ),
- dbc.Row( # Latency
- id="row-graph-lat",
- class_name="g-0 p-2",
- children=[
- C.PLACEHOLDER
- ]
- ),
- dbc.Row( # Download
- id="row-btn-download",
- class_name="g-0 p-2",
- children=[
- C.PLACEHOLDER
- ]
- )
- ]
- )
- ],
- width=9,
- )
-
- def _add_ctrl_panel(self) -> dbc.Row:
- """Add control panel.
-
- :returns: Control panel.
- :rtype: dbc.Row
- """
- return dbc.Row(
- id="row-ctrl-panel",
- class_name="g-0 p-2",
- children=[
- dbc.Row(
- class_name="g-0",
- children=[
- dbc.InputGroup(
- [
- dbc.InputGroupText(
- children=show_tooltip(self._tooltips,
- "help-dut", "DUT")
- ),
- dbc.Select(
- id="dd-ctrl-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"]
- )
- )
- ],
- class_name="mb-3",
- size="sm",
- ),
- ]
- ),
- dbc.Row(
- class_name="g-0",
- children=[
- dbc.InputGroup(
- [
- dbc.InputGroupText(
- children=show_tooltip(self._tooltips,
- "help-infra", "Infra")
- ),
- dbc.Select(
- id="dd-ctrl-phy",
- placeholder=(
- "Select a Physical Test Bed "
- "Topology..."
- )
- )
- ],
- class_name="mb-3",
- size="sm",
- ),
- ]
- ),
- dbc.Row(
- class_name="g-0",
- children=[
- dbc.InputGroup(
- [
- dbc.InputGroupText(
- children=show_tooltip(self._tooltips,
- "help-area", "Area")
- ),
- dbc.Select(
- id="dd-ctrl-area",
- placeholder="Select an Area...",
- disabled=True,
- ),
- ],
- class_name="mb-3",
- size="sm",
- ),
- ]
- ),
- dbc.Row(
- class_name="g-0",
- children=[
- dbc.InputGroup(
- [
- dbc.InputGroupText(
- children=show_tooltip(self._tooltips,
- "help-test", "Test")
- ),
- dbc.Select(
- id="dd-ctrl-test",
- placeholder="Select a Test...",
- disabled=True,
- ),
- ],
- class_name="mb-3",
- size="sm",
- ),
- ]
- ),
- dbc.Row(
- id="row-ctrl-framesize",
- class_name="gy-1",
- children=[
- dbc.Label(
- children=show_tooltip(self._tooltips,
- "help-framesize", "Frame Size"),
- class_name="p-0"
- ),
- dbc.Col(
- children=[
- dbc.Checklist(
- id="cl-ctrl-framesize-all",
- options=C.CL_ALL_DISABLED,
- inline=True,
- switch=False
- ),
- ],
- width=3
- ),
- dbc.Col(
- children=[
- dbc.Checklist(
- id="cl-ctrl-framesize",
- inline=True,
- switch=False
- )
- ]
- )
- ]
- ),
- dbc.Row(
- id="row-ctrl-core",
- class_name="gy-1",
- children=[
- dbc.Label(
- children=show_tooltip(self._tooltips,
- "help-cores", "Number of Cores"),
- class_name="p-0"
- ),
- dbc.Col(
- children=[
- dbc.Checklist(
- id="cl-ctrl-core-all",
- options=C.CL_ALL_DISABLED,
- inline=False,
- switch=False
- )
- ],
- width=3
- ),
- dbc.Col(
- children=[
- dbc.Checklist(
- id="cl-ctrl-core",
- inline=True,
- switch=False
- )
- ]
- )
- ]
- ),
- dbc.Row(
- id="row-ctrl-testtype",
- class_name="gy-1",
- children=[
- dbc.Label(
- children=show_tooltip(self._tooltips,
- "help-ttype", "Test Type"),
- class_name="p-0"
- ),
- dbc.Col(
- children=[
- dbc.Checklist(
- id="cl-ctrl-testtype-all",
- options=C.CL_ALL_DISABLED,
- inline=True,
- switch=False
- ),
- ],
- width=3
- ),
- dbc.Col(
- children=[
- dbc.Checklist(
- id="cl-ctrl-testtype",
- inline=True,
- switch=False
- )
- ]
- )
- ]
- ),
- dbc.Row(
- id="row-ctrl-normalize",
- class_name="gy-1",
- children=[
- dbc.Label(
- children=show_tooltip(self._tooltips,
- "help-normalize", "Normalize"),
- class_name="p-0"
- ),
- dbc.Col(
- children=[
- dbc.Checklist(
- id="cl-ctrl-normalize",
- options=[{
- "value": "normalize",
- "label": (
- "Normalize results to CPU"
- "frequency 2GHz"
- )
- }],
- value=[],
- inline=True,
- switch=False
- ),
- ]
- )
- ]
- ),
- dbc.Row(
- class_name="gy-1 p-0",
- children=[
- dbc.ButtonGroup(
- [
- dbc.Button(
- id="btn-ctrl-add",
- children="Add Selected",
- class_name="me-1",
- color="info"
- )
- ],
- size="md",
- )
- ]
- ),
- dbc.Row(
- class_name="gy-1",
- children=[
- dbc.Label(
- class_name="gy-1",
- children=show_tooltip(self._tooltips,
- "help-time-period", "Time Period"),
- ),
- dcc.DatePickerRange(
- id="dpr-period",
- className="d-flex justify-content-center",
- min_date_allowed=\
- datetime.utcnow() - timedelta(
- days=self.time_period),
- max_date_allowed=datetime.utcnow(),
- initial_visible_month=datetime.utcnow(),
- start_date=\
- datetime.utcnow() - timedelta(
- days=self.time_period),
- end_date=datetime.utcnow(),
- display_format="D MMM YY"
- )
- ]
- ),
- dbc.Row(
- id="row-card-sel-tests",
- class_name="gy-1",
- style=C.STYLE_DISABLED,
- children=[
- dbc.Label(
- "Selected tests",
- class_name="p-0"
- ),
- dbc.Checklist(
- class_name="overflow-auto",
- id="cl-selected",
- options=[],
- inline=False,
- style={"max-height": "12em"},
- )
- ],
- ),
- dbc.Row(
- id="row-btns-sel-tests",
- style=C.STYLE_DISABLED,
- children=[
- dbc.ButtonGroup(
- class_name="gy-2",
- children=[
- dbc.Button(
- id="btn-sel-remove",
- children="Remove Selected",
- class_name="w-100 me-1",
- color="info",
- disabled=False
- ),
- dbc.Button(
- id="btn-sel-remove-all",
- children="Remove All",
- class_name="w-100 me-1",
- color="info",
- disabled=False
- ),
- ],
- size="md",
- )
- ]
- ),
- ]
- )
-
- class ControlPanel:
- """A class representing the control panel.
- """
-
- def __init__(self, panel: dict) -> None:
- """Initialisation of the control pannel by default values. If
- particular values are provided (parameter "panel") they are set
- afterwards.
-
- :param panel: Custom values to be set to the control panel.
- :param default: Default values to be set to the control panel.
- :type panel: dict
- :type defaults: dict
- """
-
- # Defines also the order of keys
- self._defaults = {
- "dd-ctrl-dut-value": str(),
- "dd-ctrl-phy-options": list(),
- "dd-ctrl-phy-disabled": True,
- "dd-ctrl-phy-value": str(),
- "dd-ctrl-area-options": list(),
- "dd-ctrl-area-disabled": True,
- "dd-ctrl-area-value": str(),
- "dd-ctrl-test-options": list(),
- "dd-ctrl-test-disabled": True,
- "dd-ctrl-test-value": str(),
- "cl-ctrl-core-options": list(),
- "cl-ctrl-core-value": list(),
- "cl-ctrl-core-all-value": list(),
- "cl-ctrl-core-all-options": C.CL_ALL_DISABLED,
- "cl-ctrl-framesize-options": list(),
- "cl-ctrl-framesize-value": list(),
- "cl-ctrl-framesize-all-value": list(),
- "cl-ctrl-framesize-all-options": C.CL_ALL_DISABLED,
- "cl-ctrl-testtype-options": list(),
- "cl-ctrl-testtype-value": list(),
- "cl-ctrl-testtype-all-value": list(),
- "cl-ctrl-testtype-all-options": C.CL_ALL_DISABLED,
- "btn-ctrl-add-disabled": True,
- "cl-normalize-value": list(),
- "cl-selected-options": list(),
- }
-
- self._panel = deepcopy(self._defaults)
- if panel:
- for key in self._defaults:
- self._panel[key] = panel[key]
-
- @property
- def defaults(self) -> dict:
- return self._defaults
-
- @property
- def panel(self) -> dict:
- return self._panel
-
- def set(self, kwargs: 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]
-
- def values(self) -> tuple:
- """Returns the values from the Control panel as a list.
-
- :returns: The values from the Control panel.
- :rtype: list
- """
- return tuple(self._panel.values())
-
- def callbacks(self, app):
- """Callbacks for the whole application.
-
- :param app: The application.
- :type app: Flask
- """
-
- def _generate_plotting_area(figs: tuple, url: str) -> tuple:
- """Generate the plotting area with all its content.
-
- :param figs: Figures to be placed in the plotting area.
- :param utl: The URL to be placed in the plotting area bellow the
- tables.
- :type figs: tuple of plotly.graph_objects.Figure
- :type url: str
- :returns: tuple of elements to be shown in the plotting area.
- :rtype: tuple(dcc.Graph, dcc.Graph, list(dbc.Col, dbc.Col))
- """
-
- (fig_tput, fig_lat) = figs
-
- row_fig_tput = C.PLACEHOLDER
- row_fig_lat = C.PLACEHOLDER
- row_btn_dwnld = C.PLACEHOLDER
-
- if fig_tput:
- row_fig_tput = [
- dcc.Graph(
- id={"type": "graph", "index": "tput"},
- figure=fig_tput
- )
- ]
- row_btn_dwnld = [
- dbc.Col( # Download
- width=2,
- children=[
- dcc.Loading(children=[
- dbc.Button(
- id="btn-download-data",
- children=show_tooltip(self._tooltips,
- "help-download", "Download Data"),
- class_name="me-1",
- color="info"
- ),
- dcc.Download(id="download-data")
- ]),
- ]
- ),
- dbc.Col( # Show URL
- width=10,
- children=[
- dbc.InputGroup(
- class_name="me-1",
- children=[
- dbc.InputGroupText(
- style=C.URL_STYLE,
- children=show_tooltip(self._tooltips,
- "help-url", "URL", "input-url")
- ),
- dbc.Input(
- id="input-url",
- readonly=True,
- type="url",
- style=C.URL_STYLE,
- value=url
- )
- ]
- )
- ]
- )
- ]
- if fig_lat:
- row_fig_lat = [
- dcc.Graph(
- id={"type": "graph", "index": "lat"},
- figure=fig_lat
- )
- ]
-
- return row_fig_tput, row_fig_lat, row_btn_dwnld
-
- @app.callback(
- Output("control-panel", "data"), # Store
- Output("selected-tests", "data"), # Store
- Output("row-graph-tput", "children"),
- Output("row-graph-lat", "children"),
- Output("row-btn-download", "children"),
- Output("row-card-sel-tests", "style"),
- Output("row-btns-sel-tests", "style"),
- Output("dd-ctrl-dut", "value"),
- Output("dd-ctrl-phy", "options"),
- Output("dd-ctrl-phy", "disabled"),
- Output("dd-ctrl-phy", "value"),
- Output("dd-ctrl-area", "options"),
- Output("dd-ctrl-area", "disabled"),
- Output("dd-ctrl-area", "value"),
- Output("dd-ctrl-test", "options"),
- Output("dd-ctrl-test", "disabled"),
- Output("dd-ctrl-test", "value"),
- Output("cl-ctrl-core", "options"),
- Output("cl-ctrl-core", "value"),
- Output("cl-ctrl-core-all", "value"),
- Output("cl-ctrl-core-all", "options"),
- Output("cl-ctrl-framesize", "options"),
- Output("cl-ctrl-framesize", "value"),
- Output("cl-ctrl-framesize-all", "value"),
- Output("cl-ctrl-framesize-all", "options"),
- Output("cl-ctrl-testtype", "options"),
- Output("cl-ctrl-testtype", "value"),
- Output("cl-ctrl-testtype-all", "value"),
- Output("cl-ctrl-testtype-all", "options"),
- Output("btn-ctrl-add", "disabled"),
- Output("cl-ctrl-normalize", "value"),
- Output("cl-selected", "options"), # User selection
- State("control-panel", "data"), # Store
- State("selected-tests", "data"), # Store
- State("cl-selected", "value"), # User selection
- Input("dd-ctrl-dut", "value"),
- Input("dd-ctrl-phy", "value"),
- Input("dd-ctrl-area", "value"),
- Input("dd-ctrl-test", "value"),
- Input("cl-ctrl-core", "value"),
- Input("cl-ctrl-core-all", "value"),
- Input("cl-ctrl-framesize", "value"),
- Input("cl-ctrl-framesize-all", "value"),
- Input("cl-ctrl-testtype", "value"),
- Input("cl-ctrl-testtype-all", "value"),
- Input("cl-ctrl-normalize", "value"),
- Input("btn-ctrl-add", "n_clicks"),
- Input("dpr-period", "start_date"),
- Input("dpr-period", "end_date"),
- Input("btn-sel-remove", "n_clicks"),
- Input("btn-sel-remove-all", "n_clicks"),
- Input("url", "href")
- )
- def _update_ctrl_panel(cp_data: dict, store_sel: list, list_sel: list,
- dd_dut: str, dd_phy: str, dd_area: str, dd_test: str, cl_core: list,
- cl_core_all: list, cl_framesize: list, cl_framesize_all: list,
- cl_testtype: list, cl_testtype_all: list, cl_normalize: list,
- btn_add: int, d_start: str, d_end: str, btn_remove: int,
- btn_remove_all: int, href: str) -> tuple:
- """Update the application when the event is detected.
-
- :param cp_data: Current status of the control panel stored in
- browser.
- :param store_sel: List of tests selected by user stored in the
- browser.
- :param list_sel: List of tests selected by the user shown in the
- checklist.
- :param dd_dut: Input - DUTs.
- :param dd_phy: Input - topo- arch-nic-driver.
- :param dd_area: Input - Tested area.
- :param dd_test: Input - Test.
- :param cl_core: Input - Number of cores.
- :param cl_core_all: Input - All numbers of cores.
- :param cl_framesize: Input - Frame sizes.
- :param cl_framesize_all: Input - All frame sizes.
- :param cl_testtype: Input - Test type (NDR, PDR, MRR).
- :param cl_testtype_all: Input - All test types.
- :param cl_normalize: Input - Normalize the results.
- :param btn_add: Input - Button "Add Selected" tests.
- :param d_start: Date and time where the data processing starts.
- :param d_end: Date and time where the data processing ends.
- :param btn_remove: Input - Button "Remove selected" tests.
- :param btn_remove_all: Input - Button "Remove All" tests.
- :param href: Input - The URL provided by the browser.
- :type cp_data: dict
- :type store_sel: list
- :type list_sel: list
- :type dd_dut: str
- :type dd_phy: str
- :type dd_area: str
- :type dd_test: str
- :type cl_core: list
- :type cl_core_all: list
- :type cl_framesize: list
- :type cl_framesize_all: list
- :type cl_testtype: list
- :type cl_testtype_all: list
- :type cl_normalize: list
- :type btn_add: int
- :type d_start: str
- :type d_end: str
- :type btn_remove: int
- :type btn_remove_all: int
- :type href: str
- :returns: New values for web page elements.
- :rtype: tuple
- """
-
- ctrl_panel = self.ControlPanel(cp_data)
-
- d_start = get_date(d_start)
- d_end = get_date(d_end)
-
- # Parse the url:
- parsed_url = url_decode(href)
-
- row_fig_tput = no_update
- row_fig_lat = no_update
- row_btn_dwnld = no_update
- row_card_sel_tests = no_update
- row_btns_sel_tests = no_update
-
- trigger_id = callback_context.triggered[0]["prop_id"].split(".")[0]
-
- if trigger_id == "dd-ctrl-dut":
- try:
- dut = self.spec_tbs[dd_dut]
- options = sorted(
- [{"label": v, "value": v}for v in dut.keys()],
- key=lambda d: d["label"]
- )
- disabled = False
- except KeyError:
- options = list()
- disabled = True
- ctrl_panel.set({
- "dd-ctrl-dut-value": dd_dut,
- "dd-ctrl-phy-value": str(),
- "dd-ctrl-phy-options": options,
- "dd-ctrl-phy-disabled": disabled,
- "dd-ctrl-area-value": str(),
- "dd-ctrl-area-options": list(),
- "dd-ctrl-area-disabled": True,
- "dd-ctrl-test-value": str(),
- "dd-ctrl-test-options": list(),
- "dd-ctrl-test-disabled": True,
- "cl-ctrl-core-options": list(),
- "cl-ctrl-core-value": list(),
- "cl-ctrl-core-all-value": list(),
- "cl-ctrl-core-all-options": C.CL_ALL_DISABLED,
- "cl-ctrl-framesize-options": list(),
- "cl-ctrl-framesize-value": list(),
- "cl-ctrl-framesize-all-value": list(),
- "cl-ctrl-framesize-all-options": C.CL_ALL_DISABLED,
- "cl-ctrl-testtype-options": list(),
- "cl-ctrl-testtype-value": list(),
- "cl-ctrl-testtype-all-value": list(),
- "cl-ctrl-testtype-all-options": C.CL_ALL_DISABLED,
- })
- elif trigger_id == "dd-ctrl-phy":
- try:
- dut = ctrl_panel.get("dd-ctrl-dut-value")
- phy = self.spec_tbs[dut][dd_phy]
- options = sorted(
- [{"label": label(v), "value": v} for v in phy.keys()],
- key=lambda d: d["label"]
- )
- disabled = False
- except KeyError:
- options = list()
- disabled = True
- ctrl_panel.set({
- "dd-ctrl-phy-value": dd_phy,
- "dd-ctrl-area-value": str(),
- "dd-ctrl-area-options": options,
- "dd-ctrl-area-disabled": disabled,
- "dd-ctrl-test-value": str(),
- "dd-ctrl-test-options": list(),
- "dd-ctrl-test-disabled": True,
- "cl-ctrl-core-options": list(),
- "cl-ctrl-core-value": list(),
- "cl-ctrl-core-all-value": list(),
- "cl-ctrl-core-all-options": C.CL_ALL_DISABLED,
- "cl-ctrl-framesize-options": list(),
- "cl-ctrl-framesize-value": list(),
- "cl-ctrl-framesize-all-value": list(),
- "cl-ctrl-framesize-all-options": C.CL_ALL_DISABLED,
- "cl-ctrl-testtype-options": list(),
- "cl-ctrl-testtype-value": list(),
- "cl-ctrl-testtype-all-value": list(),
- "cl-ctrl-testtype-all-options": C.CL_ALL_DISABLED,
- })
- elif trigger_id == "dd-ctrl-area":
- try:
- dut = ctrl_panel.get("dd-ctrl-dut-value")
- phy = ctrl_panel.get("dd-ctrl-phy-value")
- area = self.spec_tbs[dut][phy][dd_area]
- options = sorted(
- [{"label": v, "value": v} for v in area.keys()],
- key=lambda d: d["label"]
- )
- disabled = False
- except KeyError:
- options = list()
- disabled = True
- ctrl_panel.set({
- "dd-ctrl-area-value": dd_area,
- "dd-ctrl-test-value": str(),
- "dd-ctrl-test-options": options,
- "dd-ctrl-test-disabled": disabled,
- "cl-ctrl-core-options": list(),
- "cl-ctrl-core-value": list(),
- "cl-ctrl-core-all-value": list(),
- "cl-ctrl-core-all-options": C.CL_ALL_DISABLED,
- "cl-ctrl-framesize-options": list(),
- "cl-ctrl-framesize-value": list(),
- "cl-ctrl-framesize-all-value": list(),
- "cl-ctrl-framesize-all-options": C.CL_ALL_DISABLED,
- "cl-ctrl-testtype-options": list(),
- "cl-ctrl-testtype-value": list(),
- "cl-ctrl-testtype-all-value": list(),
- "cl-ctrl-testtype-all-options": C.CL_ALL_DISABLED,
- })
- elif trigger_id == "dd-ctrl-test":
- core_opts = list()
- framesize_opts = list()
- testtype_opts = list()
- dut = ctrl_panel.get("dd-ctrl-dut-value")
- phy = ctrl_panel.get("dd-ctrl-phy-value")
- area = ctrl_panel.get("dd-ctrl-area-value")
- test = self.spec_tbs[dut][phy][area][dd_test]
- cores = test["core"]
- fsizes = test["frame-size"]
- ttypes = test["test-type"]
- if dut and phy and area and dd_test:
- core_opts = [{"label": v, "value": v}
- for v in sorted(cores)]
- framesize_opts = [{"label": v, "value": v}
- for v in sorted(fsizes)]
- testtype_opts = [{"label": v, "value": v}
- for v in sorted(ttypes)]
- ctrl_panel.set({
- "dd-ctrl-test-value": dd_test,
- "cl-ctrl-core-options": core_opts,
- "cl-ctrl-core-value": list(),
- "cl-ctrl-core-all-value": list(),
- "cl-ctrl-core-all-options": C.CL_ALL_ENABLED,
- "cl-ctrl-framesize-options": framesize_opts,
- "cl-ctrl-framesize-value": list(),
- "cl-ctrl-framesize-all-value": list(),
- "cl-ctrl-framesize-all-options": C.CL_ALL_ENABLED,
- "cl-ctrl-testtype-options": testtype_opts,
- "cl-ctrl-testtype-value": list(),
- "cl-ctrl-testtype-all-value": list(),
- "cl-ctrl-testtype-all-options": C.CL_ALL_ENABLED,
- })
- elif trigger_id == "cl-ctrl-core":
- val_sel, val_all = sync_checklists(
- options=ctrl_panel.get("cl-ctrl-core-options"),
- sel=cl_core,
- all=list(),
- id=""
- )
- ctrl_panel.set({
- "cl-ctrl-core-value": val_sel,
- "cl-ctrl-core-all-value": val_all,
- })
- elif trigger_id == "cl-ctrl-core-all":
- val_sel, val_all = sync_checklists(
- options = ctrl_panel.get("cl-ctrl-core-options"),
- sel=list(),
- all=cl_core_all,
- id="all"
- )
- ctrl_panel.set({
- "cl-ctrl-core-value": val_sel,
- "cl-ctrl-core-all-value": val_all,
- })
- elif trigger_id == "cl-ctrl-framesize":
- val_sel, val_all = sync_checklists(
- options = ctrl_panel.get("cl-ctrl-framesize-options"),
- sel=cl_framesize,
- all=list(),
- id=""
- )
- ctrl_panel.set({
- "cl-ctrl-framesize-value": val_sel,
- "cl-ctrl-framesize-all-value": val_all,
- })
- elif trigger_id == "cl-ctrl-framesize-all":
- val_sel, val_all = sync_checklists(
- options = ctrl_panel.get("cl-ctrl-framesize-options"),
- sel=list(),
- all=cl_framesize_all,
- id="all"
- )
- ctrl_panel.set({
- "cl-ctrl-framesize-value": val_sel,
- "cl-ctrl-framesize-all-value": val_all,
- })
- elif trigger_id == "cl-ctrl-testtype":
- val_sel, val_all = sync_checklists(
- options = ctrl_panel.get("cl-ctrl-testtype-options"),
- sel=cl_testtype,
- all=list(),
- id=""
- )
- ctrl_panel.set({
- "cl-ctrl-testtype-value": val_sel,
- "cl-ctrl-testtype-all-value": val_all,
- })
- elif trigger_id == "cl-ctrl-testtype-all":
- val_sel, val_all = sync_checklists(
- options = ctrl_panel.get("cl-ctrl-testtype-options"),
- sel=list(),
- all=cl_testtype_all,
- id="all"
- )
- ctrl_panel.set({
- "cl-ctrl-testtype-value": val_sel,
- "cl-ctrl-testtype-all-value": val_all,
- })
- elif trigger_id == "btn-ctrl-add":
- _ = btn_add
- dut = ctrl_panel.get("dd-ctrl-dut-value")
- phy = ctrl_panel.get("dd-ctrl-phy-value")
- area = ctrl_panel.get("dd-ctrl-area-value")
- test = ctrl_panel.get("dd-ctrl-test-value")
- cores = ctrl_panel.get("cl-ctrl-core-value")
- framesizes = ctrl_panel.get("cl-ctrl-framesize-value")
- testtypes = ctrl_panel.get("cl-ctrl-testtype-value")
- # Add selected test to the list of tests in store:
- if all((dut, phy, area, test, cores, framesizes, testtypes)):
- if store_sel is None:
- store_sel = list()
- for core in cores:
- for framesize in framesizes:
- for ttype in testtypes:
- 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 [itm["id"] for itm 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"])
- row_card_sel_tests = C.STYLE_ENABLED
- row_btns_sel_tests = C.STYLE_ENABLED
- if C.CLEAR_ALL_INPUTS:
- ctrl_panel.set(ctrl_panel.defaults)
- elif trigger_id == "btn-sel-remove-all":
- _ = btn_remove_all
- row_fig_tput = C.PLACEHOLDER
- row_fig_lat = C.PLACEHOLDER
- row_btn_dwnld = C.PLACEHOLDER
- row_card_sel_tests = C.STYLE_DISABLED
- row_btns_sel_tests = C.STYLE_DISABLED
- store_sel = list()
- ctrl_panel.set({"cl-selected-options": list()})
- elif trigger_id == "btn-sel-remove":
- _ = btn_remove
- if list_sel:
- new_store_sel = list()
- for item in store_sel:
- if item["id"] not in list_sel:
- new_store_sel.append(item)
- store_sel = new_store_sel
- elif trigger_id == "url":
- # TODO: Add verification
- url_params = parsed_url["params"]
- if url_params:
- store_sel = literal_eval(
- url_params.get("store_sel", list())[0])
- d_start = get_date(url_params.get("start", list())[0])
- d_end = get_date(url_params.get("end", list())[0])
- if store_sel:
- row_card_sel_tests = C.STYLE_ENABLED
- row_btns_sel_tests = C.STYLE_ENABLED
-
- if trigger_id in ("btn-ctrl-add", "url", "dpr-period",
- "btn-sel-remove", "cl-ctrl-normalize"):
- if store_sel:
- row_fig_tput, row_fig_lat, row_btn_dwnld = \
- _generate_plotting_area(
- graph_trending(self.data, store_sel, self.layout,
- d_start, d_end, bool(cl_normalize)),
- gen_new_url(
- parsed_url,
- {
- "store_sel": store_sel,
- "start": d_start,
- "end": d_end
- }
- )
- )
- ctrl_panel.set({
- "cl-selected-options": list_tests(store_sel)
- })
- else:
- row_fig_tput = C.PLACEHOLDER
- row_fig_lat = C.PLACEHOLDER
- row_btn_dwnld = C.PLACEHOLDER
- row_card_sel_tests = C.STYLE_DISABLED
- row_btns_sel_tests = C.STYLE_DISABLED
- store_sel = list()
- ctrl_panel.set({"cl-selected-options": list()})
-
- if ctrl_panel.get("cl-ctrl-core-value") and \
- ctrl_panel.get("cl-ctrl-framesize-value") and \
- ctrl_panel.get("cl-ctrl-testtype-value"):
- disabled = False
- else:
- disabled = True
- ctrl_panel.set({
- "btn-ctrl-add-disabled": disabled,
- "cl-normalize-value": cl_normalize
- })
-
- ret_val = [
- ctrl_panel.panel, store_sel,
- row_fig_tput, row_fig_lat, row_btn_dwnld,
- row_card_sel_tests, row_btns_sel_tests
- ]
- ret_val.extend(ctrl_panel.values())
- return ret_val
-
- @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)
- """
- try:
- trigger_id = loads(
- callback_context.triggered[0]["prop_id"].split(".")[0]
- )["index"]
- idx = 0 if trigger_id == "tput" else 1
- graph_data = graph_data[idx]["points"][0]
- except (JSONDecodeError, IndexError, KeyError, ValueError,
- TypeError):
- raise PreventUpdate
-
- metadata = no_update
- graph = list()
-
- children = [
- dbc.ListGroupItem(
- [dbc.Badge(x.split(":")[0]), x.split(": ")[1]]
- ) for x in graph_data.get("text", "").split("<br>")
- ]
- if trigger_id == "tput":
- title = "Throughput"
- elif trigger_id == "lat":
- title = "Latency"
- hdrh_data = graph_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(children=[
- dcc.Graph(
- id="hdrh-latency-graph",
- figure=graph_hdrh_latency(
- hdrh_data, self.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(
- id="tput-lat-metadata",
- class_name="p-0",
- children=[dbc.ListGroup(children, flush=True), ]
- )
- ]
- )
- ]
-
- return metadata, graph, True
-
- @app.callback(
- Output("download-data", "data"),
- State("selected-tests", "data"),
- Input("btn-download-data", "n_clicks"),
- prevent_initial_call=True
- )
- def _download_data(store_sel, n_clicks):
- """Download the data
-
- :param store_sel: List of tests selected by user stored in the
- browser.
- :param n_clicks: Number of clicks on the button "Download".
- :type store_sel: list
- :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
-
- if not store_sel:
- raise PreventUpdate
-
- df = pd.DataFrame()
- for itm in store_sel:
- sel_data = select_trending_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.TREND_DOWNLOAD_FILE_NAME)
diff --git a/resources/tools/dash/app/pal/trending/layout.yaml b/resources/tools/dash/app/pal/trending/layout.yaml
deleted file mode 100644
index 0c0b62d591..0000000000
--- a/resources/tools/dash/app/pal/trending/layout.yaml
+++ /dev/null
@@ -1,210 +0,0 @@
-plot-trending-tput:
- # title: ""
- # titlefont:
- # size: 16
- autosize: True
- showlegend: True
- # width: 1100
- #height: 400
- yaxis:
- showticklabels: True
- tickformat: ".3s"
- 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"
- - count: 4
- label: "4m"
- step: "month"
- stepmode: "backward"
- - count: 5
- label: "5m"
- step: "month"
- stepmode: "backward"
- - step: "all"
- margin:
- r: 20
- b: 0
- t: 5
- l: 70
- legend:
- orientation: "h"
- y: -0.18
- xanchor: "auto"
- traceorder: "normal"
- bordercolor: "rgb(238, 238, 238)"
- paper_bgcolor: "#fff"
- plot_bgcolor: "#fff"
- hoverlabel:
- namelength: -1
-
-plot-trending-lat:
- # title: ""
- # titlefont:
- # size: 16
- autosize: True
- showlegend: True
- # width: 1100
- #height: 400
- 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"
- 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"
- - count: 4
- label: "4m"
- step: "month"
- stepmode: "backward"
- - count: 5
- label: "5m"
- step: "month"
- stepmode: "backward"
- - step: "all"
- margin:
- r: 20
- b: 0
- t: 5
- l: 70
- legend:
- orientation: "h"
- y: -0.18
- xanchor: "auto"
- traceorder: "normal"
- bordercolor: "rgb(238, 238, 238)"
- paper_bgcolor: "#fff"
- plot_bgcolor: "#fff"
- hoverlabel:
- namelength: -1
-
-plot-hdrh-latency:
- # title:
- # text: "Latency by Percentile Distribution"
- # xanchor: "center"
- # x: 0.5
- # font:
- # size: 10
- showlegend: True
- legend:
- traceorder: "normal"
- orientation: "h"
- # font:
- # size: 16
- 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 [%]"
- # titlefont:
- # size: 14
- autorange: False
- fixedrange: 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]
- # tickfont:
- # size: 14
- yaxis:
- title: "One-Way Latency per Direction [us]"
- # 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: True
- #height: 400
- paper_bgcolor: "white"
- plot_bgcolor: "white"
diff --git a/resources/tools/dash/app/pal/trending/trending.py b/resources/tools/dash/app/pal/trending/trending.py
deleted file mode 100644
index af1dc79722..0000000000
--- a/resources/tools/dash/app/pal/trending/trending.py
+++ /dev/null
@@ -1,48 +0,0 @@
-# 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.
-
-"""Instantiate the Trending Dash application.
-"""
-import dash
-
-from ..utils.constants import Constants as C
-from .layout import Layout
-
-
-def init_trending(server, time_period=None):
- """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
- )
-
- layout = Layout(
- app=dash_app,
- html_layout_file=C.TREND_HTML_LAYOUT_FILE,
- graph_layout_file=C.TREND_GRAPH_LAYOUT_FILE,
- data_spec_file=C.DATA_SPEC_FILE,
- tooltip_file=C.TOOLTIP_FILE,
- time_period=time_period
- )
- dash_app.index_string = layout.html_layout
- dash_app.layout = layout.add_content()
-
- return dash_app.server
diff --git a/resources/tools/dash/app/pal/utils/__init__.py b/resources/tools/dash/app/pal/utils/__init__.py
deleted file mode 100644
index 5692432123..0000000000
--- a/resources/tools/dash/app/pal/utils/__init__.py
+++ /dev/null
@@ -1,12 +0,0 @@
-# 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.
diff --git a/resources/tools/dash/app/pal/utils/constants.py b/resources/tools/dash/app/pal/utils/constants.py
deleted file mode 100644
index cc4a9e0f23..0000000000
--- a/resources/tools/dash/app/pal/utils/constants.py
+++ /dev/null
@@ -1,312 +0,0 @@
-# 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 Dash PAL.
-
-"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 dash_bootstrap_components as dbc
-
-from dash import html
-
-
-class Constants:
- """Constants used in Dash PAL.
- """
-
- ############################################################################
- # General, application wide constants.
-
- # The application title.
- TITLE = "FD.io CSIT"
-
- # The application description.
- DESCRIPTION = "Performance Dashboard"
-
- # External stylesheets.
- EXTERNAL_STYLESHEETS = [dbc.themes.LUX, ]
-
- # Top level template for all pages.
- TEMPLATE = "d-flex h-100 text-center text-white bg-dark"
-
- # Path and name of the file specifying the HTML layout of the dash
- # application.
- MAIN_HTML_LAYOUT_FILE = "index_layout.jinja2"
-
- # Application root.
- APPLICATIN_ROOT = "/"
-
- # Data to be downloaded from the parquets specification file.
- DATA_SPEC_FILE = "pal/data/data.yaml"
-
- # The file with tooltips.
- TOOLTIP_FILE = "pal/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 = 180
-
- # 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]
-
- # List of releases used for iterative data processing.
- # The releases MUST be in the order from the current (newest) to the last
- # (oldest).
- RELEASES = ["csit2206", "csit2202", ]
-
- ############################################################################
- # General, application wide, layout affecting constants.
-
- # If True, clear all inputs in control panel when button "ADD SELECTED" is
- # pressed.
- CLEAR_ALL_INPUTS = False
-
- # The element is disabled.
- STYLE_DISABLED = {"display": "none"}
-
- # The element is enabled and visible.
- STYLE_ENABLED = {"display": "inherit"}
-
- # Checklist "All" is disabled.
- CL_ALL_DISABLED = [
- {
- "label": "All",
- "value": "all",
- "disabled": True
- }
- ]
-
- # Checklist "All" is enable, 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")
-
- # Labels for input elements (dropdowns, ...).
- LABELS = {
- "dpdk": "DPDK",
- "container_memif": "LXC/DRC Container Memif",
- "crypto": "IPSec IPv4 Routing",
- "ip4": "IPv4 Routing",
- "ip6": "IPv6 Routing",
- "ip4_tunnels": "IPv4 Tunnels",
- "l2": "L2 Ethernet Switching",
- "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",
- }
-
- # URL style.
- URL_STYLE = {
- "background-color": "#d2ebf5",
- "border-color": "#bce1f1",
- "color": "#135d7c"
- }
-
- ############################################################################
- # General, normalization constants.
-
- NORM_FREQUENCY = 2.0 # [GHz]
- FREQUENCY = { # [GHz]
- "2n-aws": 1.000,
- "2n-dnv": 2.000,
- "2n-clx": 2.300,
- "2n-icx": 2.600,
- "2n-skx": 2.500,
- "2n-tx2": 2.500,
- "2n-zn2": 2.900,
- "3n-alt": 3.000,
- "3n-aws": 1.000,
- "3n-dnv": 2.000,
- "3n-icx": 2.600,
- "3n-skx": 2.500,
- "3n-tsh": 2.200
- }
-
- ############################################################################
- # General, plots 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",
- "pdr-lat": "result_latency_forward_pdr_50_avg"
- }
-
- VALUE_ITER = {
- "mrr": "result_receive_rate_rate_values",
- "ndr": "result_ndr_lower_rate_value",
- "pdr": "result_pdr_lower_rate_value",
- "pdr-lat": "result_latency_forward_pdr_50_avg"
- }
-
- UNIT = {
- "mrr": "result_receive_rate_rate_unit",
- "ndr": "result_ndr_lower_rate_unit",
- "pdr": "result_pdr_lower_rate_unit",
- "pdr-lat": "result_latency_forward_pdr_50_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."
- }
-
- ############################################################################
- # News.
-
- # The pathname prefix for the application.
- NEWS_ROUTES_PATHNAME_PREFIX = "/news/"
-
- # Path and name of the file specifying the HTML layout of the dash
- # application.
- NEWS_HTML_LAYOUT_FILE = "pal/templates/news_layout.jinja2"
-
- # The default job displayed when the page is loaded first time.
- NEWS_DEFAULT_JOB = "csit-vpp-perf-mrr-daily-master-2n-icx"
-
- # Time period for regressions and progressions. Be CAREFULL with this
- # number. Setting it too high causes long processing time during the
- # application start-up.
- # If NEWS_TIME_PERIOD = 180, it takes approx. 35 minutes to calculate
- # annomalies for all tests.
- NEWS_TIME_PERIOD = 21 # [days]
-
- ############################################################################
- # Report.
-
- # The pathname prefix for the application.
- REPORT_ROUTES_PATHNAME_PREFIX = "/report/"
-
- # Path and name of the file specifying the HTML layout of the dash
- # application.
- REPORT_HTML_LAYOUT_FILE = "pal/templates/report_layout.jinja2"
-
- # Layout of plot.ly graphs.
- REPORT_GRAPH_LAYOUT_FILE = "pal/report/layout.yaml"
-
- # Default name of downloaded file with selected data.
- REPORT_DOWNLOAD_FILE_NAME = "iterative_data.csv"
-
- ############################################################################
- # Statistics.
-
- # The pathname prefix for the application.
- STATS_ROUTES_PATHNAME_PREFIX = "/stats/"
-
- # Path and name of the file specifying the HTML layout of the dash
- # application.
- STATS_HTML_LAYOUT_FILE = "pal/templates/stats_layout.jinja2"
-
- # Layout of plot.ly graphs.
- STATS_GRAPH_LAYOUT_FILE = "pal/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"
-
- ############################################################################
- # Trending.
-
- # The pathname prefix for the application.
- TREND_ROUTES_PATHNAME_PREFIX = "/trending/"
-
- # Path and name of the file specifying the HTML layout of the dash
- # application.
- TREND_HTML_LAYOUT_FILE = "pal/templates/trending_layout.jinja2"
-
- # Layout of plot.ly graphs.
- TREND_GRAPH_LAYOUT_FILE = "pal/trending/layout.yaml"
-
- # Default name of downloaded file with selected data.
- TREND_DOWNLOAD_FILE_NAME = "trending_data.csv"
diff --git a/resources/tools/dash/app/pal/utils/tooltips.yaml b/resources/tools/dash/app/pal/utils/tooltips.yaml
deleted file mode 100644
index 2086b575a9..0000000000
--- a/resources/tools/dash/app/pal/utils/tooltips.yaml
+++ /dev/null
@@ -1,40 +0,0 @@
-help-area:
- The area defines a VPP packet path and lookup type.
-help-cadence:
- The cadence of the Jenkins job which runs the tests.
-help-cores:
- Number of cores the DUT uses during the test.
-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-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-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-time-period:
- Choose a time period for selected tests.
-help-ttype:
- Main measured variable.
-help-url:
- URL with current configuration. If there is no "Copy URL" button, use triple
- click.
diff --git a/resources/tools/dash/app/pal/utils/utils.py b/resources/tools/dash/app/pal/utils/utils.py
deleted file mode 100644
index 9e4eeeb892..0000000000
--- a/resources/tools/dash/app/pal/utils/utils.py
+++ /dev/null
@@ -1,344 +0,0 @@
-# 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.
-
-"""Function used by Dash applications.
-"""
-
-import pandas as pd
-import dash_bootstrap_components as dbc
-
-from numpy import isnan
-from dash import dcc
-from datetime import datetime
-
-from ..jumpavg import classify
-from ..utils.constants import Constants as C
-from ..utils.url_processing import url_encode
-
-
-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
-
-
-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) -> 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
- """
- 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]))
- }
diff --git a/resources/tools/dash/app/requirements.txt b/resources/tools/dash/app/requirements.txt
deleted file mode 100644
index d09eecd2d9..0000000000
--- a/resources/tools/dash/app/requirements.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-attrs==21.2.0
-awswrangler==2.14.0
-Brotli==1.0.9
-click==8.0.3
-dash==2.0.0
-dash-core-components==2.0.0
-dash_bootstrap_components==1.1.0
-dash-html-components==2.0.0
-dash-renderer==1.9.1
-dash-table==5.0.0
-Flask==2.0.2
-Flask-Assets==2.0
-Flask-Compress==1.10.1
-hdrhistogram==0.9.1
-future==0.18.2
-intervaltree==3.1.0
-itsdangerous==2.0.1
-Jinja2==3.0.3
-MarkupSafe==2.0.1
-numpy==1.21.4
-packaging==21.3
-pandas==1.3.5
-pip==21.2.4
-plotly==5.4.0
-protobuf==3.19.1
-pyparsing==3.0.6
-python-dateutil==2.8.2
-python-dotenv==0.19.2
-pytz==2021.3
-PyYAML==5.1
-retrying==1.3.3
-setuptools==57.5.0
-six==1.16.0
-sortedcontainers==2.4.0
-tenacity==8.0.1
-uWSGI==2.0.20
-webassets==2.0
-Werkzeug==2.0.2
-wheel==0.37.0 \ No newline at end of file
diff --git a/resources/tools/dash/docker-compose.yaml b/resources/tools/dash/docker-compose.yaml
deleted file mode 100644
index 1b44700519..0000000000
--- a/resources/tools/dash/docker-compose.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-version: "3"
-services:
- dash:
- build: "."
- command: "uwsgi --ini app.ini --workers 1"
- environment:
- AWS_ACCESS_KEY_ID: ""
- AWS_SECRET_ACCESS_KEY: ""
- ports:
- - "5000:5000"
- volumes:
- - "./app/:/app"
- - "../../libraries/python/jumpavg/:/app/pal/jumpavg"
- - "/home/vagrant/.aws:/root/.aws"
- working_dir: "/app"
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 d3f7d96c58..0000000000
--- a/resources/tools/doc_gen/gen_rst.py
+++ /dev/null
@@ -1,322 +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.
-from os import walk, listdir, scandir, environ
-from os.path import isfile, isdir, join, getsize
-
-# Temporary working directory. It is created and deleted by docs.sh
-WORKING_DIR = environ.get("WORKING_DIR")
-
-# 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) and u"__init__" not in filename:
- 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 add_nested_folders_in_rst_set(file_names, path):
- """Add RST files from folders where are only folders without tests.
-
- :param file_names: List of all files to be documented with path beginning
- in the working directory.
- :param path: Path where it starts adding missing RST files.
- :type file_names: list
- :type path: str
- """
-
- # When we split directory tree by "/" we don't need to create RST file in
- # folders in depth <= 5. It's because the WORKING_DIR folder structure i
- # as following:
- # /tmp/tmp-csitXXX/tests/<subject_of_test>/<type_of_test>/<what_is_tested>
- # That splits to ie:
- # ['', 'tmp', 'tmp-csitXXX', 'tests', 'vpp', 'device', 'container_memif']
- # We need to generate RST files for folders after <subject_of_test> which
- # is in depth > 5
-
- for directory in fast_scandir(path):
- dir_list = directory.split(u"/")
- if len(dir_list) > 5:
- # cut ['', 'tmp', 'tmp-csitXXX']
- dir_rst = u".".join(dir_list[3:]) + u".rst"
- if dir_rst not in file_names and u"__pycache__" not in dir_rst:
- file_names.add(dir_rst)
-
-
-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 directory in dirs:
- fh.write(f" {u'.'.join(path)}.{directory}\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)
- add_nested_folders_in_rst_set(file_names, PATH_TESTS)
-
- generate_rf_rst_files(
- file_names, incl_suite_setup=True, incl_variables=True
- )
-
-
-def fast_scandir(dirname):
- subfolders = [f.path for f in scandir(dirname) if f.is_dir()]
- for dirname in list(subfolders):
- subfolders.extend(fast_scandir(dirname))
- return subfolders
-
-
-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/src/Makefile b/resources/tools/doc_gen/src/Makefile
deleted file mode 100644
index 087683e4eb..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"
- @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 02707665ad..0000000000
--- a/resources/tools/doc_gen/src/conf.py
+++ /dev/null
@@ -1,302 +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"]
-
-# The master toctree document.
-master_doc = u"index"
-
-# General information about the project.
-project = u"FD.io CSIT"
-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'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 = u'en'
-
-# 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"
-
-# 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 = {
- 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 themes here, relative to this directory.
-html_theme_path = [u'env/lib/python3.8/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 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
-
-# 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/index.rst b/resources/tools/doc_gen/src/index.rst
deleted file mode 100644
index 82f01db0c8..0000000000
--- a/resources/tools/doc_gen/src/index.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-Contents
---------
-
-.. toctree::
- :numbered:
- :maxdepth: 1
- :glob:
-
- overview
- resources.libraries.python
- resources.libraries.robot
- tests.dpdk.perf
- tests.trex.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.trex.perf.rst b/resources/tools/doc_gen/src/tests.trex.perf.rst
deleted file mode 100644
index 55ab087177..0000000000
--- a/resources/tools/doc_gen/src/tests.trex.perf.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-TREX 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.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/integrated/check_crc.py b/resources/tools/integrated/check_crc.py
index 6baa7a190d..01a557c30c 100644
--- a/resources/tools/integrated/check_crc.py
+++ b/resources/tools/integrated/check_crc.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:
@@ -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}",
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 b4d52dcdfe..59ea7e5d0f 100644
--- a/resources/tools/integrated/compare_perpatch.py
+++ b/resources/tools/integrated/compare_perpatch.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:
@@ -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 enumerate(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/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 a85fe45c2b..0000000000
--- a/resources/tools/presentation/__init__.py
+++ /dev/null
@@ -1,34 +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.
-
-"""
-__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/convert_xml_json.py b/resources/tools/presentation/convert_xml_json.py
deleted file mode 100644
index 73469cd025..0000000000
--- a/resources/tools/presentation/convert_xml_json.py
+++ /dev/null
@@ -1,410 +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.
-
-"""Convert output_info.xml files into JSON structures.
-
-Version: 0.1.0
-Date: 22nd June 2021
-
-The json structure is defined in https://gerrit.fd.io/r/c/csit/+/28992
-"""
-
-import os
-import re
-import json
-import logging
-import gzip
-
-from os.path import join
-from shutil import rmtree
-from copy import deepcopy
-from json import loads
-
-from pal_utils import get_files
-
-
-class JSONData:
- """A Class storing and manipulating data from tests.
- """
-
- def __init__(self, template=None):
- """Initialization.
-
- :param template: JSON formatted template used to store data. It can
- include default values.
- :type template: dict
- """
-
- self._template = deepcopy(template)
- self._data = self._template if self._template else dict()
-
- def __str__(self):
- """Return a string with human readable data.
-
- :returns: Readable description.
- :rtype: str
- """
- return str(self._data)
-
- def __repr__(self):
- """Return a string executable as Python constructor call.
-
- :returns: Executable constructor call.
- :rtype: str
- """
- return f"JSONData(template={self._template!r})"
-
- @property
- def data(self):
- """Getter
-
- :return: Data stored in the object.
- :rtype: dict
- """
- return self._data
-
- def update(self, kwargs):
- """Update the data with new data from the dictionary.
-
- :param kwargs: Key value pairs to be added to the data.
- :type kwargs: dict
- """
- self._data.update(kwargs)
-
- def set_key(self, key, val):
- """Setter.
-
- :param key: The key to be updated / added.
- :param val: The key value.
- :type key: str
- :type val: object
- """
- self._data[key] = deepcopy(val)
-
- def add_to_list(self, key, val):
- """Add an item to the list identified by key.
-
- :param key: The key identifying the list.
- :param val: The val to be appended to the list. If val is a list,
- extend is used.
- """
- if self._data.get(key, None) is None:
- self._data[key] = list()
- if isinstance(val, list):
- self._data[key].extend(val)
- else:
- self._data[key].append(val)
-
- def dump(self, file_out, indent=None):
- """Write JSON data to a file.
-
- :param file_out: Path to the output JSON file.
- :param indent: Indentation of items in JSON string. It is directly
- passed to json.dump method.
- :type file_out: str
- :type indent: str
- """
- try:
- with open(file_out, u"w") as file_handler:
- json.dump(self._data, file_handler, indent=indent)
- except OSError as err:
- logging.warning(f"{repr(err)} Skipping")
-
- def load(self, file_in):
- """Load JSON data from a file.
-
- :param file_in: Path to the input JSON file.
- :type file_in: str
- :raises: ValueError if the data being deserialized is not a valid
- JSON document.
- :raises: IOError if the file is not found or corrupted.
- """
- with open(file_in, u"r") as file_handler:
- self._data = json.load(file_handler)
-
-
-def _export_test_from_xml_to_json(tid, in_data, out, template, metadata):
- """Export data from a test to a json structure.
-
- :param tid: Test ID.
- :param in_data: Test data.
- :param out: Path to output json file.
- :param template: JSON template with optional default values.
- :param metadata: Data which are not stored in XML structure.
- :type tid: str
- :type in_data: dict
- :type out: str
- :type template: dict
- :type metadata: dict
- """
-
- data = JSONData(template=template)
-
- data.update(metadata)
- data.set_key(u"test_id", tid)
- t_type = in_data.get(u"type", u"")
- t_type = u"NDRPDR" if t_type == u"CPS" else t_type # It is NDRPDR
- data.set_key(u"test_type", t_type)
- tags = in_data.get(u"tags", list())
- data.set_key(u"tags", tags)
- data.set_key(u"documentation", in_data.get(u"documentation", u""))
- data.set_key(u"message", in_data.get(u"msg", u""))
- data.set_key(u"start_time", in_data.get(u"starttime", u""))
- data.set_key(u"end_time", in_data.get(u"endtime", u""))
- data.set_key(u"status", in_data.get(u"status", u"FAILED"))
- sut_type = u""
- if u"vpp" in tid:
- sut_type = u"vpp"
- elif u"dpdk" in tid:
- sut_type = u"dpdk"
- data.set_key(u"sut_type", sut_type)
-
- # Process configuration history:
- in_papi = deepcopy(in_data.get(u"conf_history", None))
- if in_papi:
- regex_dut = re.compile(r'\*\*DUT(\d):\*\*')
- node_id = u"dut1"
- for line in in_papi.split(u"\n"):
- if not line:
- continue
- groups = re.search(regex_dut, line)
- if groups:
- node_id = f"dut{groups.group(1)}"
- else:
- data.add_to_list(
- u"log",
- {
- u"source_type": u"node",
- u"source_id": node_id,
- u"msg_type": u"papi",
- u"log_level": u"INFO",
- u"timestamp": in_data.get(u"starttime", u""),
- u"msg": line,
- u"data": list()
- }
- )
-
- # Process show runtime:
- if in_data.get(u"telemetry-show-run", None):
- for item in in_data[u"telemetry-show-run"].values():
- data.add_to_list(u"log", item.get(u"runtime", dict()))
- else:
- in_sh_run = deepcopy(in_data.get(u"show-run", None))
- if in_sh_run:
- # Transform to openMetrics format
- for key, val in in_sh_run.items():
- log_item = {
- u"source_type": u"node",
- u"source_id": key,
- u"msg_type": u"metric",
- u"log_level": u"INFO",
- u"timestamp": in_data.get(u"starttime", u""),
- u"msg": u"show_runtime",
- u"data": list()
- }
- runtime = loads(val.get(u"runtime", list()))
- for item in runtime:
- for metric, m_data in item.items():
- if metric == u"name":
- continue
- for idx, m_item in enumerate(m_data):
- log_item[u"data"].append(
- {
- u"name": metric,
- u"value": m_item,
- u"labels": {
- u"host": val.get(u"host", u""),
- u"socket": val.get(u"socket", u""),
- u"graph_node": item.get(u"name", u""),
- u"thread_id": str(idx)
- }
- }
- )
- data.add_to_list(u"log", log_item)
-
- # Process results:
- results = dict()
- if t_type == u"DEVICETEST":
- pass # Nothing to add.
- elif t_type == u"NDRPDR":
- results = {
- u"throughput": {
- u"unit":
- u"cps" if u"TCP_CPS" in tags or u"UDP_CPS" in tags
- else u"pps",
- u"ndr": {
- u"value": {
- u"lower": in_data.get(u"throughput", dict()).
- get(u"NDR", dict()).get(u"LOWER", u"NaN"),
- u"upper": in_data.get(u"throughput", dict()).
- get(u"NDR", dict()).get(u"UPPER", u"NaN")
- },
- u"value_gbps": {
- u"lower": in_data.get(u"gbps", dict()).
- get(u"NDR", dict()).get(u"LOWER", u"NaN"),
- u"upper": in_data.get(u"gbps", dict()).
- get(u"NDR", dict()).get(u"UPPER", u"NaN")
- }
- },
- u"pdr": {
- u"value": {
- u"lower": in_data.get(u"throughput", dict()).
- get(u"PDR", dict()).get(u"LOWER", u"NaN"),
- u"upper": in_data.get(u"throughput", dict()).
- get(u"PDR", dict()).get(u"UPPER", u"NaN")
- },
- u"value_gbps": {
- u"lower": in_data.get(u"gbps", dict()).
- get(u"PDR", dict()).get(u"LOWER", u"NaN"),
- u"upper": in_data.get(u"gbps", dict()).
- get(u"PDR", dict()).get(u"UPPER", u"NaN")
- }
- }
- },
- u"latency": {
- u"forward": {
- u"pdr_90": in_data.get(u"latency", dict()).
- get(u"PDR90", dict()).get(u"direction1", u"NaN"),
- u"pdr_50": in_data.get(u"latency", dict()).
- get(u"PDR50", dict()).get(u"direction1", u"NaN"),
- u"pdr_10": in_data.get(u"latency", dict()).
- get(u"PDR10", dict()).get(u"direction1", u"NaN"),
- u"pdr_0": in_data.get(u"latency", dict()).
- get(u"LAT0", dict()).get(u"direction1", u"NaN")
- },
- u"reverse": {
- u"pdr_90": in_data.get(u"latency", dict()).
- get(u"PDR90", dict()).get(u"direction2", u"NaN"),
- u"pdr_50": in_data.get(u"latency", dict()).
- get(u"PDR50", dict()).get(u"direction2", u"NaN"),
- u"pdr_10": in_data.get(u"latency", dict()).
- get(u"PDR10", dict()).get(u"direction2", u"NaN"),
- u"pdr_0": in_data.get(u"latency", dict()).
- get(u"LAT0", dict()).get(u"direction2", u"NaN")
- }
- }
- }
- elif t_type == "MRR":
- results = {
- u"unit": u"pps", # Old data use only pps
- u"samples": in_data.get(u"result", dict()).get(u"samples", list()),
- u"avg": in_data.get(u"result", dict()).get(u"receive-rate", u"NaN"),
- u"stdev": in_data.get(u"result", dict()).
- get(u"receive-stdev", u"NaN")
- }
- elif t_type == "SOAK":
- results = {
- u"critical_rate": {
- u"lower": in_data.get(u"throughput", dict()).
- get(u"LOWER", u"NaN"),
- u"upper": in_data.get(u"throughput", dict()).
- get(u"UPPER", u"NaN"),
- }
- }
- elif t_type == "HOSTSTACK":
- results = in_data.get(u"result", dict())
- # elif t_type == "TCP": # Not used ???
- # results = in_data.get(u"result", u"NaN")
- elif t_type == "RECONF":
- results = {
- u"loss": in_data.get(u"result", dict()).get(u"loss", u"NaN"),
- u"time": in_data.get(u"result", dict()).get(u"time", u"NaN")
- }
- else:
- pass
- data.set_key(u"results", results)
-
- data.dump(out, indent=u" ")
-
-
-def convert_xml_to_json(spec, data):
- """Convert downloaded XML files into JSON.
-
- Procedure:
- - create one json file for each test,
- - gzip all json files one by one,
- - delete json files.
-
- :param spec: Specification read from the specification files.
- :param data: Input data parsed from output.xml files.
- :type spec: Specification
- :type data: InputData
- """
-
- logging.info(u"Converting downloaded XML files to JSON ...")
-
- template_name = spec.output.get(u"use-template", None)
- structure = spec.output.get(u"structure", u"tree")
- if template_name:
- with open(template_name, u"r") as file_handler:
- template = json.load(file_handler)
- else:
- template = None
-
- build_dir = spec.environment[u"paths"][u"DIR[BUILD,JSON]"]
- try:
- rmtree(build_dir)
- except FileNotFoundError:
- pass # It does not exist
-
- os.mkdir(build_dir)
-
- for job, builds in data.data.items():
- logging.info(f" Processing job {job}")
- if structure == "tree":
- os.makedirs(join(build_dir, job), exist_ok=True)
- for build_nr, build in builds.items():
- logging.info(f" Processing build {build_nr}")
- if structure == "tree":
- os.makedirs(join(build_dir, job, build_nr), exist_ok=True)
- for test_id, test_data in build[u"tests"].items():
- groups = re.search(re.compile(r'-(\d+[tT](\d+[cC]))-'), test_id)
- if groups:
- test_id = test_id.replace(groups.group(1), groups.group(2))
- logging.info(f" Processing test {test_id}")
- if structure == "tree":
- dirs = test_id.split(u".")[:-1]
- name = test_id.split(u".")[-1]
- os.makedirs(
- join(build_dir, job, build_nr, *dirs), exist_ok=True
- )
- file_name = \
- f"{join(build_dir, job, build_nr, *dirs, name)}.json"
- else:
- file_name = join(
- build_dir,
- u'.'.join((job, build_nr, test_id, u'json'))
- )
- suite_id = test_id.rsplit(u".", 1)[0].replace(u" ", u"_")
- _export_test_from_xml_to_json(
- test_id, test_data, file_name, template,
- {
- u"ci": u"jenkins.fd.io",
- u"job": job,
- u"build_number": build_nr,
- u"suite_id": suite_id,
- u"suite_doc": build[u"suites"].get(suite_id, dict()).
- get(u"doc", u""),
- u"testbed": build[u"metadata"].get(u"testbed", u""),
- u"sut_version": build[u"metadata"].get(u"version", u"")
- }
- )
-
- # gzip the json files:
- for file in get_files(build_dir, u"json"):
- with open(file, u"rb") as src:
- with gzip.open(f"{file}.gz", u"wb") as dst:
- dst.writelines(src)
- os.remove(file)
-
- logging.info(u"Done.")
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 331905cabb..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://s3-docs.fd.io/csit/master/report/>`_ and the
-`Trending <https://s3-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 3f58044f21..0000000000
--- a/resources/tools/presentation/doc/pal_lld.rst
+++ /dev/null
@@ -1,1715 +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[S3_STORAGE,LOG]: "https://logs.nginx.service.consul/vex-yul-rot-jenkins-1"
- 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]"
-
- 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://s3-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 9bf9586da8..0000000000
--- a/resources/tools/presentation/environment.py
+++ /dev/null
@@ -1,129 +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.
-
-"""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/generator_alerts.py b/resources/tools/presentation/generator_alerts.py
deleted file mode 100644
index 3c5c6f9fea..0000000000
--- a/resources/tools/presentation/generator_alerts.py
+++ /dev/null
@@ -1,554 +0,0 @@
-# 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.
-
-"""Generator of alerts:
-- failed tests
-- regressions
-- progressions
-"""
-
-
-import smtplib
-import logging
-import re
-
-from difflib import SequenceMatcher
-from email.mime.text import MIMEText
-from email.mime.multipart import MIMEMultipart
-from os.path import isdir
-from collections import OrderedDict, defaultdict
-
-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
-
- self.error_msgs = list()
-
- 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, str, OrderedDict)
- """
-
- directory = self.configs[alert[u"way"]][u"output-dir"]
- failed_tests = defaultdict(dict)
- 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
- if idx == 4:
- minutes = int(line[:-1]) // 60000
- duration = f"{(minutes // 60):02d}:{(minutes % 60):02d}"
- continue
- try:
- line, error_msg = line[:-1].split(u'###', maxsplit=1)
- test = line.split(u'-')
- name = u'-'.join(test[3:-1])
- if len(error_msg) > 128:
- if u";" in error_msg[128:256]:
- error_msg = \
- f"{error_msg[:128]}" \
- f"{error_msg[128:].split(u';', 1)[0]}..."
- elif u":" in error_msg[128:256]:
- error_msg = \
- f"{error_msg[:128]}" \
- f"{error_msg[128:].split(u':', 1)[0]}..."
- elif u"." in error_msg[128:256]:
- error_msg = \
- f"{error_msg[:128]}" \
- f"{error_msg[128:].split(u'.', 1)[0]}..."
- elif u"?" in error_msg[128:256]:
- error_msg = \
- f"{error_msg[:128]}" \
- f"{error_msg[128:].split(u'?', 1)[0]}..."
- elif u"!" in error_msg[128:256]:
- error_msg = \
- f"{error_msg[:128]}" \
- f"{error_msg[128:].split(u'!', 1)[0]}..."
- elif u"," in error_msg[128:256]:
- error_msg = \
- f"{error_msg[:128]}" \
- f"{error_msg[128:].split(u',', 1)[0]}..."
- elif u" " in error_msg[128:256]:
- error_msg = \
- f"{error_msg[:128]}" \
- f"{error_msg[128:].split(u' ', 1)[0]}..."
- else:
- error_msg = error_msg[:128]
-
- except ValueError:
- continue
-
- for e_msg in self.error_msgs:
- if SequenceMatcher(None, e_msg,
- error_msg).ratio() > 0.5:
- error_msg = e_msg
- break
- if error_msg not in self.error_msgs:
- self.error_msgs.append(error_msg)
-
- error_msg_index = self.error_msgs.index(error_msg)
-
- if failed_tests.get(name, {}).get(error_msg_index) is None:
- failed_tests[name][error_msg_index] = \
- dict(nics=list(),
- framesizes=list(),
- cores=list())
-
- if test[0] not in \
- failed_tests[name][error_msg_index][u"nics"]:
- failed_tests[name][error_msg_index][u"nics"].\
- append(test[0])
- if test[1] not in \
- failed_tests[name][error_msg_index][u"framesizes"]:
- failed_tests[name][error_msg_index][u"framesizes"].\
- append(test[1])
- check_core = test[2] + f"[{str(error_msg_index)}]"
- if check_core not in \
- failed_tests[name][error_msg_index][u"cores"]:
- failed_tests[name][error_msg_index][u"cores"].\
- append(test[2] + "[" + str(error_msg_index) + "]")
-
- except IOError:
- logging.error(f"No such file or directory: {file_path}")
- return None, 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, duration, sorted_failed_tests
-
- return build, version, passed, failed, duration, 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: 'regressions' or 'progressions'.
- :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""
-
- legend = (f"Legend: Test-name NIC Frame-size Trend[Mpps] Runs[#] "
- f"Long-Term change[%]")
-
- out_file = (
- f"{self.configs[alert[u'way']][u'output-dir']}/"
- f"trending-regressions.txt"
- )
- try:
- with open(out_file, u'w') as reg_file:
- reg_file.write(legend)
- except IOError:
- logging.error(f"Not possible to write the file {out_file}.txt.")
-
- out_file = (
- f"{self.configs[alert[u'way']][u'output-dir']}/"
- f"trending-progressions.txt"
- )
- try:
- with open(out_file, u'w') as reg_file:
- reg_file.write(legend)
- except IOError:
- logging.error(f"Not possible to write the file {out_file}.txt.")
-
- 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|tsh|dnv|zn2|tx2|icx|alt)-.*)'
- ),
- 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, duration, 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}, "
- f"{failed} tests failed, "
- f"{passed} tests passed, "
- f"duration: {duration}, "
- f"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 test, message in failed_tests.items():
- for e_message, params in message.items():
- failed_tests[test][e_message][u"nics"] = \
- u" ".join(sorted(params[u"nics"]))
- failed_tests[test][e_message][u"framesizes"] = \
- u" ".join(sorted(params[u"framesizes"]))
- failed_tests[test][e_message][u"cores"] = \
- u" ".join(sorted(params[u"cores"]))
- if len(test) > max_len.name:
- max_len.name = len(test)
- if len(failed_tests[test][e_message][u"nics"]) > \
- max_len.nics:
- max_len.nics = \
- len(failed_tests[test][e_message][u"nics"])
- if len(failed_tests[test][e_message][u"framesizes"]) > \
- max_len.frmsizes:
- max_len.frmsizes = \
- len(failed_tests[test][e_message][u"framesizes"])
- if len(failed_tests[test][e_message][u"cores"]) > \
- max_len.cores:
- max_len.cores = \
- len(failed_tests[test][e_message][u"cores"])
-
- for test, message in failed_tests.items():
- test_added = False
- for e_message, params in message.items():
- if not test_added:
- test_added = True
- else:
- test = ""
- text += (
- f"{test + u' ' * (max_len.name - len(test))} "
- 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 ...")
-
- text += f"\n\nLegend:\n\n"
-
- for e_msg in self.error_msgs:
- text += f"[{self.error_msgs.index(e_msg)}] - {e_msg}\n"
-
- 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 4063764eb1..0000000000
--- a/resources/tools/presentation/generator_cpta.py
+++ /dev/null
@@ -1,998 +0,0 @@
-# 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.
-
-"""Generation of Continuous Performance Trending and Analysis.
-"""
-import re
-import logging
-import csv
-
-from collections import OrderedDict
-from datetime import datetime
-from copy import deepcopy
-from os import listdir
-
-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 sphinx_conf/trending -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.environment.get(u"archive-inputs", False):
- 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", u"pdr-lat"):
- return list(), None
-
- data_x = list(in_data.keys())
- data_y_pps = list()
- data_y_mpps = list()
- data_y_stdev = list()
- if incl_tests == u"pdr-lat":
- for item in in_data.values():
- data_y_pps.append(float(item.get(u"lat_1", u"nan")) / 1e6)
- data_y_stdev.append(float(u"nan"))
- data_y_mpps.append(float(item.get(u"lat_1", u"nan")) / 1e6)
- multi = 1.0
- else:
- 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)
- multi = 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]: <val><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 incl_tests == u"pdr-lat":
- hover_str = hover_str.replace(u"<val>", u"{value:.1e}")
- else:
- hover_str = hover_str.replace(u"<val>", u"{value:.3f}")
- if u"-cps" in name:
- hover_str = hover_str.replace(u"[Mpps]", u"[Mcps]").\
- replace(u"throughput", u"connection rate")
- if 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,
- period=u"daily" if incl_tests == u"mrr" else u"weekly",
- build_nr=str_key,
- testbed=build_info[job_name][str_key][2])
- elif u"dpdk" 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"dpdk",
- build=build_info[job_name][str_key][1].rsplit(u'~', 1)[0],
- test=incl_tests,
- period=u"weekly",
- build_nr=str_key,
- testbed=build_info[job_name][str_key][2])
- elif u"trex" 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"trex",
- build=u"",
- test=incl_tests,
- period=u"daily" if incl_tests == u"mrr" else u"weekly",
- build_nr=str_key,
- testbed=build_info[job_name][str_key][2])
- if incl_tests == u"pdr-lat":
- hover_str = hover_str.replace(
- u"throughput [Mpps]", u"latency [s]"
- )
- 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
-
- try:
- anomaly_classification, avgs_pps, stdevs_pps = \
- classify_anomalies(data_pd)
- except ValueError as err:
- logging.info(f"{err} Skipping")
- return list(), None
- avgs_mpps = [avg_pps / multi for avg_pps in avgs_pps]
- stdevs_mpps = [stdev_pps / multi 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 / multi
- 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)):
- if incl_tests == u"pdr-lat":
- trend_hover_str = (
- f"trend [s]: {avgs_mpps[idx]:.1e}<br>"
- )
- else:
- 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)
-
- if incl_tests == u"pdr-lat":
- colorscale = [
- [0.00, u"green"],
- [0.33, u"green"],
- [0.33, u"white"],
- [0.66, u"white"],
- [0.66, u"red"],
- [1.00, u"red"]
- ]
- ticktext = [u"Progression", u"Normal", u"Regression"]
- else:
- 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"]
- ]
- ticktext = [u"Regression", u"Normal", u"Progression"]
- 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": colorscale,
- 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": ticktext,
- 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'')} ...")
-
- job_name = list(graph[u"data"].keys())[0]
-
- # Transform the data
- logging.info(
- f" Creating the data set for the {graph.get(u'type', u'')} "
- f"{graph.get(u'title', u'')}."
- )
-
- data = input_data.filter_tests_by_name(
- graph,
- params=[u"type", u"result", u"throughput", u"latency", u"tags"],
- continue_on_error=True
- )
-
- if data is None or data.empty:
- logging.error(u"No data.")
- return dict()
-
- return_lst = list()
-
- for ttype in graph.get(u"test-type", (u"mrr", )):
- for core in graph.get(u"core", tuple()):
- csv_tbl = list()
- csv_tbl_lat_1 = list()
- csv_tbl_lat_2 = list()
- res = dict()
- chart_data = dict()
- chart_tags = dict()
- for item in graph.get(u"include", tuple()):
- reg_ex = re.compile(str(item.format(core=core)).lower())
- for job, job_data in data.items():
- if job != job_name:
- continue
- for index, bld in job_data.items():
- for test_id, test in bld.items():
- if not re.match(reg_ex, str(test_id).lower()):
- continue
- if chart_data.get(test_id, None) is None:
- chart_data[test_id] = OrderedDict()
- try:
- lat_1 = u""
- lat_2 = u""
- if ttype == u"mrr":
- rate = test[u"result"][u"receive-rate"]
- stdev = \
- test[u"result"][u"receive-stdev"]
- elif ttype == u"ndr":
- rate = \
- test["throughput"][u"NDR"][u"LOWER"]
- stdev = float(u"nan")
- elif ttype == u"pdr":
- rate = \
- test["throughput"][u"PDR"][u"LOWER"]
- stdev = float(u"nan")
- lat_1 = test[u"latency"][u"PDR50"]\
- [u"direction1"][u"avg"]
- lat_2 = test[u"latency"][u"PDR50"]\
- [u"direction2"][u"avg"]
- else:
- continue
- chart_data[test_id][int(index)] = {
- u"receive-rate": rate,
- u"receive-stdev": stdev
- }
- if ttype == u"pdr":
- chart_data[test_id][int(index)].update(
- {
- u"lat_1": lat_1,
- u"lat_2": lat_2
- }
- )
- chart_tags[test_id] = \
- 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()
- tst_lst_lat_1 = list()
- tst_lst_lat_2 = 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"")))
- if ttype == u"pdr":
- tst_lst_lat_1.append(
- str(itm.get(u"lat_1", u""))
- )
- tst_lst_lat_2.append(
- str(itm.get(u"lat_2", u""))
- )
- except AttributeError:
- tst_lst.append(u"")
- if ttype == u"pdr":
- tst_lst_lat_1.append(u"")
- tst_lst_lat_2.append(u"")
- csv_tbl.append(f"{tst_name}," + u",".join(tst_lst) + u'\n')
- csv_tbl_lat_1.append(
- f"{tst_name}," + u",".join(tst_lst_lat_1) + u"\n"
- )
- csv_tbl_lat_2.append(
- f"{tst_name}," + u",".join(tst_lst_lat_2) + u"\n"
- )
-
- # Generate traces:
- traces = list()
- traces_lat = 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=ttype
- )
- 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=ttype
- )
- if ttype == u"pdr":
- trace_lat, _ = _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=u"pdr-lat"
- )
- traces_lat.extend(trace_lat)
- except IndexError:
- logging.error(
- f"Out of colors: index: "
- f"{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']}/"
- f"{graph[u'output-file-name']}.html"
- )
- name_file = name_file.format(core=core, test_type=ttype)
-
- 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.")
-
- if traces_lat:
- try:
- layout = deepcopy(graph[u"layout"])
- layout[u"yaxis"][u"title"] = u"Latency [s]"
- layout[u"yaxis"][u"tickformat"] = u".3s"
- except KeyError as err:
- logging.error(u"Finished with error: No layout defined")
- logging.error(repr(err))
- return dict()
- name_file = (
- f"{spec.cpta[u'output-file']}/"
- f"{graph[u'output-file-name']}-lat.html"
- )
- name_file = name_file.format(core=core, test_type=ttype)
-
- logging.info(f" Writing the file {name_file}")
- plpl = plgo.Figure(data=traces_lat, 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_lst.append(
- {
- u"job_name": job_name,
- u"csv_table": csv_tbl,
- u"csv_lat_1": csv_tbl_lat_1,
- u"csv_lat_2": csv_tbl_lat_2,
- u"results": res
- }
- )
-
- return return_lst
-
- builds_dict = dict()
- for job, builds in spec.input.items():
- if builds_dict.get(job, None) is None:
- builds_dict[job] = list()
- for build in builds:
- if build[u"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()
- csv_tables_l1 = dict()
- csv_tables_l2 = dict()
- for job_name in builds_dict:
- if csv_tables.get(job_name, None) is None:
- csv_tables[job_name] = list()
- if csv_tables_l1.get(job_name, None) is None:
- csv_tables_l1[job_name] = list()
- if csv_tables_l2.get(job_name, None) is None:
- csv_tables_l2[job_name] = list()
- header = f"Build Number:,{u','.join(builds_dict[job_name])}\n"
- csv_tables[job_name].append(header)
- csv_tables_l1[job_name].append(header)
- csv_tables_l2[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)
- csv_tables_l1[job_name].append(header)
- csv_tables_l2[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)
- csv_tables_l1[job_name].append(header)
- csv_tables_l2[job_name].append(header)
- testbed = [x[2] for x in build_info[job_name].values()]
- header = f"Test bed:,{u','.join(testbed)}\n"
- csv_tables[job_name].append(header)
- csv_tables_l1[job_name].append(header)
- csv_tables_l2[job_name].append(header)
-
- for chart in spec.cpta[u"plots"]:
- results = _generate_chart(chart)
- if not results:
- continue
-
- for result in results:
- csv_tables[result[u"job_name"]].extend(result[u"csv_table"])
- csv_tables_l1[result[u"job_name"]].extend(result[u"csv_lat_1"])
- csv_tables_l2[result[u"job_name"]].extend(result[u"csv_lat_2"])
-
- 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))
-
- for job_name, csv_table in csv_tables_l1.items():
- file_name = f"{spec.cpta[u'output-file']}/{job_name}-lat-P50-50-d1"
- with open(f"{file_name}.csv", u"wt") as file_handler:
- file_handler.writelines(csv_table)
- for job_name, csv_table in csv_tables_l2.items():
- file_name = f"{spec.cpta[u'output-file']}/{job_name}-lat-P50-50-d2"
- with open(f"{file_name}.csv", u"wt") as file_handler:
- file_handler.writelines(csv_table)
-
- # Evaluate result:
- if anomaly_classifications:
- result = u"PASS"
-
- class MaxLens:
- """Class to store the max lengths of strings displayed in
- regressions and progressions.
- """
-
- def __init__(self, tst, nic, frmsize, trend, run, ltc):
- """Initialisation.
-
- :param tst: Name of the test.
- :param nic: NIC used in the test.
- :param frmsize: Frame size used in the test.
- :param trend: Trend Change.
- :param run: Number of runs for last trend.
- :param ltc: Regression or Progression
- """
- self.tst = tst
- self.nic = nic
- self.frmsize = frmsize
- self.trend = trend
- self.run = run
- self.ltc = ltc
-
- for job_name, job_data in anomaly_classifications.items():
- data = []
- test_reg_lst = []
- nic_reg_lst = []
- frmsize_reg_lst = []
- trend_reg_lst = []
- number_reg_lst = []
- ltc_reg_lst = []
- test_prog_lst = []
- nic_prog_lst = []
- frmsize_prog_lst = []
- trend_prog_lst = []
- number_prog_lst = []
- ltc_prog_lst = []
- max_len = MaxLens(0, 0, 0, 0, 0, 0)
-
- # tb - testbed (2n-skx, 3n-dnv, etc)
- tb = u"-".join(job_name.split(u"-")[-2:])
- # data - read all txt dashboard files for tb
- for file in listdir(f"{spec.cpta[u'output-file']}"):
- if tb in file and u"performance-trending-dashboard" in \
- file and u"txt" in file:
- file_to_read = f"{spec.cpta[u'output-file']}/{file}"
- with open(f"{file_to_read}", u"rt") as f_in:
- data = data + f_in.readlines()
-
- for test_name, classification in job_data.items():
- if classification != u"normal":
- if u"2n" in test_name:
- test_name = test_name.split("-", 2)
- tst = test_name[2].split(".")[-1]
- nic = test_name[1]
- else:
- test_name = test_name.split("-", 1)
- tst = test_name[1].split(".")[-1]
- nic = test_name[0].split(".")[-1]
- frmsize = tst.split("-")[0]
- tst = u"-".join(tst.split("-")[1:])
- tst_name = f"{nic}-{frmsize}-{tst}"
- if len(tst) > max_len.tst:
- max_len.tst = len(tst)
- if len(nic) > max_len.nic:
- max_len.nic = len(nic)
- if len(frmsize) > max_len.frmsize:
- max_len.frmsize = len(frmsize)
-
- for line in data:
- if tst_name in line:
- line = line.replace(" ", "")
- trend = line.split("|")[2]
- if len(str(trend)) > max_len.trend:
- max_len.trend = len(str(trend))
- number = line.split("|")[3]
- if len(str(number)) > max_len.run:
- max_len.run = len(str(number))
- ltc = line.split("|")[4]
- if len(str(ltc)) > max_len.ltc:
- max_len.ltc = len(str(ltc))
- if classification == u'regression':
- test_reg_lst.append(tst)
- nic_reg_lst.append(nic)
- frmsize_reg_lst.append(frmsize)
- trend_reg_lst.append(trend)
- number_reg_lst.append(number)
- ltc_reg_lst.append(ltc)
- elif classification == u'progression':
- test_prog_lst.append(tst)
- nic_prog_lst.append(nic)
- frmsize_prog_lst.append(frmsize)
- trend_prog_lst.append(trend)
- number_prog_lst.append(number)
- ltc_prog_lst.append(ltc)
-
- text = u""
- for idx in range(len(test_reg_lst)):
- text += (
- f"{test_reg_lst[idx]}"
- f"{u' ' * (max_len.tst - len(test_reg_lst[idx]))} "
- f"{nic_reg_lst[idx]}"
- f"{u' ' * (max_len.nic - len(nic_reg_lst[idx]))} "
- f"{frmsize_reg_lst[idx].upper()}"
- f"{u' ' * (max_len.frmsize - len(frmsize_reg_lst[idx]))} "
- f"{trend_reg_lst[idx]}"
- f"{u' ' * (max_len.trend - len(str(trend_reg_lst[idx])))} "
- f"{number_reg_lst[idx]}"
- f"{u' ' * (max_len.run - len(str(number_reg_lst[idx])))} "
- f"{ltc_reg_lst[idx]}"
- f"{u' ' * (max_len.ltc - len(str(ltc_reg_lst[idx])))} "
- f"\n"
- )
-
- file_name = \
- f"{spec.cpta[u'output-file']}/regressions-{job_name}.txt"
-
- try:
- with open(f"{file_name}", u'w') as txt_file:
- txt_file.write(text)
- except IOError:
- logging.error(
- f"Not possible to write the file {file_name}.")
-
- text = u""
- for idx in range(len(test_prog_lst)):
- text += (
- f"{test_prog_lst[idx]}"
- f"{u' ' * (max_len.tst - len(test_prog_lst[idx]))} "
- f"{nic_prog_lst[idx]}"
- f"{u' ' * (max_len.nic - len(nic_prog_lst[idx]))} "
- f"{frmsize_prog_lst[idx].upper()}"
- f"{u' ' * (max_len.frmsize - len(frmsize_prog_lst[idx]))} "
- f"{trend_prog_lst[idx]}"
- f"{u' ' * (max_len.trend -len(str(trend_prog_lst[idx])))} "
- f"{number_prog_lst[idx]}"
- f"{u' ' * (max_len.run - len(str(number_prog_lst[idx])))} "
- f"{ltc_prog_lst[idx]}"
- f"{u' ' * (max_len.ltc - len(str(ltc_prog_lst[idx])))} "
- f"\n"
- )
-
- file_name = \
- f"{spec.cpta[u'output-file']}/progressions-{job_name}.txt"
- try:
- with open(f"{file_name}", u'w') as txt_file:
- txt_file.write(text)
- except IOError:
- logging.error(f"Not possible to write the file {file_name}.")
-
- 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 a828c4b952..0000000000
--- a/resources/tools/presentation/generator_files.py
+++ /dev/null
@@ -1,436 +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 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)([a-z]*\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"").replace(u"1n1l-", 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"])
- )
- 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 583445eaef..0000000000
--- a/resources/tools/presentation/generator_plots.py
+++ /dev/null
@@ -1,1863 +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
-
-from collections import OrderedDict
-from datetime import datetime
-from copy import deepcopy
-from math import log
-
-import hdrh.histogram
-import hdrh.codec
-import pandas as pd
-import plotly.offline as ploff
-import plotly.graph_objs as plgo
-import plotly.exceptions as plerr
-
-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]*)-')
-
-# 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
-
-
-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,
- u"plot_mrr_box_name": plot_mrr_box_name,
- u"plot_ndrpdr_box_name": plot_ndrpdr_box_name,
- u"plot_statistics": plot_statistics
- }
-
- 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.environment[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_statistics(plot, input_data):
- """Generate the plot(s) with algorithm: plot_statistics
- specified in the specification file.
-
- :param plot: Plot to generate.
- :param input_data: Data to process.
- :type plot: pandas.Series
- :type input_data: InputData
- """
-
- data_x = list()
- data_y_pass = list()
- data_y_fail = list()
- data_y_duration = list()
- hover_text = list()
- hover_str = (
- u"date: {date}<br>"
- u"passed: {passed}<br>"
- u"failed: {failed}<br>"
- u"duration: {duration}<br>"
- u"{sut}-ref: {build}<br>"
- u"csit-ref: {test}-{period}-build-{build_nr}<br>"
- u"testbed: {testbed}"
- )
- for job, builds in plot[u"data"].items():
- for build_nr in builds:
- try:
- meta = input_data.metadata(job, str(build_nr))
- generated = meta[u"generated"]
- date = datetime(
- int(generated[0:4]),
- int(generated[4:6]),
- int(generated[6:8]),
- int(generated[9:11]),
- int(generated[12:])
- )
- d_y_pass = meta[u"tests_passed"]
- d_y_fail = meta[u"tests_failed"]
- minutes = meta[u"elapsedtime"] // 60000
- duration = f"{(minutes // 60):02d}:{(minutes % 60):02d}"
- version = meta.get(u"version", u"")
- except (KeyError, IndexError, ValueError, AttributeError):
- continue
- data_x.append(date)
- data_y_pass.append(d_y_pass)
- data_y_fail.append(d_y_fail)
- data_y_duration.append(minutes)
- if u"vpp" in job:
- sut = u"vpp"
- elif u"dpdk" in job:
- sut = u"dpdk"
- elif u"trex" in job:
- sut = u"trex"
- else:
- sut = u""
- hover_text.append(hover_str.format(
- date=date,
- passed=d_y_pass,
- failed=d_y_fail,
- duration=duration,
- sut=sut,
- build=version,
- test=u"mrr" if u"mrr" in job else u"ndrpdr",
- period=u"daily" if u"daily" in job else u"weekly",
- build_nr=build_nr,
- testbed=meta.get(u"testbed", u"")
- ))
-
- traces = [
- plgo.Bar(
- x=data_x,
- y=data_y_pass,
- name=u"Passed",
- text=hover_text,
- hoverinfo=u"text"
- ),
- plgo.Bar(
- x=data_x,
- y=data_y_fail,
- name=u"Failed",
- text=hover_text,
- hoverinfo=u"text"),
- plgo.Scatter(
- x=data_x,
- y=data_y_duration,
- name=u"Duration",
- yaxis=u"y2",
- text=hover_text,
- hoverinfo=u"text"
- )
- ]
-
- name_file = f"{plot[u'output-file']}.html"
-
- logging.info(f" Writing the file {name_file}")
- plpl = plgo.Figure(data=traces, layout=plot[u"layout"])
- tickvals = [0, (max(data_y_duration) // 60) * 60]
- step = tickvals[1] / 5
- for i in range(5):
- tickvals.append(int(tickvals[0] + step * (i + 1)))
- plpl.update_layout(
- yaxis2=dict(
- title=u"Duration [hh:mm]",
- anchor=u"x",
- overlaying=u"y",
- side=u"right",
- rangemode="tozero",
- tickmode=u"array",
- tickvals=tickvals,
- ticktext=[f"{(val // 60):02d}:{(val % 60):02d}" for val in tickvals]
- )
- )
- plpl.update_layout(barmode=u"stack")
- 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.")
-
-
-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
- 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: "
- f"{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: "
- f"{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"])
-
- 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, TypeError):
- logging.warning(
- f"No data for direction {(u'W-E', u'E-W')[idx % 2]}"
- )
- continue
-
- 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, PERCENTILE_MAX)
- 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 - x_perc)
- 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"
- )
- )
-
- layout[u"title"][u"text"] = f"<b>Latency:</b> {name}"
- x_max = log(100.0 / (100.0 - PERCENTILE_MAX), 10)
- layout[u"xaxis"][u"range"] = [0, x_max]
- 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
-
- for core in plot.get(u"core", tuple()):
- # Prepare the data for the plot
- y_vals = OrderedDict()
- loss = dict()
- for item in plot.get(u"include", tuple()):
- reg_ex = re.compile(str(item.format(core=core)).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()
- 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'-reconf', u'').replace(u'2n1l-', u'').
- replace(u'2n-', u'').replace(u'-testpmd', u'')
- )
- traces.append(plgo.Box(
- x=[str(i + 1) + u'.'] * len(df_y[col]),
- y=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'-')[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_name = f"{plot[u'output-file'].format(core=core)}.html"
- logging.info(f" Writing file {file_name}")
- ploff.plot(
- plpl,
- show_link=False,
- auto_open=False,
- filename=file_name
- )
- except PlotlyError as err:
- logging.error(
- f" Finished with error: {repr(err)}".replace(u"\n", u" ")
- )
-
-
-def plot_perf_box_name(plot, input_data):
- """Generate the plot(s) with algorithm: plot_perf_box_name
- specified in the specification file.
-
- Use only for soak and hoststack tests.
-
- :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
- 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"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"
-
- elif test[u"type"] in (u"LDP_NGINX",):
- if u"TCP_CPS" in test[u"tags"]:
- test_type = u"VSAP_CPS"
- y_vals[test[u"parent"]].append(
- test[u"result"][u"cps"]
- )
- elif u"TCP_RPS" in test[u"tags"]:
- test_type = u"VSAP_RPS"
- y_vals[test[u"parent"]].append(
- test[u"result"][u"rps"]
- )
- else:
- continue
- 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''))
- if test_type in (u"VSAP_CPS", u"VSAP_RPS"):
- data_y = [y if y else None for y in df_y[col]]
- else:
- data_y = [y / 1e6 if y else None for y in df_y[col]]
- kwargs = dict(
- y=data_y,
- 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"
- kwargs[u"jitter"] = 0.3
-
- traces.append(plgo.Box(**kwargs))
-
- try:
- val_max = max(df_y[col])
- if val_max:
- y_max.append(int(val_max / 1e6))
- except (ValueError, TypeError) as err:
- logging.error(repr(err))
- continue
-
- try:
- # Create plot
- layout = deepcopy(plot[u"layout"])
- layout[u"xaxis"][u"tickvals"] = [i for i in range(len(y_vals))]
- layout[u"xaxis"][u"ticktext"] = [str(i + 1) for i in range(len(y_vals))]
- 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 == u"VSAP_CPS":
- layout[u"title"] = f"<b>CPS:</b> {layout[u'title']}"
- layout[u"yaxis"][u"title"] = u"<b>Connection Rate [cps]</b>"
- elif test_type == u"VSAP_RPS":
- layout[u"title"] = f"<b>RPS:</b> {layout[u'title']}"
- layout[u"yaxis"][u"title"] = u"<b>Connection Rate [rps]</b>"
- else:
- layout[u"title"] = f"<b>Tput:</b> {layout[u'title']}"
- if y_max and max(y_max) > 1:
- layout[u"yaxis"][u"range"] = [0, max(y_max) + 2]
- 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_ndrpdr_box_name(plot, input_data):
- """Generate the plot(s) with algorithm: plot_ndrpdr_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"parent", u"tags", u"type"]
- )
- if data is None:
- logging.error(u"No data.")
- return
-
- if u"-gbps" in plot.get(u"title", u"").lower():
- value = u"gbps"
- multiplier = 1e6
- else:
- value = u"throughput"
- multiplier = 1.0
-
- test_type = u""
-
- for ttype in plot.get(u"test-type", (u"ndr", u"pdr")):
- for core in plot.get(u"core", tuple()):
- # Prepare the data for the plot
- data_x = list()
- data_y = OrderedDict()
- data_y_max = list()
- idx = 1
- for item in plot.get(u"include", tuple()):
- reg_ex = re.compile(str(item.format(core=core)).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 data_y.get(test[u"parent"], None) is None:
- data_y[test[u"parent"]] = list()
- test_type = test[u"type"]
- data_x.append(idx)
- idx += 1
- try:
- data_y[test[u"parent"]].append(
- test[value][ttype.upper()][u"LOWER"] *
- multiplier
- )
- except (KeyError, TypeError):
- pass
-
- # Add plot traces
- traces = list()
- for idx, (key, vals) in enumerate(data_y.items()):
- name = re.sub(
- REGEX_NIC, u'', key.lower().replace(u'-ndrpdr', u'').
- replace(u'2n1l-', u'')
- )
- kwargs = dict(
- y=[y / 1e6 if y else None for y in vals],
- name=(
- f"{idx + 1}."
- f"({len(vals):02d} "
- f"run"
- f"{u's' if len(vals) > 1 else u''}) "
- f"{name}"
- ),
- hoverinfo=u"y+name"
- )
- box_points = plot.get(u"boxpoints", u"all")
- if box_points in \
- (u"all", u"outliers", u"suspectedoutliers", False):
- kwargs[u"boxpoints"] = box_points
- kwargs[u"jitter"] = 0.3
- traces.append(plgo.Box(**kwargs))
- try:
- data_y_max.append(max(vals))
- except ValueError as err:
- logging.warning(f"No values to use.\n{err!r}")
- try:
- # Create plot
- layout = deepcopy(plot[u"layout"])
- layout[u"xaxis"][u"tickvals"] = [i for i in range(len(data_y))]
- layout[u"xaxis"][u"ticktext"] = \
- [str(i + 1) for i in range(len(data_y))]
- if layout.get(u"title", None):
- layout[u"title"] = \
- layout[u'title'].format(core=core, test_type=ttype)
- if test_type in (u"CPS", ):
- layout[u"title"] = f"<b>CPS:</b> {layout[u'title']}"
- else:
- layout[u"title"] = \
- f"<b>Tput:</b> {layout[u'title']}"
- if data_y_max:
- layout[u"yaxis"][u"range"] = [0, max(data_y_max) / 1e6 + 1]
- plpl = plgo.Figure(data=traces, layout=layout)
-
- # Export Plot
- file_name = (
- f"{plot[u'output-file'].format(core=core, test_type=ttype)}"
- f".html"
- )
- logging.info(f" Writing file {file_name}")
- ploff.plot(
- plpl,
- show_link=False,
- auto_open=False,
- filename=file_name
- )
- except PlotlyError as err:
- logging.error(
- f" Finished with error: {repr(err)}".replace(u"\n", u" ")
- )
-
-
-def plot_mrr_box_name(plot, input_data):
- """Generate the plot(s) with algorithm: plot_mrr_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"result", u"parent", u"tags", u"type"]
- )
- if data is None:
- logging.error(u"No data.")
- return
-
- for core in plot.get(u"core", tuple()):
- # Prepare the data for the plot
- data_x = list()
- data_names = list()
- data_y = list()
- data_y_max = list()
- idx = 1
- for item in plot.get(u"include", tuple()):
- reg_ex = re.compile(str(item.format(core=core)).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
- try:
- data_x.append(idx)
- name = re.sub(
- REGEX_NIC, u'', test[u'parent'].lower().
- replace(u'-mrr', u'').replace(u'2n1l-', u'')
- )
- data_y.append(test[u"result"][u"samples"])
- data_names.append(
- f"{idx}."
- f"({len(data_y[-1]):02d} "
- f"run{u's' if len(data_y[-1]) > 1 else u''}) "
- f"{name}"
- )
- data_y_max.append(max(data_y[-1]))
- idx += 1
- except (KeyError, TypeError):
- pass
-
- # Add plot traces
- traces = list()
- for idx, x_item in enumerate(data_x):
- kwargs = dict(
- y=data_y[idx],
- name=data_names[idx],
- hoverinfo=u"y+name"
- )
- box_points = plot.get(u"boxpoints", u"all")
- if box_points in (u"all", u"outliers", u"suspectedoutliers", False):
- kwargs[u"boxpoints"] = box_points
- kwargs["jitter"] = 0.3
- traces.append(plgo.Box(**kwargs))
-
- try:
- # Create plot
- layout = deepcopy(plot[u"layout"])
- layout[u"xaxis"][u"tickvals"] = [i for i in range(len(data_y))]
- layout[u"xaxis"][u"ticktext"] = \
- [str(i + 1) for i in range(len(data_y))]
- if layout.get(u"title", None):
- layout[u"title"] = (
- f"<b>Tput:</b> {layout[u'title'].format(core=core)}"
- )
- if data_y_max:
- layout[u"yaxis"][u"range"] = [0, max(data_y_max) + 1]
- plpl = plgo.Figure(data=traces, layout=layout)
-
- # Export Plot
- file_name = f"{plot[u'output-file'].format(core=core)}.html"
- logging.info(f" Writing file {file_name}")
- ploff.plot(
- plpl,
- show_link=False,
- auto_open=False,
- filename=file_name
- )
- except PlotlyError as err:
- logging.error(
- f" Finished with error: {repr(err)}".replace(u"\n", u" ")
- )
-
-
-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
-
- for ttype in plot.get(u"test-type", (u"ndr", u"pdr")):
- 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"1C" in test[u"tags"]:
- y_vals[test[u"parent"]][u"1"].append(
- test[value][ttype.upper()][u"LOWER"] *
- multiplier
- )
- elif u"2C" in test[u"tags"]:
- y_vals[test[u"parent"]][u"2"].append(
- test[value][ttype.upper()][u"LOWER"] *
- multiplier
- )
- elif u"4C" in test[u"tags"]:
- y_vals[test[u"parent"]][u"4"].append(
- test[value][ttype.upper()][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"]
- elif u"e810cq" in test_name:
- limit = plot[u"limits"][u"nic"][u"e810cq"]
- elif u"e810xxv" in test_name:
- limit = plot[u"limits"][u"nic"][u"e810xxv"]
- 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_name = f"{plot[u'output-file'].format(test_type=ttype)}.html"
- logging.info(f" Writing file {file_name}")
- layout = deepcopy(plot[u"layout"])
- if layout.get(u"title", None):
- layout[u"title"] = (
- f"<b>Speedup Multi-core:</b> "
- f"{layout[u'title'].format(test_type=ttype)}"
- )
- 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=file_name
- )
- except PlotlyError as err:
- logging.error(
- f" Finished with error: {repr(err)}".replace(u"\n", u" ")
- )
-
-
-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
- """
-
- 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)
-
- 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).*$')
- # Transform the data
- logging.info(
- f" Creating the data set for the {plot.get(u'type', u'')} "
- f"{plot.get(u'title', u'')}."
- )
- in_data = input_data.filter_tests_by_name(
- plot,
- continue_on_error=True,
- params=[u"throughput", u"result", u"name", u"tags", u"type"]
- )
- if in_data is None or in_data.empty:
- logging.error(u"No data.")
- return
-
- for ttype in plot.get(u"test-type", (u"ndr", u"pdr")):
- for core in plot.get(u"core", tuple()):
- vals = dict()
- for item in plot.get(u"include", tuple()):
- reg_ex = re.compile(str(item.format(core=core)).lower())
- for job in in_data:
- for build in job:
- for test_id, test in build.iteritems():
- if not re.match(reg_ex, str(test_id).lower()):
- continue
- 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 ttype == u"mrr":
- result = test[u"result"][u"receive-rate"]
- elif ttype == u"pdr":
- result = \
- test[u"throughput"][u"PDR"][u"LOWER"]
- elif ttype == 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"]) / 1e6, 1)
- vals[key_c][key_n][u"stdev"] = \
- round(stdev(vals[key_c][key_n][u"vals"]) / 1e6, 1)
- txt_nodes = list(set(txt_nodes))
-
- 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"{test_type}").
- format(test_type=ttype.upper()),
- 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
- if layout.get(u"title", None):
- layout[u"title"] = layout[u'title'].replace(u"test_type", ttype)
-
- try:
- # Create plot
- plpl = plgo.Figure(data=traces, layout=layout)
-
- # Export Plot
- file_name = (
- f"{plot[u'output-file'].format(core=core, test_type=ttype)}"
- f".html"
- )
- logging.info(f" Writing file {file_name}")
- ploff.plot(
- plpl,
- show_link=False,
- auto_open=False,
- filename=file_name
- )
- except PlotlyError as err:
- logging.error(
- f" Finished with error: {repr(err)}".replace(u"\n", u" ")
- )
diff --git a/resources/tools/presentation/generator_report.py b/resources/tools/presentation/generator_report.py
deleted file mode 100644
index 8f7d4ff3cb..0000000000
--- a/resources/tools/presentation/generator_report.py
+++ /dev/null
@@ -1,270 +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.
-
-"""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 sphinx_conf/report -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 sphinx_conf/report -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")
- )
- plots.extend(
- get_files(spec.environment[u"paths"][u"DIR[STATIC,TREX]"], 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 82e59c466f..0000000000
--- a/resources/tools/presentation/generator_tables.py
+++ /dev/null
@@ -1,2305 +0,0 @@
-# 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.
-
-"""Algorithms to generate tables.
-"""
-
-
-import logging
-import csv
-import math
-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
-import prettytable
-
-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]*)')
-
-NORM_FREQ = 2.0 # [GHz]
-
-
-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 = {
- "table_merged_details": table_merged_details,
- "table_soak_vs_ndr": table_soak_vs_ndr,
- "table_perf_trending_dash": table_perf_trending_dash,
- "table_perf_trending_dash_html": table_perf_trending_dash_html,
- "table_last_failed_tests": table_last_failed_tests,
- "table_failed_tests": table_failed_tests,
- "table_failed_tests_html": table_failed_tests_html,
- "table_oper_data_html": table_oper_data_html,
- "table_comparison": table_comparison,
- "table_weekly_comparison": table_weekly_comparison,
- "table_job_spec_duration": table_job_spec_duration
- }
-
- logging.info(u"Generating the tables ...")
-
- norm_factor = dict()
- for key, val in spec.environment.get("frequency", dict()).items():
- norm_factor[key] = NORM_FREQ / val
-
- for table in spec.tables:
- try:
- if table["algorithm"] == "table_weekly_comparison":
- table["testbeds"] = spec.environment.get("testbeds", None)
- if table["algorithm"] == "table_comparison":
- table["norm_factor"] = norm_factor
- generator[table["algorithm"]](table, data)
- except NameError as err:
- logging.error(
- f"Probably algorithm {table['algorithm']} is not defined: "
- f"{repr(err)}"
- )
- logging.info("Done.")
-
-
-def table_job_spec_duration(table, input_data):
- """Generate the table(s) with algorithm: table_job_spec_duration
- 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
-
- logging.info(f" Generating the table {table.get(u'title', u'')} ...")
-
- jb_type = table.get(u"jb-type", None)
-
- tbl_lst = list()
- if jb_type == u"iterative":
- for line in table.get(u"lines", tuple()):
- tbl_itm = {
- u"name": line.get(u"job-spec", u""),
- u"data": list()
- }
- for job, builds in line.get(u"data-set", dict()).items():
- for build_nr in builds:
- try:
- minutes = input_data.metadata(
- job, str(build_nr)
- )[u"elapsedtime"] // 60000
- except (KeyError, IndexError, ValueError, AttributeError):
- continue
- tbl_itm[u"data"].append(minutes)
- tbl_itm[u"mean"] = mean(tbl_itm[u"data"])
- tbl_itm[u"stdev"] = stdev(tbl_itm[u"data"])
- tbl_lst.append(tbl_itm)
- elif jb_type == u"coverage":
- job = table.get(u"data", None)
- if not job:
- return
- for line in table.get(u"lines", tuple()):
- try:
- tbl_itm = {
- u"name": line.get(u"job-spec", u""),
- u"mean": input_data.metadata(
- list(job.keys())[0], str(line[u"build"])
- )[u"elapsedtime"] // 60000,
- u"stdev": float(u"nan")
- }
- tbl_itm[u"data"] = [tbl_itm[u"mean"], ]
- except (KeyError, IndexError, ValueError, AttributeError):
- continue
- tbl_lst.append(tbl_itm)
- else:
- logging.warning(f"Wrong type of job-spec: {jb_type}. Skipping.")
- return
-
- for line in tbl_lst:
- line[u"mean"] = \
- f"{int(line[u'mean'] // 60):02d}:{int(line[u'mean'] % 60):02d}"
- if math.isnan(line[u"stdev"]):
- line[u"stdev"] = u""
- else:
- line[u"stdev"] = \
- f"{int(line[u'stdev'] //60):02d}:{int(line[u'stdev'] % 60):02d}"
-
- if not tbl_lst:
- return
-
- rows = list()
- for itm in tbl_lst:
- rows.append([
- itm[u"name"],
- f"{len(itm[u'data'])}",
- f"{itm[u'mean']} +- {itm[u'stdev']}"
- if itm[u"stdev"] != u"" else f"{itm[u'mean']}"
- ])
-
- txt_table = prettytable.PrettyTable(
- [u"Job Specification", u"Nr of Runs", u"Duration [HH:MM]"]
- )
- for row in rows:
- txt_table.add_row(row)
- txt_table.align = u"r"
- txt_table.align[u"Job Specification"] = u"l"
-
- file_name = f"{table.get(u'output-file', u'')}.txt"
- with open(file_name, u"wt", encoding='utf-8') as txt_file:
- txt_file.write(str(txt_table))
-
-
-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"telemetry-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"telemetry-show-run", None) is None or \
- isinstance(tst_data[u"telemetry-show-run"], str):
- 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"telemetry-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"runtime", None) is None:
- tcol.text = u"No Data"
- continue
-
- runtime = dict()
- for item in dut_data[u"runtime"].get(u"data", tuple()):
- tid = int(item[u"labels"][u"thread_id"])
- if runtime.get(tid, None) is None:
- runtime[tid] = dict()
- gnode = item[u"labels"][u"graph_node"]
- if runtime[tid].get(gnode, None) is None:
- runtime[tid][gnode] = dict()
- try:
- runtime[tid][gnode][item[u"name"]] = float(item[u"value"])
- except ValueError:
- runtime[tid][gnode][item[u"name"]] = item[u"value"]
-
- threads = dict({idx: list() for idx in range(len(runtime))})
- for idx, run_data in runtime.items():
- for gnode, gdata in run_data.items():
- threads[idx].append([
- gnode,
- int(gdata[u"calls"]),
- int(gdata[u"vectors"]),
- int(gdata[u"suspends"]),
- float(gdata[u"clocks"]),
- float(gdata[u"vectors"] / gdata[u"calls"]) \
- if gdata[u"calls"] else 0.0
- ])
-
- 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 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"status"] != u"PASS" or \
- 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"\n", 1)[1]
- except IndexError:
- pass
- col_data = col_data.replace(u'\n', u' |br| ').\
- replace(u'\r', u'').replace(u'"', u"'")
- col_data = f" |prein| {col_data} |preout| "
- elif column[u"data"].split(u" ")[1] in (u"conf-history", ):
- col_data = col_data.replace(u'\n', u' |br| ')
- 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"-ndrpdr", 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 structure.
- :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"])
- elif u"latency" in include_tests:
- keys = include_tests.split(u"-")
- if len(keys) == 4:
- lat = src[keys[0]][keys[1]][keys[2]][keys[3]]
- target[u"data"].append(
- float(u"nan") if lat == -1 else lat * 1e6
- )
- elif include_tests == u"hoststack":
- try:
- target[u"data"].append(
- float(src[u"result"][u"bits_per_second"])
- )
- except KeyError:
- target[u"data"].append(
- (float(src[u"result"][u"client"][u"tx_data"]) * 8) /
- ((float(src[u"result"][u"client"][u"time"]) +
- float(src[u"result"][u"server"][u"time"])) / 2)
- )
- elif include_tests == u"vsap":
- try:
- target[u"data"].append(src[u"result"][u"cps"])
- except KeyError:
- target[u"data"].append(src[u"result"][u"rps"])
- 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"Runs [#]",
- 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
-
- try:
- classification_lst, avgs, _ = classify_anomalies(data_t)
- except ValueError as err:
- logging.info(f"{err} Skipping")
- return
-
- 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))]
-
- nr_of_last_avgs = 0;
- for x in reversed(avgs):
- if x == last_avg:
- nr_of_last_avgs += 1
- else:
- break
-
- 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),
- nr_of_last_avgs,
- 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[2])
- tbl_lst.sort(key=lambda rel: rel[3])
- tbl_lst.sort(key=lambda rel: rel[5], reverse=True)
- tbl_lst.sort(key=lambda rel: rel[4], reverse=True)
-
- 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_lst:
- 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"
- elif u"ena" in test_name:
- nic = u"nitro50g"
- 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", u"2n-tx2")):
- 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", u"2n-tx2")):
- 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", u"2n-tx2")):
- cores = u"4t4c"
- elif u"2t1c" in test_name or \
- (u"-1c-" in test_name and
- testbed in
- (u"2n-icx", u"3n-icx", u"2n-skx", u"3n-skx", u"2n-clx", u"2n-zn2",
- u"2n-aws", u"3n-aws")):
- cores = u"2t1c"
- elif u"4t2c" in test_name or \
- (u"-2c-" in test_name and
- testbed in
- (u"2n-icx", u"3n-icx", u"2n-skx", u"3n-skx", u"2n-clx", u"2n-zn2",
- u"2n-aws", u"3n-aws")):
- cores = u"4t2c"
- elif u"8t4c" in test_name or \
- (u"-4c-" in test_name and
- testbed in
- (u"2n-icx", u"3n-icx", u"2n-skx", u"3n-skx", u"2n-clx", u"2n-zn2",
- u"2n-aws", u"3n-aws")):
- 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"af-xdp" in test_name or u"af_xdp" in test_name:
- driver = u"af_xdp"
- elif u"rdma" in test_name:
- driver = u"rdma"
- elif u"dnv" in testbed or u"tsh" in testbed:
- driver = u"ixgbe"
- elif u"ena" in test_name:
- driver = u"ena"
- 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-iacl10"
- 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"-tput" in test_name and u"ethip4udp" in test_name:
- bsf = u"udp-tput"
- elif u"-tput" in test_name and u"ethip4tcp" in test_name:
- bsf = u"tcp-tput"
- 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"-tput" in test_name:
- domain += u"-tput"
- 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"spe" in test_name:
- bsf += u"-spe"
- elif u"ethip4vxlan" in test_name:
- domain = u"ip4_tunnels"
- elif u"ethip4udpgeneve" 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 FileNotFoundError as err:
- logging.warning(f"{err}")
- return
- 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"")
- duration = \
- input_data.metadata(job, build).get(u"elapsedtime", 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)
- msg = tst_data[u'msg'].replace(u"\n", u"")
- msg = re.sub(r'(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})',
- 'xxx.xxx.xxx.xxx', msg)
- msg = msg.split(u'Also teardown failed')[0]
- failed_tests.append(f"{nic}-{tst_data[u'name']}###{msg}")
- tbl_list.append(passed)
- tbl_list.append(failed)
- tbl_list.append(duration)
- 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(f"{test}\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('title', '')} ...")
-
- # Transform the data
- logging.info(
- f" Creating the data set for the {table.get('type', '')} "
- f"{table.get('title', '')}."
- )
-
- columns = table.get("columns", None)
- if not columns:
- logging.error(
- f"No columns specified for {table.get('title', '')}. Skipping."
- )
- return
-
- cols = list()
- for idx, col in enumerate(columns):
- if col.get("data-set", None) is None:
- logging.warning(f"No data for column {col.get('title', '')}")
- continue
- tag = col.get("tag", None)
- data = input_data.filter_data(
- table,
- params=[
- "throughput",
- "result",
- "latency",
- "name",
- "parent",
- "tags"
- ],
- data=col["data-set"],
- continue_on_error=True
- )
- col_data = {
- "title": col.get("title", f"Column{idx}"),
- "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["tags"]:
- continue
- tst_name_mod = \
- _tpc_modify_test_name(tst_name, ignore_nic=True).\
- replace("2n1l-", "")
- if col_data["data"].get(tst_name_mod, None) is None:
- name = tst_data['name'].rsplit('-', 1)[0]
- if "across testbeds" in table["title"].lower() or \
- "across topologies" in table["title"].lower():
- name = _tpc_modify_displayed_test_name(name)
- col_data["data"][tst_name_mod] = {
- "name": name,
- "replace": True,
- "data": list(),
- "mean": None,
- "stdev": None
- }
- _tpc_insert_data(
- target=col_data["data"][tst_name_mod],
- src=tst_data,
- include_tests=table["include-tests"]
- )
-
- replacement = col.get("data-replacement", None)
- if replacement:
- rpl_data = input_data.filter_data(
- table,
- params=[
- "throughput",
- "result",
- "latency",
- "name",
- "parent",
- "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["tags"]:
- continue
- tst_name_mod = \
- _tpc_modify_test_name(tst_name, ignore_nic=True).\
- replace("2n1l-", "")
- if col_data["data"].get(tst_name_mod, None) is None:
- name = tst_data['name'].rsplit('-', 1)[0]
- if "across testbeds" in table["title"].lower() \
- or "across topologies" in \
- table["title"].lower():
- name = _tpc_modify_displayed_test_name(name)
- col_data["data"][tst_name_mod] = {
- "name": name,
- "replace": False,
- "data": list(),
- "mean": None,
- "stdev": None
- }
- if col_data["data"][tst_name_mod]["replace"]:
- col_data["data"][tst_name_mod]["replace"] = False
- col_data["data"][tst_name_mod]["data"] = list()
- _tpc_insert_data(
- target=col_data["data"][tst_name_mod],
- src=tst_data,
- include_tests=table["include-tests"]
- )
-
- if table["include-tests"] in ("NDR", "PDR", "hoststack", "vsap") \
- or "latency" in table["include-tests"]:
- for tst_name, tst_data in col_data["data"].items():
- if tst_data["data"]:
- tst_data["mean"] = mean(tst_data["data"])
- tst_data["stdev"] = stdev(tst_data["data"])
-
- cols.append(col_data)
-
- tbl_dict = dict()
- for col in cols:
- for tst_name, tst_data in col["data"].items():
- if tbl_dict.get(tst_name, None) is None:
- tbl_dict[tst_name] = {
- "name": tst_data["name"]
- }
- tbl_dict[tst_name][col["title"]] = {
- "mean": tst_data["mean"],
- "stdev": tst_data["stdev"]
- }
-
- if not tbl_dict:
- logging.warning(f"No data for table {table.get('title', '')}!")
- 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("comparisons", None)
- rcas = list()
- if comparisons and isinstance(comparisons, list):
- for idx, comp in enumerate(comparisons):
- try:
- col_ref = int(comp["reference"])
- col_cmp = int(comp["compare"])
- except KeyError:
- logging.warning("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("rca-file", None)
- if rca_file_name:
- try:
- with open(rca_file_name, "r") as file_handler:
- rcas.append(
- {
- "title": f"RCA{idx + 1}",
- "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["reference"])]
- if ref_itm is None and \
- comp.get("reference-alt", None) is not None:
- ref_itm = row[int(comp["reference-alt"])]
- cmp_itm = row[int(comp[u"compare"])]
- if ref_itm is not None and cmp_itm is not None and \
- ref_itm["mean"] is not None and \
- cmp_itm["mean"] is not None and \
- ref_itm["stdev"] is not None and \
- cmp_itm["stdev"] is not None:
- norm_factor_ref = table["norm_factor"].get(
- comp.get("norm-ref", ""),
- 1.0
- )
- norm_factor_cmp = table["norm_factor"].get(
- comp.get("norm-cmp", ""),
- 1.0
- )
- try:
- delta, d_stdev = relative_change_stdev(
- ref_itm["mean"] * norm_factor_ref,
- cmp_itm["mean"] * norm_factor_cmp,
- ref_itm["stdev"] * norm_factor_ref,
- cmp_itm["stdev"] * norm_factor_cmp
- )
- except ZeroDivisionError:
- break
- if delta is None or math.isnan(delta):
- break
- new_row.append({
- "mean": delta * 1e6,
- "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]['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('mean', None) is None or \
- itm.get('stdev', None) is None:
- row.append("NT")
- row.append("NT")
- else:
- row.append(round(float(itm['mean']) / 1e6, 3))
- row.append(round(float(itm['stdev']) / 1e6, 3))
- for rca in rcas:
- if rca is None:
- continue
- rca_nr = rca["data"].get(row[0], "-")
- row.append(f"[{rca_nr}]" if rca_nr != "-" else "-")
- tbl_for_csv.append(row)
-
- header_csv = ["Test Case", ]
- for col in cols:
- header_csv.append(f"Avg({col['title']})")
- header_csv.append(f"Stdev({col['title']})")
- for comp in comparisons:
- header_csv.append(
- f"Avg({comp.get('title', '')})"
- )
- header_csv.append(
- f"Stdev({comp.get('title', '')})"
- )
- for rca in rcas:
- if rca:
- header_csv.append(rca["title"])
-
- legend_lst = table.get("legend", None)
- if legend_lst is None:
- legend = ""
- else:
- legend = "\n" + "\n".join(legend_lst) + "\n"
-
- footnote = ""
- if rcas and any(rcas):
- footnote += "\nRoot Cause Analysis:\n"
- for rca in rcas:
- if rca:
- footnote += f"{rca['data'].get('footnote', '')}\n"
-
- csv_file_name = f"{table['output-file']}-csv.csv"
- with open(csv_file_name, "wt", encoding='utf-8') as file_handler:
- file_handler.write(
- ",".join([f'"{itm}"' for itm in header_csv]) + "\n"
- )
- for test in tbl_for_csv:
- file_handler.write(
- ",".join([f'"{item}"' for item in test]) + "\n"
- )
- if legend_lst:
- for item in legend_lst:
- file_handler.write(f'"{item}"\n')
- if footnote:
- for itm in footnote.split("\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('mean', None) is None or \
- itm.get('stdev', None) is None:
- new_itm = "NT"
- else:
- if idx < len(cols):
- new_itm = (
- f"{round(float(itm['mean']) / 1e6, 2)} "
- f"\u00B1{round(float(itm['stdev']) / 1e6, 2)}".
- replace("nan", "NaN")
- )
- else:
- new_itm = (
- f"{round(float(itm['mean']) / 1e6, 2):+} "
- f"\u00B1{round(float(itm['stdev']) / 1e6, 2)}".
- replace("nan", "NaN")
- )
- if len(new_itm.rsplit(" ", 1)[-1]) > max_lens[idx]:
- max_lens[idx] = len(new_itm.rsplit(" ", 1)[-1])
- row.append(new_itm)
-
- tbl_tmp.append(row)
-
- header = ["Test Case", ]
- header.extend([col["title"] for col in cols])
- header.extend([comp.get("title", "") 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 ("NT", "NaN"):
- row.append(itm)
- continue
- itm_lst = itm.rsplit("\u00B1", 1)
- itm_lst[-1] = \
- f"{' ' * (max_lens[idx] - len(itm_lst[-1]))}{itm_lst[-1]}"
- itm_str = "\u00B1".join(itm_lst)
-
- if idx >= len(cols):
- # Diffs
- rca = rcas[idx - len(cols)]
- if rca:
- # Add rcas to diffs
- rca_nr = rca["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"{' ' * (4 - len(rca_nr))}{rca_nr}"
- f"{' ' * (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['output-file']}.csv"
- logging.info(f" Writing the file {csv_file_name}")
- with open(csv_file_name, "wt", encoding='utf-8') as file_handler:
- file_handler.write(";".join(header) + "\n")
- for test in tbl_final:
- file_handler.write(";".join([str(item) for item in test]) + "\n")
-
- # Generate txt table:
- txt_file_name = f"{table['output-file']}.txt"
- logging.info(f" Writing the file {txt_file_name}")
- convert_csv_to_pretty_txt(csv_file_name, txt_file_name, delimiter=";")
-
- with open(txt_file_name, '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['output-file'],
- legend=legend,
- footnote=footnote,
- sort_data=False,
- title=table.get("title", "")
- )
-
-
-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}")
- try:
- convert_csv_to_pretty_txt(csv_file_name, txt_file_name, delimiter=u",")
- except Exception as err:
- logging.error(repr(err))
- for hdr in header:
- logging.info(",".join(hdr))
- for test in tbl_lst:
- logging.info(",".join(
- [
- str(item).replace(u"None", u"-").replace(u"nan", u"-").
- replace(u"null", u"-") for item in test
- ]
- ))
-
- # Reorganize header in txt table
- txt_table = list()
- with open(txt_file_name, u"rt", encoding='utf-8') as file_handler:
- for line in list(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/input_data_files.py b/resources/tools/presentation/input_data_files.py
deleted file mode 100644
index 5b322dcb60..0000000000
--- a/resources/tools/presentation/input_data_files.py
+++ /dev/null
@@ -1,312 +0,0 @@
-# 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.
-
-"""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, HTTPException
-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 urllib3.exceptions import HTTPError
-
-
-# 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, verify=True, repeat=1):
- """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.
- :param verify: If true, verify the certificate.
- :param repeat: The number of attempts to download the file.
- :type url: str
- :type file_name: str
- :type arch: bool
- :type verify: bool
- :type repeat: int
- :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
- while repeat:
- repeat -= 1
- session = None
- try:
- logging.info(f" Connecting to {url} ...")
- session = requests_retry_session()
- response = session.get(url, stream=True, verify=verify)
- code = response.status_code
- logging.info(f" {code}: {responses[code]}")
-
- if code != codes[u"OK"]:
- if session:
- session.close()
- return False, file_name
-
- 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, verify=verify)
- 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 "
- f"{url} to {file_name}"
- )
-
- success = True
- repeat = 0
- except (HTTPException, HTTPError) as err:
- logging.error(f"Connection broken:\n{repr(err)}")
- 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()
- 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"]
- data_file = "robot-plugin/output.xml"
- 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_xml(source, job, build, w_dir, arch):
- """
-
- :param source:
- :param job:
- :param build:
- :param w_dir: Path to working directory
- :param arch:
- :return:
- """
-
- file_name = source.get(u"file-name", u"")
- new_name = join(
- w_dir,
- f"{job}{SEPARATOR}{build[u'build']}{SEPARATOR}{file_name}"
- )
- url = u"{0}/{1}".format(
- source.get(u"url", u""),
- source.get(u"path", u"").format(
- job=job, build=build[u'build'], filename=file_name
- )
- )
- logging.info(f" Trying to download {url}")
- success, downloaded_name = _download_file(
- url, new_name, arch=arch, verify=(u"nginx" not in url), repeat=3
- )
- return success, downloaded_name
-
-
-def _download_xml_docs(source, job, build, w_dir, arch):
- """
-
- :param source:
- :param job:
- :param build:
- :param w_dir: Path to working directory
- :param arch:
- :return:
- """
-
- file_name = source.get(u"file-name", u"")
- release = re.search(REGEX_RELEASE, job).group(2)
- for rls in (release, u"master"):
- try:
- rls = f"rls{int(rls)}"
- except ValueError:
- pass # It is master
- url = (
- f"{source.get(u'url', u'')}/"
- f"{rls}/"
- f"{source.get(u'path', u'')}/"
- f"{job}{SEPARATOR}{build[u'build']}{SEPARATOR}{file_name}"
- )
- new_name = join(
- w_dir,
- f"{job}{SEPARATOR}{build[u'build']}{SEPARATOR}{file_name}"
- )
-
- logging.info(f" Trying to download {url}")
-
- success, downloaded_name = _download_file(url, new_name, arch=arch)
- if success:
- 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
-
- return success, downloaded_name
-
-
-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
- """
-
- download = {
- "xml": _download_xml,
- "xml-docs": _download_xml_docs
- }
-
- success = False
- downloaded_name = u""
- arch = bool(spec.environment.get(u"archive-inputs", True))
-
- for source in spec.environment.get(u"data-sources", tuple()):
- if not source.get(u"enabled", False):
- continue
- download_type = source.get(u"type", None)
- if not download_type:
- continue
- success, downloaded_name = download[download_type](
- source,
- job,
- build,
- spec.environment[u"paths"][u"DIR[WORKING,DATA]"],
- arch
- )
- if success:
- source[u"successful-downloads"] += 1
- build[u"source"] = source[u"type"]
- break
-
- # TODO: Remove when only .gz is used.
- if success and downloaded_name.endswith(u".zip"):
- if not is_zipfile(downloaded_name):
- logging.error(f"Zip file {downloaded_name} is corrupted.")
- success = False
-
- if success:
- if downloaded_name.endswith(u".gz"):
- build[u"file-name"] = downloaded_name[:-3]
- # TODO: Remove when only .gz is used.
- elif downloaded_name.endswith(u".zip"):
- build[u"file-name"] = downloaded_name
- 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 7499935ee8..0000000000
--- a/resources/tools/presentation/input_data_parser.py
+++ /dev/null
@@ -1,2162 +0,0 @@
-# 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.
-
-"""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'.*\[(.*)\]')
-
- REGEX_VSAP_MSG_INFO = re.compile(
- r'Transfer Rate: (\d*.\d*).*\n'
- r'Latency: (\d*.\d*).*\n'
- r'Completed requests: (\d*).*\n'
- r'Failed requests: (\d*).*\n'
- r'Total data transferred: (\d*).*\n'
- r'Connection [cr]ps rate:\s*(\d*.\d*)'
- )
-
- # 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'.*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_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+.) - (.*)\)')
-
- REGEX_SH_RUN_HOST = re.compile(
- r'hostname=\"(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})\",hook=\"(.*)\"'
- )
-
- def __init__(self, metadata, mapping, ignore, process_oper):
- """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.
- :param process_oper: If True, operational data (show run, telemetry) is
- processed.
- :type metadata: dict
- :type mapping: dict
- :type ignore: list
- :type process_oper: bool
- """
-
- # 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
-
- self._process_oper = process_oper
-
- # 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
- self._telemetry_kw_counter = 0
- self._telemetry_msg_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"vpp-version": self._get_vpp_version,
- u"dpdk-version": self._get_dpdk_version,
- u"teardown-papi-history": self._get_papi_history,
- u"test-show-runtime": self._get_show_run,
- u"testbed": self._get_testbed,
- u"test-telemetry": self._get_telemetry
- }
-
- @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 P50, P90 and P99 latencies or 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:
- hdr_lat_1 = 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:
- hdr_lat_2 = 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
-
- hdr_lat = (
- int(in_list_1[0]), int(in_list_1[1]), int(in_list_1[2]),
- int(in_list_2[0]), int(in_list_2[1]), int(in_list_2[2])
- )
- for item in hdr_lat:
- if item in (-1, 4294967295, 0):
- return None
- return hdr_lat
-
- 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_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} PAPI command history:",
- u"",
- msg.message,
- count=1
- ).replace(u'"', u"'")
- self._data[u"tests"][self._test_id][u"conf-history"] += (
- f"**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""
-
- dut = u"dut{nr}".format(
- nr=len(self._data[u'tests'][self._test_id][u'show-run'].keys()) + 1)
-
- self._data[u'tests'][self._test_id][u'show-run'][dut] = \
- copy.copy(
- {
- u"host": host,
- u"socket": sock,
- u"runtime": 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]
- }
- )
-
- def _get_telemetry(self, msg):
- """Called when extraction of VPP telemetry data is required.
-
- :param msg: Message to process.
- :type msg: Message
- :returns: Nothing.
- """
-
- if self._telemetry_kw_counter > 1:
- return
- if not msg.message.count(u"# TYPE vpp_runtime_calls"):
- return
-
- if u"telemetry-show-run" not in \
- self._data[u"tests"][self._test_id].keys():
- self._data[u"tests"][self._test_id][u"telemetry-show-run"] = dict()
-
- self._telemetry_msg_counter += 1
- groups = re.search(self.REGEX_SH_RUN_HOST, 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 = {
- u"source_type": u"node",
- u"source_id": host,
- u"msg_type": u"metric",
- u"log_level": u"INFO",
- u"timestamp": msg.timestamp,
- u"msg": u"show_runtime",
- u"host": host,
- u"socket": sock,
- u"data": list()
- }
- for line in msg.message.splitlines():
- if not line.startswith(u"vpp_runtime_"):
- continue
- try:
- params, value, timestamp = line.rsplit(u" ", maxsplit=2)
- cut = params.index(u"{")
- name = params[:cut].split(u"_", maxsplit=2)[-1]
- labels = eval(
- u"dict" + params[cut:].replace('{', '(').replace('}', ')')
- )
- labels[u"graph_node"] = labels.pop(u"name")
- runtime[u"data"].append(
- {
- u"name": name,
- u"value": value,
- u"timestamp": timestamp,
- u"labels": labels
- }
- )
- except (TypeError, ValueError, IndexError):
- continue
- self._data[u'tests'][self._test_id][u'telemetry-show-run']\
- [f"dut{self._telemetry_msg_counter}"] = copy.copy(
- {
- u"host": host,
- u"socket": sock,
- u"runtime": runtime
- }
- )
-
- 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
-
- 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 _get_vsap_data(self, msg, tags):
- """Get data from the vsap 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"
-
- groups = re.search(self.REGEX_VSAP_MSG_INFO, msg)
- if groups is not None:
- try:
- result[u"transfer-rate"] = float(groups.group(1)) * 1e3
- result[u"latency"] = float(groups.group(2))
- result[u"completed-requests"] = int(groups.group(3))
- result[u"failed-requests"] = int(groups.group(4))
- result[u"bytes-transferred"] = int(groups.group(5))
- if u"TCP_CPS"in tags:
- result[u"cps"] = float(groups.group(6))
- elif u"TCP_RPS" in tags:
- result[u"rps"] = float(groups.group(6))
- else:
- return result, status
- status = u"PASS"
- except (IndexError, ValueError):
- 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
-
- self._data[u"suites"][suite.longname.lower().
- replace(u'"', u"'").
- replace(u" ", u"_")] = {
- u"name": suite.name.lower(),
- u"doc": suite.doc,
- u"parent": parent_name,
- u"level": len(suite.longname.split(u"."))
- }
-
- suite.setup.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.body.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
- self._telemetry_kw_counter = 0
- self._telemetry_msg_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)
- # Remove TC number from the TC name (not needed):
- test_result[u"name"] = re.sub(self.REGEX_TC_NUMBER, "", name)
-
- test_result[u"parent"] = test.parent.name.lower()
- test_result[u"tags"] = tags
- test_result["doc"] = test.doc
- test_result[u"type"] = u""
- test_result[u"status"] = test.status
- test_result[u"starttime"] = test.starttime
- test_result[u"endtime"] = test.endtime
-
- 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)
- 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)
- else:
- test_result[u"msg"] = self._get_data_from_perf_test_msg(
- test.message)
- 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)
- else:
- test_result[u"msg"] = test.message
- else:
- test_result[u"msg"] = test.message
-
- if u"PERFTEST" in tags and u"TREX" not 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.
- 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 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"
- if test.status == u"PASS":
- 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"
- if test.status == u"PASS":
- 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().replace(u"'", u""))
- for item in items_str.split(",")
- ]
- # Use whole list in CSIT-1180.
- stats = jumpavg.AvgStdevStats.for_runs(items_float)
- test_result[u"result"][u"samples"] = 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"
- if test.status == u"PASS":
- test_result[u"throughput"], test_result[u"status"] = \
- self._get_plr_throughput(test.message)
- elif u"LDP_NGINX" in tags:
- test_result[u"type"] = u"LDP_NGINX"
- test_result[u"result"], test_result[u"status"] = \
- self._get_vsap_data(test.message, tags)
- elif u"HOSTSTACK" in tags:
- test_result[u"type"] = u"HOSTSTACK"
- if test.status == u"PASS":
- test_result[u"result"], test_result[u"status"] = \
- self._get_hoststack_data(test.message, tags)
- elif u"RECONF" in tags:
- test_result[u"type"] = u"RECONF"
- if test.status == u"PASS":
- 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
-
- 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.body:
- 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 not self._process_oper:
- return
-
- if test_kw.name.count(u"Run Telemetry On All Duts"):
- self._msg_type = u"test-telemetry"
- self._telemetry_kw_counter += 1
- elif test_kw.name.count(u"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.body:
- 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"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.body:
- 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 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, for_output):
- """Initialization.
-
- :param spec: Specification.
- :param for_output: Output to be generated from downloaded data.
- :type spec: Specification
- :type for_output: str
- """
-
- # Specification:
- self._cfg = spec
-
- self._for_output = for_output
-
- # Data store:
- self._input_data = pd.Series(dtype="object")
-
- @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
-
- process_oper = False
- if u"-vpp-perf-report-coverage-" in job:
- process_oper = True
- # elif u"-vpp-perf-report-iterative-" in job:
- # # Exceptions for TBs where we do not have coverage data:
- # for item in (u"-2n-icx", ):
- # if item in job:
- # process_oper = True
- # break
- checker = ExecutionChecker(
- metadata, self._cfg.mapping, self._cfg.ignore, process_oper
- )
- result.visit(checker)
-
- checker.data[u"metadata"][u"tests_total"] = \
- result.statistics.total.total
- checker.data[u"metadata"][u"tests_passed"] = \
- result.statistics.total.passed
- checker.data[u"metadata"][u"tests_failed"] = \
- result.statistics.total.failed
- checker.data[u"metadata"][u"elapsedtime"] = result.suite.elapsedtime
- checker.data[u"metadata"][u"generated"] = result.suite.endtime[:14]
-
- 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.environment.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."
- )
- 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.input.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(dtype="object")
- 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.")
-
- msg = f"Successful downloads from the sources:\n"
- for source in self._cfg.environment[u"data-sources"]:
- if source[u"successful-downloads"]:
- msg += (
- f"{source[u'url']}/{source[u'path']}/"
- f"{source[u'file-name']}: "
- f"{source[u'successful-downloads']}\n"
- )
- logging.info(msg)
-
- 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.input = 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(dtype="object")
- 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.input = 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.extend((u"type", u"status"))
-
- data_to_filter = data if data else element[u"data"]
- data = pd.Series(dtype="object")
- try:
- for job, builds in data_to_filter.items():
- data[job] = pd.Series(dtype="object")
- for build in builds:
- data[job][str(build)] = pd.Series(dtype="object")
- 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(dtype="object")
- 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 and u"type" not in params:
- params.append(u"type")
-
- cores = element.get(u"core", None)
- if cores:
- tests = list()
- for core in cores:
- for test in include:
- tests.append(test.format(core=core))
- else:
- tests = include
-
- data = pd.Series(dtype="object")
- try:
- for job, builds in element[u"data"].items():
- data[job] = pd.Series(dtype="object")
- for build in builds:
- data[job][str(build)] = pd.Series(dtype="object")
- for test in tests:
- 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(dtype="object")
- 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(dtype="object")
- 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.
- """
-
- 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"runtime", None) is None:
- continue
- runtime = loads(data[u"runtime"])
- try:
- threads_nr = len(runtime[0][u"clocks"])
- except (IndexError, KeyError):
- continue
- 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]):
- threads[idx].append([
- item[u"name"],
- item[u"calls"][idx],
- item[u"vectors"][idx],
- item[u"suspends"][idx],
- clocks,
- vectors_call
- ])
-
- print(f"Host IP: {data.get(u'host', '')}, "
- f"Socket: {data.get(u'socket', '')}")
- for thread_nr, thread in threads.items():
- txt_table = prettytable.PrettyTable(
- (
- u"Name",
- u"Nr of Vectors",
- u"Nr of Packets",
- u"Suspends",
- u"Cycles per Packet",
- u"Average Vector Size"
- )
- )
- 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/json/template_0.1.0.json b/resources/tools/presentation/json/template_0.1.0.json
deleted file mode 100644
index 7c7c76a5c1..0000000000
--- a/resources/tools/presentation/json/template_0.1.0.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "version": "0.1.0",
- "ci": "",
- "job": "",
- "build_number": "",
- "testbed": "",
- "suite_id": "",
- "suite_doc": "",
- "sut_type": "",
- "sut_version": "",
- "test_id": "",
- "test_type": "",
- "tags": [],
- "documentation": "",
- "message": "",
- "csit_commit": "",
- "csit_gerrit_change": "",
- "start_time": "",
- "end_time": "",
- "status": "",
- "results": {},
- "log": []
-}
diff --git a/resources/tools/presentation/pal.py b/resources/tools/presentation/pal.py
deleted file mode 100644
index 4f9b24fedc..0000000000
--- a/resources/tools/presentation/pal.py
+++ /dev/null
@@ -1,196 +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.
-
-"""CSIT Presentation and Analytics Layer.
-"""
-
-import sys
-import argparse
-import logging
-
-from pal_errors import PresentationError
-from specification_parser import Specification
-from environment import Environment, clean_environment
-from static_content import prepare_static_content
-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 generator_report import generate_report
-from generator_cpta import generate_cpta
-from generator_alerts import Alerting, AlertingError
-from convert_xml_json import convert_xml_to_json
-
-
-OUTPUTS = (u"none", u"report", u"trending", u"convert-xml-to-json")
-
-
-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=str,
- 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"NOTSET", 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 as err:
- logging.critical(u"Finished with error.")
- logging.critical(repr(err))
- return 1
-
- if spec.output[u"output"] not in OUTPUTS:
- logging.critical(
- f"The output {spec.output[u'output']} is not supported."
- )
- return 1
-
- return_code = 1
- try:
- env = Environment(spec.environment, args.force)
- env.set_environment()
-
- prepare_static_content(spec)
-
- data = InputData(spec, spec.output[u"output"])
- 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))
- elif spec.output[u"output"] == u"convert-xml-to-json":
- convert_xml_to_json(spec, data)
- else:
- logging.info("No output will be generated.")
-
- logging.info(u"Successfully finished.")
- return_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 return_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 a584088d26..0000000000
--- a/resources/tools/presentation/pal_errors.py
+++ /dev/null
@@ -1,83 +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.
-
-"""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_level = {
- 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_level[self._level](self._msg)
- if self._details:
- self.log_level[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 f546aa4d10..0000000000
--- a/resources/tools/presentation/pal_utils.py
+++ /dev/null
@@ -1,352 +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.
-
-"""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.output[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 1c976e273e..0000000000
--- a/resources/tools/presentation/requirements.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Sphinx==3.5.4
-sphinx-rtd-theme==0.5.2
-sphinxcontrib-programoutput==0.17
-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
-urllib3==1.25.6
-boto3==1.17.78
-botocore==1.20.78
diff --git a/resources/tools/presentation/run_convert.sh b/resources/tools/presentation/run_convert.sh
deleted file mode 100755
index 814fab3a28..0000000000
--- a/resources/tools/presentation/run_convert.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/bash
-
-set -x
-
-# set default values in config array
-typeset -A CFG
-typeset -A DIR
-
-DIR[WORKING]=_tmp
-
-# Create working directories
-mkdir ${DIR[WORKING]}
-
-# Create virtual environment
-virtualenv -p $(which python3) ${DIR[WORKING]}/env
-source ${DIR[WORKING]}/env/bin/activate
-
-# FIXME: s3 config (until migrated to vault, then account will be reset)
-mkdir -p ${HOME}/.aws
-echo "[nomad-s3]" >> ${HOME}/.aws/config
-echo "[nomad-s3]
-aws_access_key_id = csit
-aws_secret_access_key = Csit1234" >> ${HOME}/.aws/credentials
-
-# Install python dependencies:
-pip3 install -r requirements.txt
-
-export PYTHONPATH=`pwd`:`pwd`/../../../
-
-python pal.py \
- --specification specifications/converter \
- --logging INFO \
-
-RETURN_STATUS=$(echo $?)
-exit ${RETURN_STATUS}
diff --git a/resources/tools/presentation/specification_parser.py b/resources/tools/presentation/specification_parser.py
deleted file mode 100644
index ce821f2bde..0000000000
--- a/resources/tools/presentation/specification_parser.py
+++ /dev/null
@@ -1,920 +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.
-
-"""Specification
-
-Parsing of the specification YAML file.
-"""
-
-
-from os.path import join, exists
-
-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 files
- - 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_dir):
- """Initialization.
-
- :param cfg_dir: Directory with the specification files.
- :type cfg_dir: str
- """
- self._cfg_dir = cfg_dir
- self._cfg_yaml = None
-
- self._specification = {
- u"environment": dict(),
- u"data_sets": dict(),
- u"layouts": 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 data_sets(self):
- """Getter - data_sets.
-
- :returns: Data sets.
- :rtype: dict
- """
- return self._specification[u"data_sets"]
-
- @property
- def layouts(self):
- """Getter - layouts.
-
- :returns: Layouts.
- :rtype: dict
- """
- return self._specification[u"layouts"]
-
- @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.environment[u"mapping"]
-
- @property
- def ignore(self):
- """Getter - Ignore list.
-
- :returns: List of ignored test cases.
- :rtype: list
- """
- return self.environment[u"ignore"]
-
- @property
- def alerting(self):
- """Getter - Alerting.
-
- # TODO
-
- :returns: Specification of alerts.
- :rtype: dict
- """
- return self.environment[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
-
- def add_build(self, job, build):
- """Add a build to the list of builds if it does not exist there.
-
- :param job: The job which run the build.
- :param build: The build to be added.
- :type job: str
- :type build: dict
- """
- if self.input.get(job, None) is None:
- self.input[job] = list()
- for existing_build in self.input[job]:
- if existing_build[u"build"] == build[u"build"]:
- break
- else:
- self.input[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.get(u"tables", list())
-
- @property
- def plots(self):
- """Getter - plots to be generated.
-
- :returns: List of specifications of plots to be generated.
- :rtype: list
- """
- return self._specification.get(u"plots", list())
-
- @property
- def files(self):
- """Getter - files to be generated.
-
- :returns: List of specifications of files to be generated.
- :rtype: list
- """
- return self._specification.get(u"files", list())
-
- @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 the 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.input[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 file name for the 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.input[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: ENVIRONMENT")
-
- idx = self._get_type_index(u"environment")
- if idx is None:
- return
-
- self._specification[u"environment"][u"spec-files"] = \
- self._cfg_yaml[idx].get(u"spec-files", 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
-
- self._specification[u"environment"][u"data-sources"] = \
- self._cfg_yaml[idx].get(u"data-sources", tuple())
- # Add statistics:
- for source in self._specification[u"environment"][u"data-sources"]:
- source[u"successful-downloads"] = 0
-
- self._specification[u"environment"][u"make-dirs"] = \
- self._cfg_yaml[idx].get(u"make-dirs", None)
-
- self._specification[u"environment"][u"remove-dirs"] = \
- self._cfg_yaml[idx].get(u"remove-dirs", None)
-
- self._specification[u"environment"][u"build-dirs"] = \
- self._cfg_yaml[idx].get(u"build-dirs", None)
-
- self._specification[u"environment"][u"testbeds"] = \
- self._cfg_yaml[idx].get(u"testbeds", None)
-
- self._specification[u"environment"][u"limits"] = \
- self._cfg_yaml[idx].get(u"limits", None)
-
- self._specification[u"environment"][u"frequency"] = \
- self._cfg_yaml[idx].get(u"frequency", dict())
-
- self._specification[u"environment"][u"urls"] = \
- self._cfg_yaml[idx].get(u"urls", None)
-
- self._specification[u"environment"][u"archive-inputs"] = \
- self._cfg_yaml[idx].get(u"archive-inputs", False)
-
- self._specification[u"environment"][u"reverse-input"] = \
- self._cfg_yaml[idx].get(u"reverse-input", False)
-
- self._specification[u"environment"][u"time-period"] = \
- self._cfg_yaml[idx].get(u"time-period", None)
-
- self._specification[u"environment"][u"alerting"] = \
- self._cfg_yaml[idx].get(u"alerting", None)
-
- self._specification[u"environment"][u"mapping-file"] = \
- self._cfg_yaml[idx].get(u"mapping-file", None)
-
- self._specification[u"environment"][u"ignore-list"] = \
- self._cfg_yaml[idx].get(u"ignore-list", None)
-
- # Mapping table:
- self._load_mapping_table()
-
- # Ignore list:
- self._load_ignore_list()
-
- def _parse_layouts(self):
- """Parse layouts specification in the specification YAML file.
- """
-
- logging.info(u"Parsing specification: LAYOUTS")
-
- idx = self._get_type_index(u"layouts")
- if idx is None:
- return
-
- try:
- self._specification[u"layouts"] = self._cfg_yaml[idx]
- except KeyError:
- raise PresentationError(u"No layouts defined.")
-
- def _parse_data_sets(self):
- """Parse data sets specification in the specification YAML file.
- """
-
- logging.info(u"Parsing specification: DATA SETS")
-
- idx = self._get_type_index(u"data-sets")
- if idx is None:
- return
-
- try:
- self._specification[u"data_sets"] = self._cfg_yaml[idx]
- except KeyError:
- raise PresentationError(u"No Data sets defined.")
-
- # Replace ranges by lists
- for set_name, data_set in self.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.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)
-
- # Add sub-sets to sets (only one level):
- for set_name, data_set in self.data_sets.items():
- if isinstance(data_set, list):
- new_set = dict()
- for item in data_set:
- try:
- for key, val in self.data_sets[item].items():
- new_set[key] = val
- except KeyError:
- raise PresentationError(
- f"Data set {item} is not defined."
- )
- self.data_sets[set_name] = new_set
-
- def _load_mapping_table(self):
- """Load a mapping table if it is specified. If not, use empty dict.
- """
-
- mapping_file_name = self.environment.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.environment[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.environment[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.environment.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.environment[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.environment[u"ignore"] = list()
-
- 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: 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.")
-
- def _parse_static(self):
- """Parse specification of the static content in the specification YAML
- file.
- """
-
- logging.info(u"Parsing specification: STATIC CONTENT")
-
- idx = self._get_type_index(u"static")
- if idx is None:
- logging.warning(u"No static content specified.")
- self._specification[u"static"] = dict()
- return
-
- 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]
-
- 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.data_sets[data_set]
- data_set = table[item].get(u"data-replacement", None)
- if isinstance(data_set, str):
- table[item][u"data-replacement"] = \
- self.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.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.data_sets[data_set]
-
- if table.get(u"lines", None):
- for i in range(len(table[u"lines"])):
- data_set = table[u"lines"][i].get(u"data-set", None)
- if isinstance(data_set, str):
- table[u"lines"][i][u"data-set"] = \
- self.data_sets[data_set]
-
- except KeyError:
- raise PresentationError(
- f"Wrong set '{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.layouts[layout].items():
- plot[u"layout"][key] = val
- except KeyError:
- raise PresentationError(f"Layout {layout} is not defined.")
- 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.layouts[layout]
- except KeyError:
- raise PresentationError(f"Layout {layout} is not defined.")
- # Add data sets:
- if isinstance(plot.get(u"data", None), str):
- data_set = plot[u"data"]
- try:
- plot[u"data"] = self.data_sets[data_set]
- except KeyError:
- raise PresentationError(
- f"Data set {data_set} is not defined."
- )
- self._specification[u"cpta"] = cpta
-
- def _parse_elements(self):
- """Parse elements (tables, plots, ..) specification in the specification
- YAML file.
- """
-
- logging.info(u"Parsing specification: ELEMENTS")
-
- count = 1
- for element in self._cfg_yaml:
-
- # Replace tags:
- try:
- element[u"output-file"] = self._replace_tags(
- element[u"output-file"],
- self.environment[u"paths"]
- )
- except KeyError:
- pass
-
- try:
- element[u"input-file"] = self._replace_tags(
- element[u"input-file"],
- self.environment[u"paths"]
- )
- except KeyError:
- pass
-
- try:
- element[u"output-file-links"] = self._replace_tags(
- element[u"output-file-links"],
- self.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.data_sets[data_set]
- except KeyError:
- raise PresentationError(
- f"Data set {data_set} is not defined."
- )
- elif isinstance(element.get(u"data", None), list):
- new_list = list()
- for item in element[u"data"]:
- try:
- new_list.append(self.data_sets[item])
- except KeyError:
- raise PresentationError(
- f"Data set {item} is not defined."
- )
- 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
-
- def _prepare_input(self):
- """Use information from data sets and generate list of jobs and builds
- to download.
- """
-
- logging.info(u"Parsing specification: INPUT")
-
- idx = self._get_type_index(u"input")
- if idx is None:
- logging.info(u"Creating the list of inputs from data sets.")
- for data_set in self.data_sets.values():
- if data_set == "data-sets":
- continue
- for job, builds in data_set.items():
- for build in builds:
- self.add_build(
- job,
- {
- u"build": build,
- u"status": None,
- u"file-name": None,
- u"source": None
- }
- )
- else:
- logging.info(u"Reading pre-defined inputs.")
- for job, builds in self._cfg_yaml[idx][u"builds"].items():
- for build in builds:
- self.add_build(
- job,
- {
- u"build": build,
- u"status": None,
- u"file-name": None,
- u"source": None
- }
- )
-
- if self.environment[u"reverse-input"]:
- for builds in self.input.values():
- builds.sort(key=lambda k: k[u"build"], reverse=True)
-
- def read_specification(self):
- """Parse specification in the specification YAML files.
-
- :raises: PresentationError if an error occurred while parsing the
- specification file.
- """
-
- # It always starts with environment.yaml file, it must be present.
- spec_file = join(self._cfg_dir, u"environment.yaml")
- logging.info(f"Reading {spec_file}")
- if not exists(spec_file):
- raise PresentationError(f"The file {spec_file} does not exist.")
-
- with open(spec_file, u"r") as file_read:
- try:
- self._cfg_yaml = load(file_read, Loader=FullLoader)
- except YAMLError as err:
- raise PresentationError(
- f"An error occurred while parsing the specification file "
- f"{spec_file}",
- details=repr(err)
- )
-
- # Load the other specification files specified in the environment.yaml
- idx = self._get_type_index(u"environment")
- if idx is None:
- raise PresentationError(
- f"No environment defined in the file {spec_file}"
- )
- for spec_file in self._cfg_yaml[idx].get(u"spec-files", tuple()):
- logging.info(f"Reading {spec_file}")
- if not exists(spec_file):
- raise PresentationError(f"The file {spec_file} does not exist.")
- spec = None
- with open(spec_file, u"r") as file_read:
- try:
- spec = load(file_read, Loader=FullLoader)
- except YAMLError as err:
- raise PresentationError(
- f"An error occurred while parsing the specification "
- f"file {spec_file}",
- details=repr(err)
- )
- if spec:
- self._cfg_yaml.extend(spec)
-
- self._parse_env()
- self._parse_layouts()
- self._parse_data_sets()
- self._parse_output()
- self._parse_static()
- self._parse_elements()
- self._prepare_input()
-
- logging.debug(f"Specification: \n{pformat(self.specification)}")
diff --git a/resources/tools/presentation/specifications/converter/environment.yaml b/resources/tools/presentation/specifications/converter/environment.yaml
deleted file mode 100644
index 4ab9637eab..0000000000
--- a/resources/tools/presentation/specifications/converter/environment.yaml
+++ /dev/null
@@ -1,130 +0,0 @@
-################################################################################
-### E N V I R O N M E N T ###
-################################################################################
-
-- type: "environment"
-
- spec-files:
- - "specifications/converter/input.yaml" # Only for converter XML --> JSON
-
- paths:
- # Top level directories:
- ## Working directory
- DIR[WORKING]: "_tmp"
- ## Build directories
- DIR[BUILD,JSON]: "_build"
-
- # Working directories
- ## Input data files (.zip, .xml)
- DIR[WORKING,DATA]: "{DIR[WORKING]}/data"
-
- # Data sources are used in this order:
- data-sources:
- # JSON from S3
- - type: "json"
- url: "https://logs.nginx.service.consul/vex-yul-rot-jenkins-1"
- path: "{job}/{build}/{filename}"
- file-name: "output.json.gz"
- file-format: ".gz"
- enabled: False
- # XML
- - type: "xml"
- url: "https://logs.nginx.service.consul/vex-yul-rot-jenkins-1"
- path: "{job}/{build}/archives/{filename}"
- file-name: "output_info.xml.gz"
- file-format: ".gz"
- enabled: True
- - type: "xml"
- url: "https://logs.nginx.service.consul/vex-yul-rot-jenkins-1"
- path: "{job}/{build}/{filename}"
- file-name: "output_info.xml.gz"
- file-format: ".gz"
- enabled: True
- - type: "xml"
- url: "https://logs.fd.io/production/vex-yul-rot-jenkins-1"
- path: "{job}/{build}/archives/{filename}"
- file-name: "output_info.xml.gz"
- file-format: ".gz"
- enabled: True
- - type: "xml"
- url: "https://s3-logs.fd.io/logs/production/vex-yul-rot-jenkins-1"
- path: "{job}/{build}/{filename}"
- file-name: "output_info.xml.gz"
- file-format: ".gz"
- enabled: True
- - type: "xml"
- url: "https://logs.fd.io/production/vex-yul-rot-jenkins-1"
- path: "{job}/{build}/archives/{filename}"
- file-name: "output.xml.gz"
- file-format: ".gz"
- enabled: True
- - type: "xml"
- url: "https://logs.nginx.service.consul/vex-yul-rot-jenkins-1"
- path: "{job}/{build}/archives/{filename}"
- file-name: "output.xml.gz"
- file-format: ".gz"
- enabled: True
- - type: "xml"
- url: "https://logs.nginx.service.consul/vex-yul-rot-jenkins-1"
- path: "{job}/{build}/{filename}"
- file-name: "output.xml.gz"
- file-format: ".gz"
- enabled: True
- - type: "xml"
- url: "https://logs.fd.io/production/vex-yul-rot-jenkins-1"
- path: "{job}/{build}/{filename}"
- file-name: "output_info.xml.gz"
- file-format: ".gz"
- enabled: True
- - type: "xml"
- url: "https://logs.fd.io/production/vex-yul-rot-jenkins-1"
- path: "{job}/{build}/{filename}"
- file-name: "output.xml.gz"
- file-format: ".gz"
- enabled: True
- # XML from docs.nexus
- - type: "xml-docs"
- url: "https://docs.fd.io/csit"
- path: "report/_static/archive"
- file-name: "output_info.xml.gz"
- file-format: ".gz"
- enabled: True
- - type: "xml-docs"
- url: "https://docs.fd.io/csit"
- path: "report/_static/archive"
- file-name: "output.xml.gz"
- file-format: ".gz"
- enabled: True
- - type: "xml-docs"
- url: "https://docs.fd.io/csit"
- path: "report/_static/archive"
- file-name: "robot-plugin.zip"
- file-format: ".zip"
- enabled: True
-
- make-dirs:
- # List the directories which are created while preparing the environment.
- # All directories MUST be defined in "paths" section.
- - "DIR[WORKING,DATA]"
-
- remove-dirs:
- # List the directories which are deleted while cleaning the environment.
- # All directories MUST be defined in "paths" section.
- - "DIR[WORKING,DATA]"
-
- build-dirs:
- # List the directories where the results (build) is stored.
- # All directories MUST be defined in "paths" section.
- - "DIR[BUILD,JSON]"
-
-################################################################################
-### O U T P U T ###
-################################################################################
-
-- type: "output"
- output: "convert-xml-to-json"
- # type: flat | structured
- # - flat - all .gz files in one directory
- # - structured - .gz files in directories structured as job/build/*.gz
- structure: "tree" # Use flat or tree
- use-template: "json/template_0.1.0.json"
diff --git a/resources/tools/presentation/specifications/converter/input.yaml b/resources/tools/presentation/specifications/converter/input.yaml
deleted file mode 100644
index 0cf765030d..0000000000
--- a/resources/tools/presentation/specifications/converter/input.yaml
+++ /dev/null
@@ -1,21 +0,0 @@
-################################################################################
-### I N P U T X M L F I L E S ###
-################################################################################
-
-# This is only an example for converter XML --> JSON
-
-- type: "input"
-
- # 3n-hsw
-
- builds:
- csit-vpp-perf-report-iterative-2101-3n-hsw:
- - 65 # rls2101.rel NDRPDR reconf iter env 6
- - 69 # rls2101.rel Hoststack iter env 6
- - 64 # rls2101.rel NDRPDR iter env 6
- - 63 # rls2101.rel MRR iter env 6
- csit-vpp-perf-report-iterative-2101-2n-skx:
- - 94 # rls2101.rel NDRPDR iter env 6
- - 68 # rls2101.rel soak env 6
- csit-vpp-device-2101-ubuntu1804-1n-skx:
- - 358 # rls2101.rel VPP DEV env 6
diff --git a/resources/tools/presentation/specifications/report/data_sets.yaml b/resources/tools/presentation/specifications/report/data_sets.yaml
deleted file mode 100644
index 5c71340f8d..0000000000
--- a/resources/tools/presentation/specifications/report/data_sets.yaml
+++ /dev/null
@@ -1,1812 +0,0 @@
-################################################################################
-### D A T A S E T S ###
-################################################################################
-
-- type: "data-sets"
-
- vpp-device-results-ubuntu:
- csit-vpp-device-2206-ubuntu2004-x86_64-1n-skx:
- - 267 # rls2206.rel VPP DEV env 10
-
-################################################################################
-
- # 3n-skx
-
- vpp-3n-skx-hist-iter-new-env:
- csit-vpp-perf-report-iterative-2202-3n-skx:
- - 6 # rls2110.rel NDRPDR iter env 9
- - 7 # rls2110.rel NDRPDR iter env 9
- - 8 # rls2110.rel NDRPDR iter env 9
- - 9 # rls2110.rel NDRPDR iter env 9
- - 10 # rls2110.rel NDRPDR iter env 9
- - 11 # rls2110.rel NDRPDR iter env 9
- - 12 # rls2110.rel NDRPDR iter env 9
- - 13 # rls2110.rel NDRPDR iter env 9
- - 14 # rls2110.rel NDRPDR iter env 9
- - 15 # rls2110.rel NDRPDR iter env 9
-
- vpp-3n-skx-prev-iter-old-env:
- csit-vpp-perf-report-iterative-2202-3n-skx:
- - 28 # rls2202.rel NDRPDR iter env 9
- - 37 # rls2202.rel NDRPDR iter env 9
- - 38 # rls2202.rel NDRPDR iter env 9
- - 39 # rls2202.rel NDRPDR iter env 9
- - 40 # rls2202.rel NDRPDR iter env 9
- - 42 # rls2202.rel NDRPDR iter env 9
- - 43 # rls2202.rel NDRPDR iter env 9
- - 44 # rls2202.rel NDRPDR iter env 9
- - 45 # rls2202.rel NDRPDR iter env 9
- - 48 # rls2202.rel NDRPDR iter env 9
-
- vpp-3n-skx-prev-iter-new-env:
- csit-vpp-perf-report-iterative-2206-3n-skx:
- - 5 # rls2202.rel NDRPDR iter env 10
- - 6 # rls2202.rel NDRPDR iter env 10
- - 7 # rls2202.rel NDRPDR iter env 10
- - 8 # rls2202.rel NDRPDR iter env 10
- - 9 # rls2202.rel NDRPDR iter env 10
- - 10 # rls2202.rel NDRPDR iter env 10
- - 11 # rls2202.rel NDRPDR iter env 10
- - 12 # rls2202.rel NDRPDR iter env 10
- - 13 # rls2202.rel NDRPDR iter env 10
- - 14 # rls2202.rel NDRPDR iter env 10
-
- vpp-3n-skx-curr-iter:
- csit-vpp-perf-report-iterative-2206-3n-skx:
- - 49 # rls2206.rel NDRPDR iter env 10
- - 55 # rls2206.rel NDRPDR iter env 10
- - 56 # rls2206.rel NDRPDR iter env 10
- - 57 # rls2206.rel NDRPDR iter env 10
- - 58 # rls2206.rel NDRPDR iter env 10
- - 59 # rls2206.rel NDRPDR iter env 10
- - 61 # rls2206.rel NDRPDR iter env 10
- - 62 # rls2206.rel NDRPDR iter env 10
- - 64 # rls2206.rel NDRPDR iter env 10
- - 65 # rls2206.rel NDRPDR iter env 10
-
- vpp-3n-skx-curr-iter-best:
- csit-vpp-perf-report-iterative-2206-3n-skx:
- - 49 # rls2206.rel NDRPDR iter env 10
-
- vpp-3n-skx-hist-iter-mrr-new-env:
- csit-vpp-perf-report-iterative-2202-3n-skx:
- - 4 # rls2110.rel MRR iter env 9
-
- vpp-3n-skx-prev-iter-mrr-old-env:
- csit-vpp-perf-report-iterative-2202-3n-skx:
- - 27 # rls2202.rel MRR iter env 9
-
- vpp-3n-skx-prev-iter-mrr-new-env:
- csit-vpp-perf-report-iterative-2206-3n-skx:
- - 4 # rls2202.rel MRR iter env 10
-
- vpp-3n-skx-curr-iter-mrr:
- csit-vpp-perf-report-iterative-2206-3n-skx:
- - 32 # rls2206.rel MRR iter env 10
-
- vpp-3n-skx-hist-iter-hoststack-new-env:
- csit-vpp-perf-report-iterative-2110-3n-skx:
- - 40 # rls2110.rel NDRPDR iter env 8
- - 41 # rls2110.rel NDRPDR iter env 8
- - 42 # rls2110.rel NDRPDR iter env 8
- - 43 # rls2110.rel NDRPDR iter env 8
- - 44 # rls2110.rel NDRPDR iter env 8
- - 45 # rls2110.rel NDRPDR iter env 8
- - 46 # rls2110.rel NDRPDR iter env 8
- - 47 # rls2110.rel NDRPDR iter env 8
- - 48 # rls2110.rel NDRPDR iter env 8
- - 49 # rls2110.rel NDRPDR iter env 8
-
- vpp-3n-skx-prev-iter-hoststack-old-env:
- csit-vpp-perf-report-iterative-2202-3n-skx:
- - 29 # rls2202.rel hoststack iter env 9
- - 30 # rls2202.rel hoststack iter env 9
- - 31 # rls2202.rel hoststack iter env 9
- - 32 # rls2202.rel hoststack iter env 9
- - 34 # rls2202.rel hoststack iter env 9
- - 35 # rls2202.rel hoststack iter env 9
- - 36 # rls2202.rel hoststack iter env 9
- - 41 # rls2202.rel hoststack iter env 9
- - 46 # rls2202.rel hoststack iter env 9
- - 47 # rls2202.rel hoststack iter env 9
-
- vpp-3n-skx-curr-iter-hoststack:
- csit-vpp-perf-report-iterative-2206-3n-skx:
- - 47 # rls2206.rel hoststack iter env 10
- - 54 # rls2206.rel hoststack iter env 10
- - 60 # rls2206.rel hoststack iter env 10
- - 63 # rls2206.rel hoststack iter env 10
- - 66 # rls2206.rel hoststack iter env 10
- - 67 # rls2206.rel hoststack iter env 10
- - 68 # rls2206.rel hoststack iter env 10
- - 69 # rls2206.rel hoststack iter env 10
- - 70 # rls2206.rel hoststack iter env 10
- - 71 # rls2206.rel hoststack iter env 10
-
- vpp-3n-skx-curr-cov:
- csit-vpp-perf-report-coverage-2206-3n-skx:
- - 1 # rls2206.rel NDRPDR cov env 10
- - 2 # rls2206.rel NDRPDR cov env 10
- - 3 # rls2206.rel NDRPDR cov env 10
- - 4 # rls2206.rel NDRPDR cov env 10
- - 5 # rls2206.rel NDRPDR cov env 10
- - 6 # rls2206.rel NDRPDR cov env 10
- - 7 # rls2206.rel NDRPDR cov env 10
- - 8 # rls2206.rel NDRPDR cov env 10
- - 9 # rls2206.rel NDRPDR cov env 10
- - 10 # rls2206.rel NDRPDR cov env 10
- - 11 # rls2206.rel NDRPDR cov env 10
- - 12 # rls2206.rel NDRPDR cov env 10
- - 13 # rls2206.rel NDRPDR cov env 10
- - 14 # rls2206.rel NDRPDR cov env 10
- - 15 # rls2206.rel NDRPDR cov env 10
- - 16 # rls2206.rel NDRPDR cov env 10
- - 17 # rls2206.rel NDRPDR cov env 10
- - 18 # rls2206.rel NDRPDR cov env 10
- - 19 # rls2206.rel NDRPDR cov env 10
- - 20 # rls2206.rel NDRPDR cov env 10
- - 21 # rls2206.rel NDRPDR cov env 10
- - 22 # rls2206.rel NDRPDR cov env 10
- - 23 # rls2206.rel NDRPDR cov env 10
- - 24 # rls2206.rel NDRPDR cov env 10
- - 25 # rls2206.rel NDRPDR cov env 10
- - 26 # rls2206.rel NDRPDR cov env 10
- - 27 # rls2206.rel NDRPDR cov env 10
- - 28 # rls2206.rel NDRPDR cov env 10
- - 29 # rls2206.rel NDRPDR cov env 10
- - 30 # rls2206.rel NDRPDR cov env 10
- - 31 # rls2206.rel NDRPDR cov env 10
- - 32 # rls2206.rel NDRPDR cov env 10
- - 33 # rls2206.rel NDRPDR cov env 10
- - 34 # rls2206.rel NDRPDR cov env 10
-
- dpdk-3n-skx-hist-iter:
- csit-dpdk-perf-report-iterative-2110-3n-skx:
- - 7 # rls2110 NDRPDR iter env 8
- - 8 # rls2110 NDRPDR iter env 8
- - 10 # rls2110 NDRPDR iter env 8
- - 15 # rls2110 NDRPDR iter env 8
- - 16 # rls2110 NDRPDR iter env 8
- - 17 # rls2110 NDRPDR iter env 8
- - 18 # rls2110 NDRPDR iter env 8
- - 19 # rls2110 NDRPDR iter env 8
- - 20 # rls2110 NDRPDR iter env 8
- - 21 # rls2110 NDRPDR iter env 8
-
- dpdk-3n-skx-prev-iter:
- csit-dpdk-perf-report-iterative-2202-3n-skx:
- - 12 # rls2202 NDRPDR iter env 9
- - 13 # rls2202 NDRPDR iter env 9
- - 14 # rls2202 NDRPDR iter env 9
- - 15 # rls2202 NDRPDR iter env 9
- - 16 # rls2202 NDRPDR iter env 9
- - 17 # rls2202 NDRPDR iter env 9
- - 18 # rls2202 NDRPDR iter env 9
- - 19 # rls2202 NDRPDR iter env 9
- - 20 # rls2202 NDRPDR iter env 9
- - 21 # rls2202 NDRPDR iter env 9
-
- dpdk-3n-skx-curr-iter:
- csit-dpdk-perf-report-iterative-2206-3n-skx:
- - 1 # rls2206 NDRPDR iter env 10
- - 2 # rls2206 NDRPDR iter env 10
- - 3 # rls2206 NDRPDR iter env 10
- - 4 # rls2206 NDRPDR iter env 10
- - 5 # rls2206 NDRPDR iter env 10
- - 6 # rls2206 NDRPDR iter env 10
- - 7 # rls2206 NDRPDR iter env 10
- - 8 # rls2206 NDRPDR iter env 10
- - 9 # rls2206 NDRPDR iter env 10
- - 10 # rls2206 NDRPDR iter env 10
-
- dpdk-3n-skx-curr-iter-best:
- csit-dpdk-perf-report-iterative-2206-3n-skx:
- - 1 # rls2206 NDRPDR iter env 10
-
- # 2n-skx
-
- vpp-2n-skx-hist-iter-new-env:
- csit-vpp-perf-report-iterative-2202-2n-skx:
- - 10 # rls2110.rel NDRPDR iter env 9
- - 11 # rls2110.rel NDRPDR iter env 9
- - 12 # rls2110.rel NDRPDR iter env 9
- - 13 # rls2110.rel NDRPDR iter env 9
- - 14 # rls2110.rel NDRPDR iter env 9
- - 15 # rls2110.rel NDRPDR iter env 9
- - 16 # rls2110.rel NDRPDR iter env 9
- - 17 # rls2110.rel NDRPDR iter env 9
- - 18 # rls2110.rel NDRPDR iter env 9
- - 19 # rls2110.rel NDRPDR iter env 9
-
- vpp-2n-skx-prev-iter-old-env:
- csit-vpp-perf-report-iterative-2202-2n-skx:
- - 41 # rls2202.rel NDRPDR iter env 9
- - 48 # rls2202.rel NDRPDR iter env 9
- - 49 # rls2202.rel NDRPDR iter env 9
- - 50 # rls2202.rel NDRPDR iter env 9
- - 51 # rls2202.rel NDRPDR iter env 9
- - 56 # rls2202.rel NDRPDR iter env 9
- - 63 # rls2202.rel NDRPDR iter env 9
- - 64 # rls2202.rel NDRPDR iter env 9
- - 68 # rls2202.rel NDRPDR iter env 9
- - 69 # rls2202.rel NDRPDR iter env 9
-
- vpp-2n-skx-prev-iter-new-env:
- csit-vpp-perf-report-iterative-2206-2n-skx:
- - 10 # rls2202.rel NDRPDR iter env 10
- - 11 # rls2202.rel NDRPDR iter env 10
- - 12 # rls2202.rel NDRPDR iter env 10
- - 13 # rls2202.rel NDRPDR iter env 10
- - 14 # rls2202.rel NDRPDR iter env 10
- - 15 # rls2202.rel NDRPDR iter env 10
- - 16 # rls2202.rel NDRPDR iter env 10
- - 17 # rls2202.rel NDRPDR iter env 10
- - 18 # rls2202.rel NDRPDR iter env 10
- - 19 # rls2202.rel NDRPDR iter env 10
- - 100 # rls2202.rel NDRPDR iter env 10 NA44
- - 101 # rls2202.rel NDRPDR iter env 10 NA44
- - 102 # rls2202.rel NDRPDR iter env 10 NA44
- - 103 # rls2202.rel NDRPDR iter env 10 NA44
- - 104 # rls2202.rel NDRPDR iter env 10 NA44
- - 105 # rls2202.rel NDRPDR iter env 10 NA44
- - 106 # rls2202.rel NDRPDR iter env 10 NA44
- - 107 # rls2202.rel NDRPDR iter env 10 NA44
- - 108 # rls2202.rel NDRPDR iter env 10 NA44
- - 109 # rls2202.rel NDRPDR iter env 10 NA44
-
- vpp-2n-skx-curr-iter:
- csit-vpp-perf-report-iterative-2206-2n-skx:
- - 59 # rls2206.rel NDRPDR iter env 10
- - 60 # rls2206.rel NDRPDR iter env 10
- - 61 # rls2206.rel NDRPDR iter env 10
- - 62 # rls2206.rel NDRPDR iter env 10
- - 63 # rls2206.rel NDRPDR iter env 10
- - 71 # rls2206.rel NDRPDR iter env 10
- - 72 # rls2206.rel NDRPDR iter env 10
- - 77 # rls2206.rel NDRPDR iter env 10
- - 79 # rls2206.rel NDRPDR iter env 10
- - 80 # rls2206.rel NDRPDR iter env 10
- - 89 # rls2206.rel NDRPDR iter env 10 NAT44
- - 90 # rls2206.rel NDRPDR iter env 10 NAT44
- - 91 # rls2206.rel NDRPDR iter env 10 NAT44
- - 92 # rls2206.rel NDRPDR iter env 10 NAT44
- - 93 # rls2206.rel NDRPDR iter env 10 NAT44
- - 94 # rls2206.rel NDRPDR iter env 10 NAT44
- - 95 # rls2206.rel NDRPDR iter env 10 NAT44
- - 96 # rls2206.rel NDRPDR iter env 10 NAT44
- - 97 # rls2206.rel NDRPDR iter env 10 NAT44
- - 98 # rls2206.rel NDRPDR iter env 10 NAT44
-
- vpp-2n-skx-curr-iter-best:
- csit-vpp-perf-report-iterative-2206-2n-skx:
- - 59 # rls2206.rel NDRPDR iter env 10
-
- vpp-2n-skx-hist-iter-mrr-new-env:
- csit-vpp-perf-report-iterative-2202-2n-skx:
- - 8 # rls2110.rel MRR iter env 9
-
- vpp-2n-skx-prev-iter-mrr-old-env:
- csit-vpp-perf-report-iterative-2202-2n-skx:
- - 40 # rls2202.rel MRR iter env 9
-
- vpp-2n-skx-prev-iter-mrr-new-env:
- csit-vpp-perf-report-iterative-2202-2n-skx:
- - 9 # rls2202.rel MRR iter env 10
- - 99 # rls2202.rel MRR iter env 10 NAT44
-
- vpp-2n-skx-curr-iter-mrr:
- csit-vpp-perf-report-iterative-2206-2n-skx:
- - 49 # rls2206.rel MRR iter env 10
- - 88 # rls2206.rel MRR iter env 10 NAT44
-
- vpp-2n-skx-curr-soak:
- csit-vpp-perf-report-iterative-2206-2n-skx:
- - 58 # rls2206.rel soak env 10
- - 69 # rls2206.rel soak env 10
- vpp-soak-vs-ndr-2n-skx-ref:
- csit-vpp-perf-report-iterative-2206-2n-skx:
- - 59 # rls2206.rel NDRPDR iter env 10
- - 60 # rls2206.rel NDRPDR iter env 10
- - 61 # rls2206.rel NDRPDR iter env 10
- - 62 # rls2206.rel NDRPDR iter env 10
- - 63 # rls2206.rel NDRPDR iter env 10
- - 71 # rls2206.rel NDRPDR iter env 10
- - 72 # rls2206.rel NDRPDR iter env 10
- - 77 # rls2206.rel NDRPDR iter env 10
- - 79 # rls2206.rel NDRPDR iter env 10
- - 80 # rls2206.rel NDRPDR iter env 10
- vpp-soak-vs-ndr-2n-skx:
- csit-vpp-perf-report-iterative-2206-2n-skx:
- - 59 # rls2206.rel NDRPDR iter env 10
- - 60 # rls2206.rel NDRPDR iter env 10
- - 61 # rls2206.rel NDRPDR iter env 10
- - 62 # rls2206.rel NDRPDR iter env 10
- - 63 # rls2206.rel NDRPDR iter env 10
- - 71 # rls2206.rel NDRPDR iter env 10
- - 72 # rls2206.rel NDRPDR iter env 10
- - 77 # rls2206.rel NDRPDR iter env 10
- - 79 # rls2206.rel NDRPDR iter env 10
- - 80 # rls2206.rel NDRPDR iter env 10
- - 58 # rls2206.rel soak env 10
- - 69 # rls2206.rel soak env 10
-
- vpp-2n-skx-curr-nfv-ndrpdr:
- csit-vpp-perf-report-iterative-2206-2n-skx:
- - 56 # rls2206.rel NDRPDR nf-density iter env 10
- - 64 # rls2206.rel NDRPDR nf-density iter env 10
- - 65 # rls2206.rel NDRPDR nf-density iter env 10
- - 67 # rls2206.rel NDRPDR nf-density iter env 10
- - 70 # rls2206.rel NDRPDR nf-density iter env 10
- - 73 # rls2206.rel NDRPDR nf-density iter env 10
- - 75 # rls2206.rel NDRPDR nf-density iter env 10
- - 78 # rls2206.rel NDRPDR nf-density iter env 10
- - 81 # rls2206.rel NDRPDR nf-density iter env 10
- - 82 # rls2206.rel NDRPDR nf-density iter env 10
-
- vpp-2n-skx-curr-nfv-mrr:
- csit-vpp-perf-report-iterative-2206-2n-skx:
- - 51 # rls2206.rel MRR nf-density iter env 10
-
- vpp-2n-skx-curr-nfv-reconf:
- csit-vpp-perf-report-iterative-2206-2n-skx:
- - 57 # rls2206.rel NDRPDR reconf iter env 10
- - 66 # rls2206.rel NDRPDR reconf iter env 10
- - 68 # rls2206.rel NDRPDR reconf iter env 10
- - 74 # rls2206.rel NDRPDR reconf iter env 10
- - 76 # rls2206.rel NDRPDR reconf iter env 10
- - 83 # rls2206.rel NDRPDR reconf iter env 10
- - 84 # rls2206.rel NDRPDR reconf iter env 10
- - 85 # rls2206.rel NDRPDR reconf iter env 10
- - 86 # rls2206.rel NDRPDR reconf iter env 10
- - 87 # rls2206.rel NDRPDR reconf iter env 10
-
- vpp-2n-skx-curr-iter-gso:
- csit-vpp-perf-report-iterative-2206-2n-skx:
- - 54 # rls2206.rel MRR GSO iter env 10
-
- vpp-2n-skx-curr-cov:
- csit-vpp-perf-report-coverage-2206-2n-skx:
- - 1 # rls2206.rel NDRPDR cov env 10
- - 2 # rls2206.rel NDRPDR cov env 10
- - 3 # rls2206.rel NDRPDR cov env 10
- - 4 # rls2206.rel NDRPDR cov env 10
- - 5 # rls2206.rel NDRPDR cov env 10
- - 6 # rls2206.rel NDRPDR cov env 10
- - 7 # rls2206.rel NDRPDR cov env 10
- - 8 # rls2206.rel NDRPDR cov env 10
- - 9 # rls2206.rel NDRPDR cov env 10
- - 10 # rls2206.rel NDRPDR cov env 10
- - 11 # rls2206.rel NDRPDR cov env 10
- - 12 # rls2206.rel NDRPDR cov env 10
- - 13 # rls2206.rel NDRPDR cov env 10
- - 14 # rls2206.rel NDRPDR cov env 10
- - 15 # rls2206.rel NDRPDR cov env 10
- - 16 # rls2206.rel NDRPDR cov env 10
- - 17 # rls2206.rel NDRPDR cov env 10
-
- dpdk-2n-skx-hist-iter:
- csit-dpdk-perf-report-iterative-2110-2n-skx:
- - 11 # rls2110 NDRPDR iter env 8
- - 12 # rls2110 NDRPDR iter env 8
- - 13 # rls2110 NDRPDR iter env 8
- - 14 # rls2110 NDRPDR iter env 8
- - 15 # rls2110 NDRPDR iter env 8
- - 16 # rls2110 NDRPDR iter env 8
- - 17 # rls2110 NDRPDR iter env 8
- - 18 # rls2110 NDRPDR iter env 8
- - 19 # rls2110 NDRPDR iter env 8
- - 20 # rls2110 NDRPDR iter env 8
-
- dpdk-2n-skx-prev-iter:
- csit-dpdk-perf-report-iterative-2202-2n-skx:
- - 11 # rls2202 NDRPDR iter env 9
- - 13 # rls2202 NDRPDR iter env 9
- - 14 # rls2202 NDRPDR iter env 9
- - 15 # rls2202 NDRPDR iter env 9
- - 16 # rls2202 NDRPDR iter env 9
- - 17 # rls2202 NDRPDR iter env 9
- - 18 # rls2202 NDRPDR iter env 9
- - 19 # rls2202 NDRPDR iter env 9
- - 20 # rls2202 NDRPDR iter env 9
- - 21 # rls2202 NDRPDR iter env 9
-
- dpdk-2n-skx-curr-iter:
- csit-dpdk-perf-report-iterative-2206-2n-skx:
- - 1 # rls2206 NDRPDR iter env 10
- - 2 # rls2206 NDRPDR iter env 10
- - 3 # rls2206 NDRPDR iter env 10
- - 4 # rls2206 NDRPDR iter env 10
- - 5 # rls2206 NDRPDR iter env 10
- - 6 # rls2206 NDRPDR iter env 10
- - 7 # rls2206 NDRPDR iter env 10
- - 8 # rls2206 NDRPDR iter env 10
- - 9 # rls2206 NDRPDR iter env 10
- - 10 # rls2206 NDRPDR iter env 10
-
- dpdk-2n-skx-curr-iter-best:
- csit-dpdk-perf-report-iterative-2206-2n-skx:
- - 1 # rls2206 NDRPDR iter env 10
-
- trex-2n-skx-hist-iter:
- csit-trex-perf-report-iterative-2110-2n-skx:
- - 8 # rls2110.rel NDRPDR iter env 8
- - 9 # rls2110.rel NDRPDR iter env 8
- - 10 # rls2110.rel NDRPDR iter env 8
- - 11 # rls2110.rel NDRPDR iter env 8
- - 12 # rls2110.rel NDRPDR iter env 8
- - 13 # rls2110.rel NDRPDR iter env 8
- - 14 # rls2110.rel NDRPDR iter env 8
- - 15 # rls2110.rel NDRPDR iter env 8
- - 16 # rls2110.rel NDRPDR iter env 8
- - 17 # rls2110.rel NDRPDR iter env 8
-
- trex-2n-skx-prev-iter:
- csit-trex-perf-report-iterative-2202-2n-skx:
- - 1 # rls2202.rel NDRPDR iter env 9
- - 2 # rls2202.rel NDRPDR iter env 9
- - 3 # rls2202.rel NDRPDR iter env 9
- - 4 # rls2202.rel NDRPDR iter env 9
- - 5 # rls2202.rel NDRPDR iter env 9
- - 6 # rls2202.rel NDRPDR iter env 9
- - 7 # rls2202.rel NDRPDR iter env 9
- - 8 # rls2202.rel NDRPDR iter env 9
- - 9 # rls2202.rel NDRPDR iter env 9
- - 10 # rls2202.rel NDRPDR iter env 9
-
- trex-2n-skx-curr-iter:
- csit-trex-perf-report-iterative-2206-2n-skx:
- - 1 # rls2206.rel NDRPDR iter env 10
- - 2 # rls2206.rel NDRPDR iter env 10
- - 3 # rls2206.rel NDRPDR iter env 10
- - 4 # rls2206.rel NDRPDR iter env 10
- - 5 # rls2206.rel NDRPDR iter env 10
- - 6 # rls2206.rel NDRPDR iter env 10
- - 7 # rls2206.rel NDRPDR iter env 10
- - 8 # rls2206.rel NDRPDR iter env 10
- - 9 # rls2206.rel NDRPDR iter env 10
- - 10 # rls2206.rel NDRPDR iter env 10
-
- trex-2n-skx-curr-iter-best:
- csit-trex-perf-report-iterative-2206-2n-skx:
- - 1 # rls2206.rel NDRPDR iter env 10
-
- trex-2n-skx-curr-cov:
- csit-trex-perf-report-coverage-2206-2n-skx:
- - 1 # rls2206.rel NDRPDR cov env 10
-
- # 2n-zn2
-
- vpp-2n-zn2-hist-iter-new-env:
- csit-vpp-perf-report-iterative-2202-2n-zn2:
- - 6 # rls2110.rel NDRPDR iter env 9
- - 7 # rls2110.rel NDRPDR iter env 9
- - 8 # rls2110.rel NDRPDR iter env 9
- - 9 # rls2110.rel NDRPDR iter env 9
- - 10 # rls2110.rel NDRPDR iter env 9
- - 11 # rls2110.rel NDRPDR iter env 9
- - 12 # rls2110.rel NDRPDR iter env 9
- - 13 # rls2110.rel NDRPDR iter env 9
- - 14 # rls2110.rel NDRPDR iter env 9
- - 15 # rls2110.rel NDRPDR iter env 9
-
- vpp-2n-zn2-prev-iter-old-env:
- csit-vpp-perf-report-iterative-2202-2n-zn2:
- - 24 # rls2202.rel NDRPDR iter env 9
- - 26 # rls2202.rel NDRPDR iter env 9
- - 27 # rls2202.rel NDRPDR iter env 9
- - 28 # rls2202.rel NDRPDR iter env 9
- - 29 # rls2202.rel NDRPDR iter env 9
- - 30 # rls2202.rel NDRPDR iter env 9
- - 31 # rls2202.rel NDRPDR iter env 9
- - 32 # rls2202.rel NDRPDR iter env 9
- - 33 # rls2202.rel NDRPDR iter env 9
- - 34 # rls2202.rel NDRPDR iter env 9
-
- vpp-2n-zn2-prev-iter-new-env:
- csit-vpp-perf-report-iterative-2206-2n-zn2:
- - 6 # rls2202.rel NDRPDR iter env 10
- - 7 # rls2202.rel NDRPDR iter env 10
- - 19 # rls2202.rel NDRPDR iter env 10
- - 23 # rls2202.rel NDRPDR iter env 10
- - 24 # rls2202.rel NDRPDR iter env 10
- - 25 # rls2202.rel NDRPDR iter env 10
- - 26 # rls2202.rel NDRPDR iter env 10
- - 28 # rls2202.rel NDRPDR iter env 10
- - 29 # rls2202.rel NDRPDR iter env 10
- - 30 # rls2202.rel NDRPDR iter env 10
-
- vpp-2n-zn2-curr-iter:
- csit-vpp-perf-report-iterative-2206-2n-zn2:
- - 47 # rls2206.rel NDRPDR iter env 10
- - 48 # rls2206.rel NDRPDR iter env 10
- - 49 # rls2206.rel NDRPDR iter env 10
- - 50 # rls2206.rel NDRPDR iter env 10
- - 51 # rls2206.rel NDRPDR iter env 10
- - 52 # rls2206.rel NDRPDR iter env 10
- - 53 # rls2206.rel NDRPDR iter env 10
- - 54 # rls2206.rel NDRPDR iter env 10
- - 55 # rls2206.rel NDRPDR iter env 10
- - 56 # rls2206.rel NDRPDR iter env 10
-
- vpp-2n-zn2-curr-iter-best:
- csit-vpp-perf-report-iterative-2206-2n-zn2:
- - 51 # rls2206.rel NDRPDR iter env 10
-
- vpp-2n-zn2-curr-iter-gso:
- csit-vpp-perf-report-iterative-2206-2n-zn2:
- - 46 # rls2206.rel MRR GSO iter env 10
-
- vpp-2n-zn2-hist-iter-mrr-new-env:
- csit-vpp-perf-report-iterative-2202-2n-zn2:
- - 4 # rls2110.rel MRR iter env 9
-
- vpp-2n-zn2-prev-iter-mrr-old-env:
- csit-vpp-perf-report-iterative-2202-2n-zn2:
- - 23 # rls2202.rel MRR iter env 9
-
- vpp-2n-zn2-prev-iter-mrr-new-env:
- csit-vpp-perf-report-iterative-2206-2n-zn2:
- - 22 # rls2202.rel MRR iter env 10
-
- vpp-2n-zn2-curr-iter-mrr:
- csit-vpp-perf-report-iterative-2206-2n-zn2:
- - 43 # rls2202.rel MRR iter env 10
-
- vpp-2n-zn2-curr-cov:
- csit-vpp-perf-report-coverage-2206-2n-zn2:
- - 1 # rls2206.rel NDRPDR cov env 10
- - 2 # rls2206.rel NDRPDR cov env 10
- - 3 # rls2206.rel NDRPDR cov env 10
- - 4 # rls2206.rel NDRPDR cov env 10
- - 5 # rls2206.rel NDRPDR cov env 10
- - 6 # rls2206.rel NDRPDR cov env 10
- - 7 # rls2206.rel NDRPDR cov env 10
- - 8 # rls2206.rel NDRPDR cov env 10
- - 9 # rls2206.rel NDRPDR cov env 10
- - 10 # rls2206.rel NDRPDR cov env 10
- - 11 # rls2206.rel NDRPDR cov env 10
- - 12 # rls2206.rel NDRPDR cov env 10
- - 13 # rls2206.rel NDRPDR cov env 10
- - 14 # rls2206.rel NDRPDR cov env 10
- - 15 # rls2206.rel NDRPDR cov env 10
-
- dpdk-2n-zn2-hist-iter:
- csit-dpdk-perf-report-iterative-2110-2n-zn2:
- - 24 # rls2110 NDRPDR iter env 8
- - 25 # rls2110 NDRPDR iter env 8
- - 26 # rls2110 NDRPDR iter env 8
- - 27 # rls2110 NDRPDR iter env 8
- - 28 # rls2110 NDRPDR iter env 8
- - 29 # rls2110 NDRPDR iter env 8
- - 30 # rls2110 NDRPDR iter env 8
- - 31 # rls2110 NDRPDR iter env 8
- - 32 # rls2110 NDRPDR iter env 8
- - 33 # rls2110 NDRPDR iter env 8
-
- dpdk-2n-zn2-prev-iter:
- csit-dpdk-perf-report-iterative-2202-2n-zn2:
- - 12 # rls2202 NDRPDR iter env 9
- - 14 # rls2202 NDRPDR iter env 9
- - 15 # rls2202 NDRPDR iter env 9
- - 16 # rls2202 NDRPDR iter env 9
- - 17 # rls2202 NDRPDR iter env 9
- - 18 # rls2202 NDRPDR iter env 9
- - 19 # rls2202 NDRPDR iter env 9
- - 20 # rls2202 NDRPDR iter env 9
- - 21 # rls2202 NDRPDR iter env 9
- - 22 # rls2202 NDRPDR iter env 9
-
- dpdk-2n-zn2-curr-iter:
- csit-dpdk-perf-report-iterative-2206-2n-zn2:
- - 1 # rls2206 NDRPDR iter env 10
- - 3 # rls2206 NDRPDR iter env 10
- - 4 # rls2206 NDRPDR iter env 10
- - 5 # rls2206 NDRPDR iter env 10
- - 6 # rls2206 NDRPDR iter env 10
- - 8 # rls2206 NDRPDR iter env 10
- - 9 # rls2206 NDRPDR iter env 10
- - 10 # rls2206 NDRPDR iter env 10
- - 12 # rls2206 NDRPDR iter env 10
- - 13 # rls2206 NDRPDR iter env 10
-
- dpdk-2n-zn2-curr-iter-best:
- csit-dpdk-perf-report-iterative-2206-2n-zn2:
- - 1 # rls2206 NDRPDR iter env 10
-
- # 2n-clx
-
- vpp-2n-clx-hist-iter-new-env:
- csit-vpp-perf-report-iterative-2202-2n-clx:
- - 11 # rls2110.rel NDRPDR iter env 9
- - 12 # rls2110.rel NDRPDR iter env 9
- - 13 # rls2110.rel NDRPDR iter env 9
- - 14 # rls2110.rel NDRPDR iter env 9
- - 15 # rls2110.rel NDRPDR iter env 9
- - 16 # rls2110.rel NDRPDR iter env 9
- - 18 # rls2110.rel NDRPDR iter env 9
- - 20 # rls2110.rel NDRPDR iter env 9
- - 21 # rls2110.rel NDRPDR iter env 9
- - 22 # rls2110.rel NDRPDR iter env 9
-
- vpp-2n-clx-prev-iter-old-env:
- csit-vpp-perf-report-iterative-2202-2n-clx:
- - 49 # rls2202.rel NDRPDR iter env 9
- - 61 # rls2202.rel NDRPDR iter env 9
- - 62 # rls2202.rel NDRPDR iter env 9
- - 63 # rls2202.rel NDRPDR iter env 9
- - 64 # rls2202.rel NDRPDR iter env 9
- - 71 # rls2202.rel NDRPDR iter env 9
- - 78 # rls2202.rel NDRPDR iter env 9
- - 79 # rls2202.rel NDRPDR iter env 9
- - 83 # rls2202.rel NDRPDR iter env 9
- - 84 # rls2202.rel NDRPDR iter env 9
-
- vpp-2n-clx-prev-iter-new-env:
- csit-vpp-perf-report-iterative-2206-2n-clx:
- - 44 # rls2202.rel NDRPDR iter env 10
- - 86 # rls2202.rel NDRPDR iter env 10
- - 89 # rls2202.rel NDRPDR iter env 10
- - 90 # rls2202.rel NDRPDR iter env 10
- - 91 # rls2202.rel NDRPDR iter env 10
- - 92 # rls2202.rel NDRPDR iter env 10
- - 93 # rls2202.rel NDRPDR iter env 10
- - 94 # rls2202.rel NDRPDR iter env 10
- - 95 # rls2202.rel NDRPDR iter env 10
- - 96 # rls2202.rel NDRPDR iter env 10
- - 161 # rls2202.rel NDRPDR iter env 10 NAT44
- - 162 # rls2202.rel NDRPDR iter env 10 NAT44
- - 163 # rls2202.rel NDRPDR iter env 10 NAT44
- - 164 # rls2202.rel NDRPDR iter env 10 NAT44
- - 165 # rls2202.rel NDRPDR iter env 10 NAT44
- - 166 # rls2202.rel NDRPDR iter env 10 NAT44
- - 167 # rls2202.rel NDRPDR iter env 10 NAT44
- - 168 # rls2202.rel NDRPDR iter env 10 NAT44
- - 169 # rls2202.rel NDRPDR iter env 10 NAT44
- - 170 # rls2202.rel NDRPDR iter env 10 NAT44
-
- vpp-2n-clx-curr-iter:
- csit-vpp-perf-report-iterative-2206-2n-clx:
- - 113 # rls2206.rel NDRPDR iter env 10
- - 114 # rls2206.rel NDRPDR iter env 10
- - 115 # rls2206.rel NDRPDR iter env 10
- - 116 # rls2206.rel NDRPDR iter env 10
- - 117 # rls2206.rel NDRPDR iter env 10
- - 123 # rls2206.rel NDRPDR iter env 10
- - 124 # rls2206.rel NDRPDR iter env 10
- - 126 # rls2206.rel NDRPDR iter env 10
- - 129 # rls2206.rel NDRPDR iter env 10
- - 130 # rls2206.rel NDRPDR iter env 10
- - 150 # rls2206.rel NDRPDR iter env 10 NAT44
- - 151 # rls2206.rel NDRPDR iter env 10 NAT44
- - 152 # rls2206.rel NDRPDR iter env 10 NAT44
- - 153 # rls2206.rel NDRPDR iter env 10 NAT44
- - 154 # rls2206.rel NDRPDR iter env 10 NAT44
- - 155 # rls2206.rel NDRPDR iter env 10 NAT44
- - 156 # rls2206.rel NDRPDR iter env 10 NAT44
- - 157 # rls2206.rel NDRPDR iter env 10 NAT44
- - 158 # rls2206.rel NDRPDR iter env 10 NAT44
- - 159 # rls2206.rel NDRPDR iter env 10 NAT44
-
- vpp-2n-clx-curr-iter-best:
- csit-vpp-perf-report-iterative-2206-2n-clx:
- - 116 # rls2206.rel NDRPDR iter env 10
-
- vpp-2n-clx-hist-iter-mrr-new-env:
- csit-vpp-perf-report-iterative-2202-2n-clx:
- - 8 # rls2110.rel MRR iter env 9
-
- vpp-2n-clx-prev-iter-mrr-old-env:
- csit-vpp-perf-report-iterative-2202-2n-clx:
- - 48 # rls2202.rel MRR iter env 9
-
- vpp-2n-clx-prev-iter-mrr-new-env:
- csit-vpp-perf-report-iterative-2206-2n-clx:
- - 43 # rls2202.rel MRR iter env 10
- - 160 # rls2202.rel MRR iter env 10 NAT44
-
- vpp-2n-clx-curr-iter-mrr:
- csit-vpp-perf-report-iterative-2206-2n-clx:
- - 97 # rls2206.rel MRR iter env 10
- - 149 # rls2206.rel MRR iter env 10 NAT44
-
- vpp-2n-clx-curr-iter-gso:
- csit-vpp-perf-report-iterative-2206-2n-clx:
- - 108 # rls2206.rel MRR GSO iter env 10
-
- vpp-2n-clx-hist-iter-vsap-new-env:
- csit-vpp-perf-report-iterative-2110-2n-clx:
- - 95 # rls2110.rel VSAP iter env 8
- - 96 # rls2110.rel VSAP iter env 8
- - 97 # rls2110.rel VSAP iter env 8
- - 98 # rls2110.rel VSAP iter env 8
- - 99 # rls2110.rel VSAP iter env 8
- - 101 # rls2110.rel VSAP iter env 8
- - 104 # rls2110.rel VSAP iter env 8
- - 105 # rls2110.rel VSAP iter env 8
- - 106 # rls2110.rel VSAP iter env 8
- - 107 # rls2110.rel VSAP iter env 8
-
- vpp-2n-clx-curr-iter-vsap-old-env:
- csit-vpp-perf-report-iterative-2202-2n-clx:
- - 55 # rls2202.rel VSAP iter env 9
- - 56 # rls2202.rel VSAP iter env 9
- - 57 # rls2202.rel VSAP iter env 9
- - 58 # rls2202.rel VSAP iter env 9
- - 59 # rls2202.rel VSAP iter env 9
- - 60 # rls2202.rel VSAP iter env 9
- - 68 # rls2202.rel VSAP iter env 9
- - 69 # rls2202.rel VSAP iter env 9
- - 70 # rls2202.rel VSAP iter env 9
- - 85 # rls2202.rel VSAP iter env 9
-
- vpp-2n-clx-curr-iter-vsap:
- csit-vpp-perf-report-iterative-2206-2n-clx:
- - 104 # rls2206.rel VSAP iter env 10
- - 112 # rls2206.rel VSAP iter env 10
- - 125 # rls2206.rel VSAP iter env 10
- - 128 # rls2206.rel VSAP iter env 10
- - 135 # rls2206.rel VSAP iter env 10
- - 144 # rls2206.rel VSAP iter env 10
- - 145 # rls2206.rel VSAP iter env 10
- - 146 # rls2206.rel VSAP iter env 10
- - 147 # rls2206.rel VSAP iter env 10
- - 148 # rls2206.rel VSAP iter env 10
-
- vpp-2n-clx-curr-nfv-ndrpdr:
- csit-vpp-perf-report-iterative-2206-2n-clx:
- - 109 # rls2206.rel NDRPDR nf-density iter env 10
- - 118 # rls2206.rel NDRPDR nf-density iter env 10
- - 119 # rls2206.rel NDRPDR nf-density iter env 10
- - 121 # rls2206.rel NDRPDR nf-density iter env 10
- - 133 # rls2206.rel NDRPDR nf-density iter env 10
- - 139 # rls2206.rel NDRPDR nf-density iter env 10
- - 140 # rls2206.rel NDRPDR nf-density iter env 10
- - 141 # rls2206.rel NDRPDR nf-density iter env 10
- - 142 # rls2206.rel NDRPDR nf-density iter env 10
- - 143 # rls2206.rel NDRPDR nf-density iter env 10
-
- vpp-2n-clx-curr-nfv-mrr:
- csit-vpp-perf-report-iterative-2206-2n-clx:
- - 99 # rls2206.rel NDRPDR nf-density iter env 10
-
- vpp-2n-clx-curr-nfv-reconf:
- csit-vpp-perf-report-iterative-2206-2n-clx:
- - 101 # rls2206.rel NDRPDR reconf iter env 10
- - 110 # rls2206.rel NDRPDR reconf iter env 10
- - 120 # rls2206.rel NDRPDR reconf iter env 10
- - 122 # rls2206.rel NDRPDR reconf iter env 10
- - 127 # rls2206.rel NDRPDR reconf iter env 10
- - 131 # rls2206.rel NDRPDR reconf iter env 10
- - 132 # rls2206.rel NDRPDR reconf iter env 10
- - 134 # rls2206.rel NDRPDR reconf iter env 10
- - 136 # rls2206.rel NDRPDR reconf iter env 10
- - 138 # rls2206.rel NDRPDR reconf iter env 10
-
- vpp-2n-clx-curr-soak:
- csit-vpp-perf-report-iterative-2206-2n-clx:
- - 111 # rls2206.rel soak env 10
- - 137 # rls2206.rel soak env 10
- vpp-soak-vs-ndr-2n-clx-ref:
- csit-vpp-perf-report-iterative-2206-2n-clx:
- - 113 # rls2206.rel NDRPDR iter env 10
- - 114 # rls2206.rel NDRPDR iter env 10
- - 115 # rls2206.rel NDRPDR iter env 10
- - 116 # rls2206.rel NDRPDR iter env 10
- - 117 # rls2206.rel NDRPDR iter env 10
- - 123 # rls2206.rel NDRPDR iter env 10
- - 124 # rls2206.rel NDRPDR iter env 10
- - 126 # rls2206.rel NDRPDR iter env 10
- - 129 # rls2206.rel NDRPDR iter env 10
- - 130 # rls2206.rel NDRPDR iter env 10
- vpp-soak-vs-ndr-2n-clx:
- csit-vpp-perf-report-iterative-2206-2n-clx:
- - 113 # rls2206.rel NDRPDR iter env 10
- - 114 # rls2206.rel NDRPDR iter env 10
- - 115 # rls2206.rel NDRPDR iter env 10
- - 116 # rls2206.rel NDRPDR iter env 10
- - 117 # rls2206.rel NDRPDR iter env 10
- - 123 # rls2206.rel NDRPDR iter env 10
- - 124 # rls2206.rel NDRPDR iter env 10
- - 126 # rls2206.rel NDRPDR iter env 10
- - 129 # rls2206.rel NDRPDR iter env 10
- - 130 # rls2206.rel NDRPDR iter env 10
- - 111 # rls2206.rel soak env 10
- - 137 # rls2206.rel soak env 10
-
- vpp-2n-clx-curr-cov:
- csit-vpp-perf-report-coverage-2206-2n-clx:
- - 4 # rls2206.rel NDRPDR cov env 10
- - 5 # rls2206.rel NDRPDR cov env 10
- - 6 # rls2206.rel NDRPDR cov env 10
- - 7 # rls2206.rel NDRPDR cov env 10
- - 8 # rls2206.rel NDRPDR cov env 10
- - 9 # rls2206.rel NDRPDR cov env 10
- - 10 # rls2206.rel NDRPDR cov env 10
- - 11 # rls2206.rel NDRPDR cov env 10
- - 12 # rls2206.rel NDRPDR cov env 10
- - 13 # rls2206.rel NDRPDR cov env 10
- - 14 # rls2206.rel NDRPDR cov env 10
- - 15 # rls2206.rel NDRPDR cov env 10
- - 16 # rls2206.rel NDRPDR cov env 10
- - 17 # rls2206.rel NDRPDR cov env 10
- - 18 # rls2206.rel NDRPDR cov env 10
- - 19 # rls2206.rel NDRPDR cov env 10
- - 20 # rls2206.rel NDRPDR cov env 10
-
- dpdk-2n-clx-hist-iter:
- csit-dpdk-perf-report-iterative-2110-2n-clx:
- - 5 # rls2110 NDRPDR iter env 8
- - 6 # rls2110 NDRPDR iter env 8
- - 7 # rls2110 NDRPDR iter env 8
- - 8 # rls2110 NDRPDR iter env 8
- - 10 # rls2110 NDRPDR iter env 8
- - 14 # rls2110 NDRPDR iter env 8
- - 15 # rls2110 NDRPDR iter env 8
- - 16 # rls2110 NDRPDR iter env 8
- - 17 # rls2110 NDRPDR iter env 8
- - 18 # rls2110 NDRPDR iter env 8
-
- dpdk-2n-clx-prev-iter:
- csit-dpdk-perf-report-iterative-2202-2n-clx:
- - 11 # rls2202 NDRPDR iter env 9
- - 12 # rls2202 NDRPDR iter env 9
- - 13 # rls2202 NDRPDR iter env 9
- - 14 # rls2202 NDRPDR iter env 9
- - 15 # rls2202 NDRPDR iter env 9
- - 16 # rls2202 NDRPDR iter env 9
- - 17 # rls2202 NDRPDR iter env 9
- - 18 # rls2202 NDRPDR iter env 9
- - 19 # rls2202 NDRPDR iter env 9
- - 20 # rls2202 NDRPDR iter env 9
-
- dpdk-2n-clx-curr-iter:
- csit-dpdk-perf-report-iterative-2206-2n-clx:
- - 15 # rls2206 NDRPDR iter env 10
- - 17 # rls2206 NDRPDR iter env 10
- - 18 # rls2206 NDRPDR iter env 10
- - 22 # rls2206 NDRPDR iter env 10
- - 23 # rls2206 NDRPDR iter env 10
- - 24 # rls2206 NDRPDR iter env 10
- - 25 # rls2206 NDRPDR iter env 10
- - 26 # rls2206 NDRPDR iter env 10
- - 27 # rls2206 NDRPDR iter env 10
- - 28 # rls2206 NDRPDR iter env 10
-
- dpdk-2n-clx-curr-iter-best:
- csit-dpdk-perf-report-iterative-2206-2n-clx:
- - 22 # rls2206 NDRPDR iter env 10
-
- # 3n-tsh
-
- vpp-3n-tsh-hist-iter-new-env:
- csit-vpp-perf-report-iterative-2202-3n-tsh:
- - 5 # rls2110.rel NDRPDR iter env 9
- - 7 # rls2110.rel NDRPDR iter env 9
- - 9 # rls2110.rel NDRPDR iter env 9
- - 10 # rls2110.rel NDRPDR iter env 9
- - 11 # rls2110.rel NDRPDR iter env 9
- - 12 # rls2110.rel NDRPDR iter env 9
- - 13 # rls2110.rel NDRPDR iter env 9
- - 14 # rls2110.rel NDRPDR iter env 9
- - 15 # rls2110.rel NDRPDR iter env 9
- - 16 # rls2110.rel NDRPDR iter env 9
-
- vpp-3n-tsh-prev-iter-old-env:
- csit-vpp-perf-report-iterative-2202-3n-tsh:
- - 24 # rls2202.rel NDRPDR iter env 9
- - 25 # rls2202.rel NDRPDR iter env 9
- - 26 # rls2202.rel NDRPDR iter env 9
- - 27 # rls2202.rel NDRPDR iter env 9
- - 28 # rls2202.rel NDRPDR iter env 9
- - 29 # rls2202.rel NDRPDR iter env 9
- - 30 # rls2202.rel NDRPDR iter env 9
- - 31 # rls2202.rel NDRPDR iter env 9
- - 32 # rls2202.rel NDRPDR iter env 9
- - 33 # rls2202.rel NDRPDR iter env 9
-
- vpp-3n-tsh-prev-iter-new-env:
- csit-vpp-perf-report-iterative-2206-3n-tsh:
- - 4 # rls2202.rel NDRPDR iter env 10
- - 5 # rls2202.rel NDRPDR iter env 10
- - 6 # rls2202.rel NDRPDR iter env 10
- - 9 # rls2202.rel NDRPDR iter env 10
- - 12 # rls2202.rel NDRPDR iter env 10
- - 14 # rls2202.rel NDRPDR iter env 10
- - 15 # rls2202.rel NDRPDR iter env 10
- - 16 # rls2202.rel NDRPDR iter env 10
- - 17 # rls2202.rel NDRPDR iter env 10
- - 18 # rls2202.rel NDRPDR iter env 10
-
- vpp-3n-tsh-curr-iter:
- csit-vpp-perf-report-iterative-2206-3n-tsh:
- - 37 # rls2206.rel NDRPDR iter env 10
- - 38 # rls2206.rel NDRPDR iter env 10
- - 39 # rls2206.rel NDRPDR iter env 10
- - 40 # rls2206.rel NDRPDR iter env 10
- - 41 # rls2206.rel NDRPDR iter env 10
- - 42 # rls2206.rel NDRPDR iter env 10
- - 43 # rls2206.rel NDRPDR iter env 10
- - 44 # rls2206.rel NDRPDR iter env 10
- - 45 # rls2206.rel NDRPDR iter env 10
- - 46 # rls2206.rel NDRPDR iter env 10
-
- vpp-3n-tsh-curr-iter-best:
- csit-vpp-perf-report-iterative-2206-3n-tsh:
- - 46 # rls2206.rel NDRPDR iter env 10
-
- vpp-3n-tsh-hist-iter-mrr-new-env:
- csit-vpp-perf-report-iterative-2202-3n-tsh:
- - 3 # rls2110.rel MRR iter env 9
-
- vpp-3n-tsh-prev-iter-mrr-old-env:
- csit-vpp-perf-report-iterative-2202-3n-tsh:
- - 23 # rls2202.rel MRR iter env 9
-
- vpp-3n-tsh-prev-iter-mrr-new-env:
- csit-vpp-perf-report-iterative-2206-3n-tsh:
- - 3 # rls2202.rel MRR iter env 10
-
- vpp-3n-tsh-curr-iter-mrr:
- csit-vpp-perf-report-iterative-2206-3n-tsh:
- - 29 # rls2206.rel MRR iter env 10
-
- vpp-3n-tsh-curr-cov:
- csit-vpp-perf-report-coverage-2206-3n-tsh:
- - 1 # rls2206.rel NDRPDR cov env 10
- - 2 # rls2206.rel NDRPDR cov env 10
- - 3 # rls2206.rel NDRPDR cov env 10
- - 4 # rls2206.rel NDRPDR cov env 10
- - 5 # rls2206.rel NDRPDR cov env 10
- - 6 # rls2206.rel NDRPDR cov env 10
- - 7 # rls2206.rel NDRPDR cov env 10
- - 8 # rls2206.rel NDRPDR cov env 10
- - 9 # rls2206.rel NDRPDR cov env 10
- - 10 # rls2206.rel NDRPDR cov env 10
- - 11 # rls2206.rel NDRPDR cov env 10
- - 12 # rls2206.rel NDRPDR cov env 10
- - 13 # rls2206.rel NDRPDR cov env 10
- - 14 # rls2206.rel NDRPDR cov env 10
- - 15 # rls2206.rel NDRPDR cov env 10
- - 16 # rls2206.rel NDRPDR cov env 10
- - 17 # rls2206.rel NDRPDR cov env 10
-
- dpdk-3n-tsh-hist-iter:
- csit-dpdk-perf-report-iterative-2110-3n-tsh:
- - 12 # rls2110 NDRPDR iter env 8
- - 13 # rls2110 NDRPDR iter env 8
- - 14 # rls2110 NDRPDR iter env 8
- - 15 # rls2110 NDRPDR iter env 8
- - 16 # rls2110 NDRPDR iter env 8
- - 17 # rls2110 NDRPDR iter env 8
- - 18 # rls2110 NDRPDR iter env 8
- - 19 # rls2110 NDRPDR iter env 8
- - 20 # rls2110 NDRPDR iter env 8
- - 21 # rls2110 NDRPDR iter env 8
-
- dpdk-3n-tsh-prev-iter:
- csit-dpdk-perf-report-iterative-2202-3n-tsh:
- - 11 # rls2202 NDRPDR iter env 9
- - 12 # rls2202 NDRPDR iter env 9
- - 13 # rls2202 NDRPDR iter env 9
- - 14 # rls2202 NDRPDR iter env 9
- - 15 # rls2202 NDRPDR iter env 9
- - 16 # rls2202 NDRPDR iter env 9
- - 17 # rls2202 NDRPDR iter env 9
- - 18 # rls2202 NDRPDR iter env 9
- - 19 # rls2202 NDRPDR iter env 9
- - 20 # rls2202 NDRPDR iter env 9
-
- dpdk-3n-tsh-curr-iter:
- csit-dpdk-perf-report-iterative-2206-3n-tsh:
- - 1 # rls2206 NDRPDR iter env 10
- - 2 # rls2206 NDRPDR iter env 10
- - 3 # rls2206 NDRPDR iter env 10
- - 4 # rls2206 NDRPDR iter env 10
- - 5 # rls2206 NDRPDR iter env 10
- - 6 # rls2206 NDRPDR iter env 10
- - 7 # rls2206 NDRPDR iter env 10
- - 8 # rls2206 NDRPDR iter env 10
- - 9 # rls2206 NDRPDR iter env 10
- - 10 # rls2206 NDRPDR iter env 10
-
- dpdk-3n-tsh-curr-iter-best:
- csit-dpdk-perf-report-iterative-2206-3n-tsh:
- - 1 # rls2206 NDRPDR iter env 10
-
- # 2n-tx2
-
- vpp-2n-tx2-hist-iter-new-env:
- csit-vpp-perf-report-iterative-2202-2n-tx2:
- - 7 # rls2110.rel NDRPDR iter env 9
- - 9 # rls2202.rel NDRPDR iter env 9
- - 10 # rls2202.rel NDRPDR iter env 9
- - 12 # rls2110.rel NDRPDR iter env 9
- - 13 # rls2110.rel NDRPDR iter env 9
- - 14 # rls2110.rel NDRPDR iter env 9
- - 15 # rls2110.rel NDRPDR iter env 9
- - 16 # rls2110.rel NDRPDR iter env 9
- - 17 # rls2110.rel NDRPDR iter env 9
- - 18 # rls2110.rel NDRPDR iter env 9
-
- vpp-2n-tx2-prev-iter-old-env:
- csit-vpp-perf-report-iterative-2202-2n-tx2:
- - 26 # rls2202.rel NDRPDR iter env 9
- - 27 # rls2202.rel NDRPDR iter env 9
- - 28 # rls2202.rel NDRPDR iter env 9
- - 29 # rls2202.rel NDRPDR iter env 9
- - 30 # rls2202.rel NDRPDR iter env 9
- - 31 # rls2202.rel NDRPDR iter env 9
- - 32 # rls2202.rel NDRPDR iter env 9
- - 33 # rls2202.rel NDRPDR iter env 9
- - 34 # rls2202.rel NDRPDR iter env 9
- - 35 # rls2202.rel NDRPDR iter env 9
-
- vpp-2n-tx2-prev-iter-new-env:
- csit-vpp-perf-report-iterative-2206-2n-tx2:
- - 4 # rls2202.rel NDRPDR iter env 10
- - 5 # rls2202.rel NDRPDR iter env 10
- - 7 # rls2202.rel NDRPDR iter env 10
- - 9 # rls2202.rel NDRPDR iter env 10
- - 13 # rls2202.rel NDRPDR iter env 10
- - 14 # rls2202.rel NDRPDR iter env 10
- - 15 # rls2202.rel NDRPDR iter env 10
- - 16 # rls2202.rel NDRPDR iter env 10
- - 17 # rls2202.rel NDRPDR iter env 10
- - 18 # rls2202.rel NDRPDR iter env 10
-
- vpp-2n-tx2-curr-iter:
- csit-vpp-perf-report-iterative-2206-2n-tx2:
- - 38 # rls2206.rel NDRPDR iter env 10
- - 39 # rls2206.rel NDRPDR iter env 10
- - 40 # rls2206.rel NDRPDR iter env 10
- - 41 # rls2206.rel NDRPDR iter env 10
- - 42 # rls2206.rel NDRPDR iter env 10
- - 43 # rls2206.rel NDRPDR iter env 10
- - 44 # rls2206.rel NDRPDR iter env 10
- - 45 # rls2206.rel NDRPDR iter env 10
- - 46 # rls2206.rel NDRPDR iter env 10
- - 47 # rls2206.rel NDRPDR iter env 10
-
- vpp-2n-tx2-curr-iter-best:
- csit-vpp-perf-report-iterative-2206-2n-tx2:
- - 38 # rls2206.rel NDRPDR iter env 10
-
- vpp-2n-tx2-hist-iter-mrr-new-env:
- csit-vpp-perf-report-iterative-2202-2n-tx2:
- - 3 # rls2110.rel MRR iter env 9
-
- vpp-2n-tx2-prev-iter-mrr-old-env:
- csit-vpp-perf-report-iterative-2202-2n-tx2:
- - 25 # rls2202.rel MRR iter env 9
-
- vpp-2n-tx2-prev-iter-mrr-new-env:
- csit-vpp-perf-report-iterative-2206-2n-tx2:
- - 3 # rls2202.rel MRR iter env 10
-
- vpp-2n-tx2-curr-iter-mrr:
- csit-vpp-perf-report-iterative-2206-2n-tx2:
- - 29 # rls2206.rel MRR iter env 10
-
- vpp-2n-tx2-curr-cov:
- csit-vpp-perf-report-coverage-2206-2n-tx2:
- - 1 # rls2206.rel NDRPDR cov env 10
- - 2 # rls2206.rel NDRPDR cov env 10
- - 3 # rls2206.rel NDRPDR cov env 10
- - 4 # rls2206.rel NDRPDR cov env 10
- - 5 # rls2206.rel NDRPDR cov env 10
- - 6 # rls2206.rel NDRPDR cov env 10
- - 7 # rls2206.rel NDRPDR cov env 10
- - 8 # rls2206.rel NDRPDR cov env 10
- - 9 # rls2206.rel NDRPDR cov env 10
- - 10 # rls2206.rel NDRPDR cov env 10
- - 11 # rls2206.rel NDRPDR cov env 10
- - 12 # rls2206.rel NDRPDR cov env 10
- - 13 # rls2206.rel NDRPDR cov env 10
- - 14 # rls2206.rel NDRPDR cov env 10
-
- dpdk-2n-tx2-hist-iter:
- csit-dpdk-perf-report-iterative-2110-2n-tx2:
- - 14 # rls2110 NDRPDR iter env 8
- - 15 # rls2110 NDRPDR iter env 8
- - 16 # rls2110 NDRPDR iter env 8
- - 17 # rls2110 NDRPDR iter env 8
- - 18 # rls2110 NDRPDR iter env 8
- - 19 # rls2110 NDRPDR iter env 8
- - 20 # rls2110 NDRPDR iter env 8
- - 21 # rls2110 NDRPDR iter env 8
- - 22 # rls2110 NDRPDR iter env 8
- - 23 # rls2110 NDRPDR iter env 8
-
- dpdk-2n-tx2-prev-iter:
- csit-dpdk-perf-report-iterative-2202-2n-tx2:
- - 11 # rls2202 NDRPDR iter env 9
- - 12 # rls2202 NDRPDR iter env 9
- - 13 # rls2202 NDRPDR iter env 9
- - 14 # rls2202 NDRPDR iter env 9
- - 15 # rls2202 NDRPDR iter env 9
- - 16 # rls2202 NDRPDR iter env 9
- - 17 # rls2202 NDRPDR iter env 9
- - 18 # rls2202 NDRPDR iter env 9
- - 19 # rls2202 NDRPDR iter env 9
- - 20 # rls2202 NDRPDR iter env 9
-
- dpdk-2n-tx2-curr-iter:
- csit-dpdk-perf-report-iterative-2206-2n-tx2:
- - 1 # rls2206 NDRPDR iter env 10
- - 2 # rls2206 NDRPDR iter env 10
- - 3 # rls2206 NDRPDR iter env 10
- - 4 # rls2206 NDRPDR iter env 10
- - 5 # rls2206 NDRPDR iter env 10
- - 6 # rls2206 NDRPDR iter env 10
- - 7 # rls2206 NDRPDR iter env 10
- - 8 # rls2206 NDRPDR iter env 10
- - 9 # rls2206 NDRPDR iter env 10
- - 10 # rls2206 NDRPDR iter env 10
-
- dpdk-2n-tx2-curr-iter-best:
- csit-dpdk-perf-report-iterative-2206-2n-tx2:
- - 1 # rls2206 NDRPDR iter env 10
-
- # 3n-dnv
-
- vpp-3n-dnv-hist-iter-new-env:
- csit-vpp-perf-report-iterative-2202-3n-dnv:
- - 4 # rls2110.rel NDRPDR iter env 9
- - 5 # rls2110.rel NDRPDR iter env 9
- - 6 # rls2110.rel NDRPDR iter env 9
- - 7 # rls2110.rel NDRPDR iter env 9
- - 8 # rls2110.rel NDRPDR iter env 9
- - 9 # rls2110.rel NDRPDR iter env 9
- - 10 # rls2110.rel NDRPDR iter env 9
- - 11 # rls2110.rel NDRPDR iter env 9
- - 12 # rls2110.rel NDRPDR iter env 9
- - 13 # rls2110.rel NDRPDR iter env 9
-
- vpp-3n-dnv-prev-iter-old-env:
- csit-vpp-perf-report-iterative-2202-3n-dnv:
- - 21 # rls2202.rel NDRPDR iter env 9
- - 22 # rls2202.rel NDRPDR iter env 9
- - 23 # rls2202.rel NDRPDR iter env 9
- - 24 # rls2202.rel NDRPDR iter env 9
- - 25 # rls2202.rel NDRPDR iter env 9
- - 26 # rls2202.rel NDRPDR iter env 9
- - 27 # rls2202.rel NDRPDR iter env 9
- - 28 # rls2202.rel NDRPDR iter env 9
- - 29 # rls2202.rel NDRPDR iter env 9
- - 30 # rls2202.rel NDRPDR iter env 9
-
- vpp-3n-dnv-prev-iter-new-env:
- csit-vpp-perf-report-iterative-2206-3n-dnv:
- - 4 # rls2202.rel NDRPDR iter env 10
- - 5 # rls2202.rel NDRPDR iter env 10
- - 6 # rls2202.rel NDRPDR iter env 10
- - 7 # rls2202.rel NDRPDR iter env 10
- - 8 # rls2202.rel NDRPDR iter env 10
- - 9 # rls2202.rel NDRPDR iter env 10
- - 10 # rls2202.rel NDRPDR iter env 10
- - 11 # rls2202.rel NDRPDR iter env 10
- - 12 # rls2202.rel NDRPDR iter env 10
- - 13 # rls2202.rel NDRPDR iter env 10
-
- vpp-3n-dnv-curr-iter:
- csit-vpp-perf-report-iterative-2206-3n-dnv:
- - 24 # rls2206.rel NDRPDR iter env 10
- - 32 # rls2206.rel NDRPDR iter env 10
- - 33 # rls2206.rel NDRPDR iter env 10
- - 34 # rls2206.rel NDRPDR iter env 10
- - 35 # rls2206.rel NDRPDR iter env 10
- - 36 # rls2206.rel NDRPDR iter env 10
- - 37 # rls2206.rel NDRPDR iter env 10
- - 38 # rls2206.rel NDRPDR iter env 10
- - 39 # rls2206.rel NDRPDR iter env 10
- - 40 # rls2206.rel NDRPDR iter env 10
-
- vpp-3n-dnv-hist-iter-mrr-new-env:
- csit-vpp-perf-report-iterative-2202-3n-dnv:
- - 3 # rls2110.rel MRR iter env 9
-
- vpp-3n-dnv-prev-iter-mrr-old-env:
- csit-vpp-perf-report-iterative-2202-3n-dnv:
- - 20 # rls2202.rel MRR iter env 9
-
- vpp-3n-dnv-prev-iter-mrr-new-env:
- csit-vpp-perf-report-iterative-2206-3n-dnv:
- - 3 # rls2202.rel MRR iter env 10
-
- vpp-3n-dnv-curr-iter-mrr:
- csit-vpp-perf-report-iterative-2206-3n-dnv:
- - 22 # rls2206.rel MRR iter env 10
-
- vpp-3n-dnv-curr-cov:
- csit-vpp-perf-report-coverage-2206-3n-dnv:
- - 1 # rls2206.rel NDRPDR cov env 10
- - 2 # rls2206.rel NDRPDR cov env 10
- - 3 # rls2206.rel NDRPDR cov env 10
- - 4 # rls2206.rel NDRPDR cov env 10
- - 5 # rls2206.rel NDRPDR cov env 10
- - 6 # rls2206.rel NDRPDR cov env 10
- - 7 # rls2206.rel NDRPDR cov env 10
- - 8 # rls2206.rel NDRPDR cov env 10
- - 9 # rls2206.rel NDRPDR cov env 10
- - 10 # rls2206.rel NDRPDR cov env 10
-
- # 2n-dnv
-
- vpp-2n-dnv-hist-iter-new-env:
- csit-vpp-perf-report-iterative-2202-2n-dnv:
- - 5 # rls2110.rel NDRPDR iter env 9
- - 6 # rls2110.rel NDRPDR iter env 9
- - 7 # rls2110.rel NDRPDR iter env 9
- - 8 # rls2110.rel NDRPDR iter env 9
- - 9 # rls2110.rel NDRPDR iter env 9
- - 10 # rls2110.rel NDRPDR iter env 9
- - 11 # rls2110.rel NDRPDR iter env 9
- - 12 # rls2110.rel NDRPDR iter env 9
- - 13 # rls2110.rel NDRPDR iter env 9
- - 14 # rls2110.rel NDRPDR iter env 9
-
- vpp-2n-dnv-prev-iter-old-env:
- csit-vpp-perf-report-iterative-2202-2n-dnv:
- - 24 # rls2202.rel NDRPDR iter env 9
- - 25 # rls2202.rel NDRPDR iter env 9
- - 26 # rls2202.rel NDRPDR iter env 9
- - 28 # rls2202.rel NDRPDR iter env 9
- - 29 # rls2202.rel NDRPDR iter env 9
- - 32 # rls2202.rel NDRPDR iter env 9
- - 33 # rls2202.rel NDRPDR iter env 9
- - 34 # rls2202.rel NDRPDR iter env 9
- - 35 # rls2202.rel NDRPDR iter env 9
- - 36 # rls2202.rel NDRPDR iter env 9
-
- vpp-2n-dnv-prev-iter-new-env:
- csit-vpp-perf-report-iterative-2206-2n-dnv:
- - 4 # rls2202.rel NDRPDR iter env 10
- - 5 # rls2202.rel NDRPDR iter env 10
- - 6 # rls2202.rel NDRPDR iter env 10
- - 7 # rls2202.rel NDRPDR iter env 10
- - 8 # rls2202.rel NDRPDR iter env 10
- - 9 # rls2202.rel NDRPDR iter env 10
- - 10 # rls2202.rel NDRPDR iter env 10
- - 11 # rls2202.rel NDRPDR iter env 10
- - 12 # rls2202.rel NDRPDR iter env 10
- - 13 # rls2202.rel NDRPDR iter env 10
-
- vpp-2n-dnv-curr-iter:
- csit-vpp-perf-report-iterative-2206-2n-dnv:
- - 22 # rls2206.rel NDRPDR iter env 10
- - 31 # rls2206.rel NDRPDR iter env 10
- - 32 # rls2206.rel NDRPDR iter env 10
- - 33 # rls2206.rel NDRPDR iter env 10
- - 34 # rls2206.rel NDRPDR iter env 10
- - 35 # rls2206.rel NDRPDR iter env 10
- - 36 # rls2206.rel NDRPDR iter env 10
- - 37 # rls2206.rel NDRPDR iter env 10
- - 38 # rls2206.rel NDRPDR iter env 10
- - 39 # rls2206.rel NDRPDR iter env 10
-
- vpp-2n-dnv-hist-iter-mrr-new-env:
- csit-vpp-perf-report-iterative-2202-2n-dnv:
- - 15 # rls2110.rel MRR iter env 9
-
- vpp-2n-dnv-prev-iter-mrr-old-env:
- csit-vpp-perf-report-iterative-2202-2n-dnv:
- - 23 # rls2202.rel MRR iter env 9
-
- vpp-2n-dnv-prev-iter-mrr-new-env:
- csit-vpp-perf-report-iterative-2206-2n-dnv:
- - 3 # rls2202.rel MRR iter env 10
-
- vpp-2n-dnv-curr-iter-mrr:
- csit-vpp-perf-report-iterative-2206-2n-dnv:
- - 20 # rls2206.rel MRR iter env 10
-
- vpp-2n-dnv-curr-cov:
- csit-vpp-perf-report-coverage-2206-2n-dnv:
- - 1 # rls2206.rel NDRPDR cov env 10
- - 7 # rls2206.rel NDRPDR cov env 10
- - 3 # rls2206.rel NDRPDR cov env 10
- - 4 # rls2206.rel NDRPDR cov env 10
- - 5 # rls2206.rel NDRPDR cov env 10
- - 6 # rls2206.rel NDRPDR cov env 10
-
- # 2n-aws
-
- vpp-2n-aws-hist-iter:
- csit-vpp-perf-report-iterative-2110-2n-aws:
- - 26 # rls2110.rel NDRPDR iter env 8
- - 29 # rls2110.rel NDRPDR iter env 8
- - 30 # rls2110.rel NDRPDR iter env 8
- - 31 # rls2110.rel NDRPDR iter env 8
- - 32 # rls2110.rel NDRPDR iter env 8
- - 33 # rls2110.rel NDRPDR iter env 8
- - 34 # rls2110.rel NDRPDR iter env 8
- - 35 # rls2110.rel NDRPDR iter env 8
- - 36 # rls2110.rel NDRPDR iter env 8
- - 37 # rls2110.rel NDRPDR iter env 8
-
- vpp-2n-aws-prev-iter:
- csit-vpp-perf-report-iterative-2202-2n-aws:
- - 12 # rls2202.rel NDRPDR iter env 9
- - 13 # rls2202.rel NDRPDR iter env 9
- - 14 # rls2202.rel NDRPDR iter env 9
- - 16 # rls2202.rel NDRPDR iter env 9
- - 17 # rls2202.rel NDRPDR iter env 9
- - 18 # rls2202.rel NDRPDR iter env 9
- - 19 # rls2202.rel NDRPDR iter env 9
- - 20 # rls2202.rel NDRPDR iter env 9
- - 21 # rls2202.rel NDRPDR iter env 9
- - 22 # rls2202.rel NDRPDR iter env 9
-
- vpp-2n-aws-curr-iter:
- csit-vpp-perf-report-iterative-2206-2n-aws:
- - 11 # rls2206.rel NDRPDR iter env 10
- - 15 # rls2206.rel NDRPDR iter env 10
- - 16 # rls2206.rel NDRPDR iter env 10
- - 17 # rls2206.rel NDRPDR iter env 10
- - 18 # rls2206.rel NDRPDR iter env 10
- - 19 # rls2206.rel NDRPDR iter env 10
- - 20 # rls2206.rel NDRPDR iter env 10
- - 21 # rls2206.rel NDRPDR iter env 10
- - 22 # rls2206.rel NDRPDR iter env 10
- - 23 # rls2206.rel NDRPDR iter env 10
-
- vpp-2n-aws-curr-iter-best:
- csit-vpp-perf-report-iterative-2206-2n-aws:
- - 11 # rls2206.rel NDRPDR iter env 10
-
- vpp-2n-aws-hist-iter-mrr:
- csit-vpp-perf-report-iterative-2110-2n-aws:
- - 25 # rls2110.rel MRR iter env 8
-
- vpp-2n-aws-prev-iter-mrr:
- csit-vpp-perf-report-iterative-2202-2n-aws:
- - 11 # rls2202.rel MRR iter env 9
-
- vpp-2n-aws-curr-iter-mrr:
- csit-vpp-perf-report-iterative-2206-2n-aws:
- - 10 # rls2206.rel MRR iter env 10
-
- vpp-2n-aws-curr-cov:
- csit-vpp-perf-report-coverage-2206-2n-aws:
- - 1 # rls2206.rel NDRPDR cov env 10
-
- # # 3n-aws
-
- # vpp-3n-aws-hist-iter:
- # csit-vpp-perf-report-iterative-2110-3n-aws:
- # - 34 # rls2110.rel NDRPDR iter env 8
- # - 35 # rls2110.rel NDRPDR iter env 8
- # - 36 # rls2110.rel NDRPDR iter env 8
- # - 37 # rls2110.rel NDRPDR iter env 8
- # - 38 # rls2110.rel NDRPDR iter env 8
- # - 39 # rls2110.rel NDRPDR iter env 8
- # - 40 # rls2110.rel NDRPDR iter env 8
- # - 41 # rls2110.rel NDRPDR iter env 8
- # - 42 # rls2110.rel NDRPDR iter env 8
- # - 43 # rls2110.rel NDRPDR iter env 8
-
- # vpp-3n-aws-prev-iter:
- # csit-vpp-perf-report-iterative-2202-3n-aws:
- # - 12 # rls2202.rel NDRPDR iter env 9
- # - 13 # rls2202.rel NDRPDR iter env 9
- # - 14 # rls2202.rel NDRPDR iter env 9
- # - 16 # rls2202.rel NDRPDR iter env 9
- # - 17 # rls2202.rel NDRPDR iter env 9
- # - 18 # rls2202.rel NDRPDR iter env 9
- # - 19 # rls2202.rel NDRPDR iter env 9
- # - 20 # rls2202.rel NDRPDR iter env 9
- # - 21 # rls2202.rel NDRPDR iter env 9
- # - 22 # rls2202.rel NDRPDR iter env 9
-
- # vpp-3n-aws-curr-iter:
- # # csit-vpp-perf-report-iterative-2206-3n-aws:
- # csit-vpp-perf-report-iterative-2202-3n-aws:
- # - 12 # rls2202.rel NDRPDR iter env 9
-
- # vpp-3n-aws-curr-iter-best:
- # # csit-vpp-perf-report-iterative-2206-3n-aws:
- # csit-vpp-perf-report-iterative-2202-3n-aws:
- # - 12 # rls2202.rel NDRPDR iter env 9
-
- # vpp-3n-aws-hist-iter-mrr:
- # csit-vpp-perf-report-iterative-2110-3n-aws:
- # - 33 # rls2110.rel MRR iter env 8
-
- # vpp-3n-aws-prev-iter-mrr:
- # csit-vpp-perf-report-iterative-2202-3n-aws:
- # - 11 # rls2202.rel MRR iter env 9
-
- # vpp-3n-aws-curr-iter-mrr:
- # # csit-vpp-perf-report-iterative-2206-3n-aws:
- # csit-vpp-perf-report-iterative-2202-3n-aws:
- # - 11 # rls2202.rel MRR iter env 9
-
- # vpp-3n-aws-curr-cov:
- # csit-vpp-perf-report-coverage-2206-3n-aws:
- # - 1 # rls2209.rel NDRPDR cov env 10
-
- # 2n-icx
-
- # vpp-2n-icx-hist-iter-new-env:
- # csit-vpp-perf-report-iterative-2202-2n-icx:
-
- vpp-2n-icx-prev-iter-old-env:
- csit-vpp-perf-report-iterative-2202-2n-icx:
- - 23 # rls2202.rel NDRPDR iter env 9
- - 30 # rls2202.rel NDRPDR iter env 9
- - 31 # rls2202.rel NDRPDR iter env 9
- - 32 # rls2202.rel NDRPDR iter env 9
- - 33 # rls2202.rel NDRPDR iter env 9
- - 34 # rls2202.rel NDRPDR iter env 9
- - 37 # rls2202.rel NDRPDR iter env 9
- - 39 # rls2202.rel NDRPDR iter env 9
- - 40 # rls2202.rel NDRPDR iter env 9
- - 41 # rls2202.rel NDRPDR iter env 9
-
- vpp-2n-icx-prev-iter-new-env:
- csit-vpp-perf-report-iterative-2206-2n-icx:
- - 107 # rls2202.rel NDRPDR iter env 10
- - 108 # rls2202.rel NDRPDR iter env 10
- - 109 # rls2202.rel NDRPDR iter env 10
- - 110 # rls2202.rel NDRPDR iter env 10
- - 111 # rls2202.rel NDRPDR iter env 10
- - 112 # rls2202.rel NDRPDR iter env 10
- - 113 # rls2202.rel NDRPDR iter env 10
- - 114 # rls2202.rel NDRPDR iter env 10
- - 115 # rls2202.rel NDRPDR iter env 10
- - 116 # rls2202.rel NDRPDR iter env 10
- - 129 # rls2202.rel NDRPDR iter env 10 NAT44
- - 130 # rls2202.rel NDRPDR iter env 10 NAT44
- - 131 # rls2202.rel NDRPDR iter env 10 NAT44
- - 132 # rls2202.rel NDRPDR iter env 10 NAT44
- - 133 # rls2202.rel NDRPDR iter env 10 NAT44
- - 134 # rls2202.rel NDRPDR iter env 10 NAT44
- - 135 # rls2202.rel NDRPDR iter env 10 NAT44
- - 136 # rls2202.rel NDRPDR iter env 10 NAT44
- - 137 # rls2202.rel NDRPDR iter env 10 NAT44
- - 138 # rls2202.rel NDRPDR iter env 10 NAT44
-
- vpp-2n-icx-curr-iter:
- csit-vpp-perf-report-iterative-2206-2n-icx:
- - 80 # rls2206.rel NDRPDR iter env 10
- - 81 # rls2206.rel NDRPDR iter env 10
- - 82 # rls2206.rel NDRPDR iter env 10
- - 83 # rls2206.rel NDRPDR iter env 10
- - 84 # rls2206.rel NDRPDR iter env 10
- - 94 # rls2206.rel NDRPDR iter env 10
- - 95 # rls2206.rel NDRPDR iter env 10
- - 100 # rls2206.rel NDRPDR iter env 10
- - 102 # rls2206.rel NDRPDR iter env 10
- - 103 # rls2206.rel NDRPDR iter env 10
- - 118 # rls2206.rel NDRPDR iter env 10 NAT44
- - 119 # rls2206.rel NDRPDR iter env 10 NAT44
- - 120 # rls2206.rel NDRPDR iter env 10 NAT44
- - 121 # rls2206.rel NDRPDR iter env 10 NAT44
- - 122 # rls2206.rel NDRPDR iter env 10 NAT44
- - 123 # rls2206.rel NDRPDR iter env 10 NAT44
- - 124 # rls2206.rel NDRPDR iter env 10 NAT44
- - 125 # rls2206.rel NDRPDR iter env 10 NAT44
- - 126 # rls2206.rel NDRPDR iter env 10 NAT44
- - 127 # rls2206.rel NDRPDR iter env 10 NAT44
-
- vpp-2n-icx-curr-iter-best:
- csit-vpp-perf-report-iterative-2206-2n-icx:
- - 95 # rls2206.rel NDRPDR iter env 10
-
- vpp-2n-icx-prev-iter-mrr-old-env:
- csit-vpp-perf-report-iterative-2202-2n-icx:
- - 22 # rls2202.rel MRR iter env 9
-
- vpp-2n-icx-prev-iter-mrr-new-env:
- csit-vpp-perf-report-iterative-2206-2n-icx:
- - 106 # rls2202.rel MRR iter env 10
- - 128 # rls2202.rel MRR iter env 10 NAT44
-
- vpp-2n-icx-curr-iter-mrr:
- csit-vpp-perf-report-iterative-2206-2n-icx:
- - 68 # rls2206.rel MRR iter env 10
- - 117 # rls2206.rel MRR iter env 10 NAT44
-
- vpp-2n-icx-curr-nfv-ndrpdr:
- csit-vpp-perf-report-iterative-2206-2n-icx:
- - 71 # rls2206.rel NDRPDR nf-density iter env 10
- - 77 # rls2206.rel NDRPDR nf-density iter env 10
- - 85 # rls2206.rel NDRPDR nf-density iter env 10
- - 87 # rls2206.rel NDRPDR nf-density iter env 10
- - 88 # rls2206.rel NDRPDR nf-density iter env 10
- - 91 # rls2206.rel NDRPDR nf-density iter env 10
- - 92 # rls2206.rel NDRPDR nf-density iter env 10
- - 97 # rls2206.rel NDRPDR nf-density iter env 10
- - 98 # rls2206.rel NDRPDR nf-density iter env 10
- - 101 # rls2206.rel NDRPDR nf-density iter env 10
-
- vpp-2n-icx-curr-nfv-mrr:
- csit-vpp-perf-report-iterative-2206-2n-icx:
- - 70 # rls2206.rel MRR nf-density iter env 10
-
- vpp-2n-icx-curr-nfv-reconf:
- csit-vpp-perf-report-iterative-2206-2n-icx:
- - 72 # rls2206.rel NDRPDR reconf iter env 10
- - 78 # rls2206.rel NDRPDR reconf iter env 10
- - 86 # rls2206.rel NDRPDR reconf iter env 10
- - 89 # rls2206.rel NDRPDR reconf iter env 10
- - 90 # rls2206.rel NDRPDR reconf iter env 10
- - 93 # rls2206.rel NDRPDR reconf iter env 10
- - 96 # rls2206.rel NDRPDR reconf iter env 10
- - 99 # rls2206.rel NDRPDR reconf iter env 10
- - 104 # rls2206.rel NDRPDR reconf iter env 10
- - 105 # rls2206.rel NDRPDR reconf iter env 10
-
- vpp-2n-icx-curr-soak:
- csit-vpp-perf-report-iterative-2206-2n-icx:
- - 74 # rls2206.rel soak env 10
- - 79 # rls2206.rel soak env 10
- vpp-soak-vs-ndr-2n-icx-ref:
- csit-vpp-perf-report-iterative-2206-2n-icx:
- - 80 # rls2206.rel NDRPDR iter env 10
- - 81 # rls2206.rel NDRPDR iter env 10
- - 82 # rls2206.rel NDRPDR iter env 10
- - 83 # rls2206.rel NDRPDR iter env 10
- - 84 # rls2206.rel NDRPDR iter env 10
- - 94 # rls2206.rel NDRPDR iter env 10
- - 95 # rls2206.rel NDRPDR iter env 10
- - 100 # rls2206.rel NDRPDR iter env 10
- - 102 # rls2206.rel NDRPDR iter env 10
- - 103 # rls2206.rel NDRPDR iter env 10
- vpp-soak-vs-ndr-2n-icx:
- csit-vpp-perf-report-iterative-2206-2n-icx:
- - 80 # rls2206.rel NDRPDR iter env 10
- - 81 # rls2206.rel NDRPDR iter env 10
- - 82 # rls2206.rel NDRPDR iter env 10
- - 83 # rls2206.rel NDRPDR iter env 10
- - 84 # rls2206.rel NDRPDR iter env 10
- - 94 # rls2206.rel NDRPDR iter env 10
- - 95 # rls2206.rel NDRPDR iter env 10
- - 100 # rls2206.rel NDRPDR iter env 10
- - 102 # rls2206.rel NDRPDR iter env 10
- - 103 # rls2206.rel NDRPDR iter env 10
- - 74 # rls2206.rel soak env 10
- - 79 # rls2206.rel soak env 10
-
- vpp-2n-icx-curr-iter-gso:
- csit-vpp-perf-report-iterative-2206-2n-icx:
- - 73 # rls2206.rel MRR GSO iter env 10
-
- vpp-2n-icx-curr-cov:
- csit-vpp-perf-report-coverage-2206-2n-icx:
- - 1 # rls2206.rel NDRPDR cov env 10
- - 2 # rls2206.rel NDRPDR cov env 10
- - 3 # rls2206.rel NDRPDR cov env 10
- - 4 # rls2206.rel NDRPDR cov env 10
- - 5 # rls2206.rel NDRPDR cov env 10
- - 6 # rls2206.rel NDRPDR cov env 10
- - 7 # rls2206.rel NDRPDR cov env 10
- - 8 # rls2206.rel NDRPDR cov env 10
- - 9 # rls2206.rel NDRPDR cov env 10
- - 10 # rls2206.rel NDRPDR cov env 10
- - 11 # rls2206.rel NDRPDR cov env 10
- - 12 # rls2206.rel NDRPDR cov env 10
- - 13 # rls2206.rel NDRPDR cov env 10
- - 14 # rls2206.rel NDRPDR cov env 10
- - 15 # rls2206.rel NDRPDR cov env 10
- - 16 # rls2206.rel NDRPDR cov env 10
- - 17 # rls2206.rel NDRPDR cov env 10
-
- dpdk-2n-icx-prev-iter:
- csit-dpdk-perf-report-iterative-2202-2n-icx:
- - 1 # rls2202 NDRPDR iter env 9
- - 2 # rls2202 NDRPDR iter env 9
- - 3 # rls2202 NDRPDR iter env 9
- - 4 # rls2202 NDRPDR iter env 9
- - 5 # rls2202 NDRPDR iter env 9
- - 6 # rls2202 NDRPDR iter env 9
- - 7 # rls2202 NDRPDR iter env 9
- - 8 # rls2202 NDRPDR iter env 9
- - 9 # rls2202 NDRPDR iter env 9
- - 10 # rls2202 NDRPDR iter env 9
-
- dpdk-2n-icx-curr-iter:
- csit-dpdk-perf-report-iterative-2206-2n-icx:
- - 1 # rls2206 NDRPDR iter env 10
- - 2 # rls2206 NDRPDR iter env 10
- - 3 # rls2206 NDRPDR iter env 10
- - 5 # rls2206 NDRPDR iter env 10
- - 7 # rls2206 NDRPDR iter env 10
- - 9 # rls2206 NDRPDR iter env 10
- - 11 # rls2206 NDRPDR iter env 10
- - 12 # rls2206 NDRPDR iter env 10
- - 14 # rls2206 NDRPDR iter env 10
- - 15 # rls2206 NDRPDR iter env 10
-
- dpdk-2n-icx-curr-iter-best:
- csit-dpdk-perf-report-iterative-2206-2n-icx:
- - 2 # rls2206 NDRPDR iter env 10
-
- # 3n-icx
-
- # vpp-3n-icx-hist-iter-new-env:
- # csit-vpp-perf-report-iterative-2202-3n-icx:
-
- vpp-3n-icx-prev-iter-old-env:
- csit-vpp-perf-report-iterative-2202-3n-icx:
- - 12 # rls2202.rel NDRPDR iter env 9
- - 13 # rls2202.rel NDRPDR iter env 9
- - 14 # rls2202.rel NDRPDR iter env 9
- - 15 # rls2202.rel NDRPDR iter env 9
- - 16 # rls2202.rel NDRPDR iter env 9
- - 17 # rls2202.rel NDRPDR iter env 9
- - 18 # rls2202.rel NDRPDR iter env 9
- - 19 # rls2202.rel NDRPDR iter env 9
- - 20 # rls2202.rel NDRPDR iter env 9
- - 21 # rls2202.rel NDRPDR iter env 9
-
- vpp-3n-icx-prev-iter-new-env:
- csit-vpp-perf-report-iterative-2206-3n-icx:
- - 60 # rls2202.rel NDRPDR iter env 10
- - 61 # rls2202.rel NDRPDR iter env 10
- - 62 # rls2202.rel NDRPDR iter env 10
- - 63 # rls2202.rel NDRPDR iter env 10
- - 64 # rls2202.rel NDRPDR iter env 10
- - 65 # rls2202.rel NDRPDR iter env 10
- - 66 # rls2202.rel NDRPDR iter env 10
- - 67 # rls2202.rel NDRPDR iter env 10
- - 68 # rls2202.rel NDRPDR iter env 10
- - 69 # rls2202.rel NDRPDR iter env 10
-
- vpp-3n-icx-curr-iter:
- csit-vpp-perf-report-iterative-2206-3n-icx:
- - 49 # rls2206.rel NDRPDR iter env 10
- - 50 # rls2206.rel NDRPDR iter env 10
- - 51 # rls2206.rel NDRPDR iter env 10
- - 52 # rls2206.rel NDRPDR iter env 10
- - 53 # rls2206.rel NDRPDR iter env 10
- - 54 # rls2206.rel NDRPDR iter env 10
- - 55 # rls2206.rel NDRPDR iter env 10
- - 56 # rls2206.rel NDRPDR iter env 10
- - 57 # rls2206.rel NDRPDR iter env 10
- - 58 # rls2206.rel NDRPDR iter env 10
-
- vpp-3n-icx-curr-iter-best:
- csit-vpp-perf-report-iterative-2206-3n-icx:
- - 55 # rls2206.rel NDRPDR iter env 10
-
- vpp-3n-icx-prev-iter-mrr-old-env:
- csit-vpp-perf-report-iterative-2202-3n-icx:
- - 11 # rls2202.rel MRR iter env 9
-
- vpp-3n-icx-prev-iter-mrr-new-env:
- csit-vpp-perf-report-iterative-2206-3n-icx:
- - 59 # rls2202.rel MRR iter env 10
-
- vpp-3n-icx-curr-iter-mrr:
- csit-vpp-perf-report-iterative-2206-3n-icx:
- - 39 # rls2206.rel MRR iter env 10
-
- vpp-3n-icx-curr-cov:
- csit-vpp-perf-report-coverage-2206-3n-icx:
- - 1 # rls2206.rel NDRPDR cov env 10
- - 2 # rls2206.rel NDRPDR cov env 10
- - 3 # rls2206.rel NDRPDR cov env 10
- - 35 # rls2206.rel NDRPDR cov env 10
- - 4 # rls2206.rel NDRPDR cov env 10
- - 34 # rls2206.rel NDRPDR cov env 10
- - 5 # rls2206.rel NDRPDR cov env 10
- - 6 # rls2206.rel NDRPDR cov env 10
- - 7 # rls2206.rel NDRPDR cov env 10
- - 8 # rls2206.rel NDRPDR cov env 10
- - 9 # rls2206.rel NDRPDR cov env 10
- - 10 # rls2206.rel NDRPDR cov env 10
- - 11 # rls2206.rel NDRPDR cov env 10
- - 12 # rls2206.rel NDRPDR cov env 10
- - 13 # rls2206.rel NDRPDR cov env 10
- - 14 # rls2206.rel NDRPDR cov env 10
- - 15 # rls2206.rel NDRPDR cov env 10
- - 16 # rls2206.rel NDRPDR cov env 10
- - 17 # rls2206.rel NDRPDR cov env 10
- - 18 # rls2206.rel NDRPDR cov env 10
- - 19 # rls2206.rel NDRPDR cov env 10
- - 20 # rls2206.rel NDRPDR cov env 10
- - 21 # rls2206.rel NDRPDR cov env 10
- - 22 # rls2206.rel NDRPDR cov env 10
- - 23 # rls2206.rel NDRPDR cov env 10
- - 24 # rls2206.rel NDRPDR cov env 10
- - 25 # rls2206.rel NDRPDR cov env 10
- - 26 # rls2206.rel NDRPDR cov env 10
- - 27 # rls2206.rel NDRPDR cov env 10
- - 28 # rls2206.rel NDRPDR cov env 10
- - 29 # rls2206.rel NDRPDR cov env 10
- - 30 # rls2206.rel NDRPDR cov env 10
- - 31 # rls2206.rel NDRPDR cov env 10
- - 32 # rls2206.rel NDRPDR cov env 10
- - 33 # rls2206.rel NDRPDR cov env 10
-
- dpdk-3n-icx-prev-iter:
- csit-dpdk-perf-report-iterative-2202-3n-icx:
- - 2 # rls2202 NDRPDR iter env 9
- - 3 # rls2202 NDRPDR iter env 9
- - 4 # rls2202 NDRPDR iter env 9
- - 5 # rls2202 NDRPDR iter env 9
- - 5 # rls2202 NDRPDR iter env 9
- - 6 # rls2202 NDRPDR iter env 9
- - 7 # rls2202 NDRPDR iter env 9
- - 8 # rls2202 NDRPDR iter env 9
- - 9 # rls2202 NDRPDR iter env 9
- - 10 # rls2202 NDRPDR iter env 9
- - 11 # rls2202 NDRPDR iter env 9
-
- dpdk-3n-icx-curr-iter:
- csit-dpdk-perf-report-iterative-2206-3n-icx:
- - 1 # rls2206 NDRPDR iter env 10
- - 2 # rls2206 NDRPDR iter env 10
- - 3 # rls2206 NDRPDR iter env 10
- - 4 # rls2206 NDRPDR iter env 10
- - 5 # rls2206 NDRPDR iter env 10
- - 7 # rls2206 NDRPDR iter env 10
- - 8 # rls2206 NDRPDR iter env 10
- - 9 # rls2206 NDRPDR iter env 10
- - 10 # rls2206 NDRPDR iter env 10
- - 11 # rls2206 NDRPDR iter env 10
-
- dpdk-3n-icx-curr-iter-best:
- csit-dpdk-perf-report-iterative-2206-3n-icx:
- - 1 # rls2206 NDRPDR iter env 10
-
- # 3n-alt
-
- vpp-3n-alt-curr-iter:
- csit-vpp-perf-report-iterative-2206-3n-alt:
- - 20 # rls2206.rel NDRPDR iter env 10
- - 21 # rls2206.rel NDRPDR iter env 10
- - 22 # rls2206.rel NDRPDR iter env 10
- - 23 # rls2206.rel NDRPDR iter env 10
- - 24 # rls2206.rel NDRPDR iter env 10
- - 25 # rls2206.rel NDRPDR iter env 10
- - 26 # rls2206.rel NDRPDR iter env 10
- - 27 # rls2206.rel NDRPDR iter env 10
- - 28 # rls2206.rel NDRPDR iter env 10
- - 29 # rls2206.rel NDRPDR iter env 10
-
- vpp-3n-alt-curr-iter-best:
- csit-vpp-perf-report-iterative-2206-3n-alt:
- - 20 # rls2206.rel NDRPDR iter env 10
-
- vpp-3n-alt-curr-iter-mrr:
- csit-vpp-perf-report-iterative-2206-3n-alt:
- - 12 # rls2206.rel MRR iter env 10
-
- vpp-3n-alt-curr-cov:
- csit-vpp-perf-report-coverage-2206-3n-alt:
- - 1 # rls2206.rel NDRPDR iter env 10
- - 2 # rls2206.rel NDRPDR iter env 10
- - 3 # rls2206.rel NDRPDR iter env 10
- - 4 # rls2206.rel NDRPDR iter env 10
- - 5 # rls2206.rel NDRPDR iter env 10
- - 6 # rls2206.rel NDRPDR iter env 10
- - 7 # rls2206.rel NDRPDR iter env 10
- - 8 # rls2206.rel NDRPDR iter env 10
- - 9 # rls2206.rel NDRPDR iter env 10
- - 10 # rls2206.rel NDRPDR iter env 10
- - 11 # rls2206.rel NDRPDR iter env 10
- - 12 # rls2206.rel NDRPDR iter env 10
- - 13 # rls2206.rel NDRPDR iter env 10
- - 14 # rls2206.rel NDRPDR iter env 10
- - 15 # rls2206.rel NDRPDR iter env 10
- - 16 # rls2206.rel NDRPDR iter env 10
- - 17 # rls2206.rel NDRPDR iter env 10
-
- dpdk-3n-alt-curr-iter:
- csit-dpdk-perf-report-iterative-2206-3n-alt:
- - 1 # rls2206 NDRPDR iter env 10
- - 2 # rls2206 NDRPDR iter env 10
- - 3 # rls2206 NDRPDR iter env 10
- - 4 # rls2206 NDRPDR iter env 10
- - 5 # rls2206 NDRPDR iter env 10
- - 6 # rls2206 NDRPDR iter env 10
- - 7 # rls2206 NDRPDR iter env 10
- - 8 # rls2206 NDRPDR iter env 10
- - 9 # rls2206 NDRPDR iter env 10
- - 10 # rls2206 NDRPDR iter env 10
-
- dpdk-3n-alt-curr-iter-best:
- csit-dpdk-perf-report-iterative-2206-3n-alt:
- - 1 # rls2206 NDRPDR iter env 10
diff --git a/resources/tools/presentation/specifications/report/elements.yaml b/resources/tools/presentation/specifications/report/elements.yaml
deleted file mode 100644
index 73ea925b1f..0000000000
--- a/resources/tools/presentation/specifications/report/elements.yaml
+++ /dev/null
@@ -1,16319 +0,0 @@
-################################################################################
-### T A B L E S ###
-################################################################################
-
-# Statistics: job-specs' durations
-
-- type: "table"
- title: "Job Specification Duration: 2n-icx-iterative"
- algorithm: "table_job_spec_duration"
- output-file: "{DIR[STATIC,VPP]}/job-spec-duration-2n-icx-iter"
- jb-type: "iterative"
- lines:
- - job-spec: "vpp-mrr-00"
- data-set: "vpp-2n-icx-curr-iter-mrr"
- - job-spec: "vpp-mlr-00"
- data-set: "vpp-2n-icx-curr-iter"
- - job-spec: "vpp-gso-mrr-00"
- data-set: "vpp-2n-icx-curr-iter-gso"
- - job-spec: "soak-00"
- data-set: "vpp-2n-icx-curr-soak"
- - job-spec: "nfv-density-mrr-00"
- data-set: "vpp-2n-icx-curr-nfv-mrr"
- - job-spec: "nfv-density-mlr-00"
- data-set: "vpp-2n-icx-curr-nfv-ndrpdr"
- - job-spec: "reconf-00"
- data-set: "vpp-2n-icx-curr-nfv-reconf"
- - job-spec: "dpdk-mlr-00"
- data-set: "dpdk-2n-icx-curr-iter"
-
-- type: "table"
- title: "Job Specification Duration: 2n-icx-coverage"
- algorithm: "table_job_spec_duration"
- output-file: "{DIR[STATIC,VPP]}/job-spec-duration-2n-icx-cov"
- jb-type: "coverage"
- data: "vpp-2n-icx-curr-cov"
- lines:
- - job-spec: "gso-00"
- build: "1"
- - job-spec: "ip4-00"
- build: "2"
- - job-spec: "ip4-01"
- build: "3"
- - job-spec: "ip4-02"
- build: "4"
- - job-spec: "ip4-03"
- build: "5"
- - job-spec: "ip4-04"
- build: "6"
- - job-spec: "ip4-05"
- build: "7"
- - job-spec: "ip4-06"
- build: "8"
- - job-spec: "ip4-07"
- build: "9"
- - job-spec: "ip4tun-00"
- build: "10"
- - job-spec: "ip6-00"
- build: "11"
- - job-spec: "ip6-01"
- build: "12"
- - job-spec: "l2-00"
- build: "13"
- - job-spec: "l2-01"
- build: "14"
- - job-spec: "lb-00"
- build: "15"
- - job-spec: "memif-00"
- build: "16"
- - job-spec: "vhost-00"
- build: "17"
-
-- type: "table"
- title: "Job Specification Duration: 3n-icx-iterative"
- algorithm: "table_job_spec_duration"
- output-file: "{DIR[STATIC,VPP]}/job-spec-duration-3n-icx-iter"
- jb-type: "iterative"
- lines:
- - job-spec: "vpp-mrr-00"
- data-set: "vpp-3n-icx-curr-iter-mrr"
- - job-spec: "vpp-mlr-00"
- data-set: "vpp-3n-icx-curr-iter"
- - job-spec: "dpdk-mlr-00"
- data-set: "dpdk-3n-icx-curr-iter"
-
-- type: "table"
- title: "Job Specification Duration: 3n-icx-coverage"
- algorithm: "table_job_spec_duration"
- output-file: "{DIR[STATIC,VPP]}/job-spec-duration-3n-icx-cov"
- jb-type: "coverage"
- data: "vpp-3n-icx-curr-cov"
- lines:
- - job-spec: "crypto-00"
- build: "1"
- - job-spec: "crypto-01"
- build: "2"
- - job-spec: "crypto-02"
- build: "3"
- - job-spec: "crypto-03"
- build: "35"
- - job-spec: "crypto-04"
- build: "4"
- - job-spec: "crypto-05"
- build: "34"
- - job-spec: "ip4-00"
- build: "5"
- - job-spec: "ip4-01"
- build: "6"
- - job-spec: "ip4-02"
- build: "7"
- - job-spec: "ip4-03"
- build: "8"
- - job-spec: "ip4-04"
- build: "9"
- - job-spec: "ip4-05"
- build: "10"
- - job-spec: "ip4-06"
- build: "11"
- - job-spec: "ip4-07"
- build: "12"
- - job-spec: "ip4tun-00"
- build: "13"
- - job-spec: "ip4tun-02"
- build: "14"
- - job-spec: "ip6-00"
- build: "15"
- - job-spec: "ip6-01"
- build: "16"
- - job-spec: "ip6tun-00"
- build: "17"
- - job-spec: "l2-00"
- build: "18"
- - job-spec: "l2-01"
- build: "19"
- - job-spec: "l2-02"
- build: "20"
- - job-spec: "l2-03"
- build: "21"
- - job-spec: "l2-04"
- build: "22"
- - job-spec: "l2-05"
- build: "23"
- - job-spec: "l2-06"
- build: "24"
- - job-spec: "l2-07"
- build: "25"
- - job-spec: "l2-08"
- build: "26"
- - job-spec: "l2-09"
- build: "27"
- - job-spec: "l2-10"
- build: "28"
- - job-spec: "memif-00"
- build: "29"
- - job-spec: "srv6-00"
- build: "30"
- - job-spec: "srv6-01"
- build: "31"
- - job-spec: "vhost-00"
- build: "32"
- - job-spec: "vhost-01"
- build: "33"
-
-- type: "table"
- title: "Job Specification Duration: 2n-clx-iterative"
- algorithm: "table_job_spec_duration"
- output-file: "{DIR[STATIC,VPP]}/job-spec-duration-2n-clx-iter"
- jb-type: "iterative"
- lines:
- - job-spec: "vpp-mrr-00"
- data-set: "vpp-2n-clx-curr-iter-mrr"
- - job-spec: "vpp-mlr-00"
- data-set: "vpp-2n-clx-curr-iter"
- - job-spec: "vpp-gso-mrr-00"
- data-set: "vpp-2n-clx-curr-iter-gso"
- - job-spec: "soak-00"
- data-set: "vpp-2n-clx-curr-soak"
- - job-spec: "vsap-00"
- data-set: "vpp-2n-clx-curr-iter-vsap"
- - job-spec: "nfv-density-mrr-00"
- data-set: "vpp-2n-clx-curr-nfv-mrr"
- - job-spec: "nfv-density-mlr-00"
- data-set: "vpp-2n-clx-curr-nfv-ndrpdr"
- - job-spec: "reconf-00"
- data-set: "vpp-2n-clx-curr-nfv-reconf"
- - job-spec: "dpdk-mlr-00"
- data-set: "dpdk-2n-clx-curr-iter"
-
-- type: "table"
- title: "Job Specification Duration: 2n-clx-coverage"
- algorithm: "table_job_spec_duration"
- output-file: "{DIR[STATIC,VPP]}/job-spec-duration-2n-clx-cov"
- jb-type: "coverage"
- data: "vpp-2n-clx-curr-cov"
- lines:
- - job-spec: "gso-00"
- build: "4"
- - job-spec: "ip4-00"
- build: "5"
- - job-spec: "ip4-01"
- build: "6"
- - job-spec: "ip4-02"
- build: "7"
- - job-spec: "ip4-03"
- build: "8"
- - job-spec: "ip4-04"
- build: "9"
- - job-spec: "ip4-05"
- build: "10"
- - job-spec: "ip4-06"
- build: "11"
- - job-spec: "ip4-07"
- build: "12"
- - job-spec: "ip4tun-00"
- build: "13"
- - job-spec: "ip6-00"
- build: "14"
- - job-spec: "ip6-01"
- build: "15"
- - job-spec: "l2-00"
- build: "16"
- - job-spec: "l2-01"
- build: "17"
- - job-spec: "lb-00"
- build: "18"
- - job-spec: "memif-00"
- build: "19"
- - job-spec: "vhost-00"
- build: "20"
-
-- type: "table"
- title: "Job Specification Duration: 2n-dnv-iterative"
- algorithm: "table_job_spec_duration"
- output-file: "{DIR[STATIC,VPP]}/job-spec-duration-2n-dnv-iter"
- jb-type: "iterative"
- lines:
- - job-spec: "vpp-mrr-00"
- data-set: "vpp-2n-dnv-curr-iter-mrr"
- - job-spec: "vpp-mlr-00"
- data-set: "vpp-2n-dnv-curr-iter"
-
-- type: "table"
- title: "Job Specification Duration: 2n-dnv-coverage"
- algorithm: "table_job_spec_duration"
- output-file: "{DIR[STATIC,VPP]}/job-spec-duration-2n-dnv-cov"
- jb-type: "coverage"
- data: "vpp-2n-dnv-curr-cov"
- lines:
- - job-spec: "ip4-00"
- build: "1"
- - job-spec: "ip4-01"
- build: "7"
- - job-spec: "ip6-00"
- build: "3"
- - job-spec: "ip6-01"
- build: "4"
- - job-spec: "l2-00"
- build: "5"
- - job-spec: "l2-01"
- build: "6"
-
-- type: "table"
- title: "Job Specification Duration: 2n-aws-iterative"
- algorithm: "table_job_spec_duration"
- output-file: "{DIR[STATIC,VPP]}/job-spec-duration-2n-aws-iter"
- jb-type: "iterative"
- lines:
- - job-spec: "vpp-mrr-00"
- data-set: "vpp-2n-aws-curr-iter-mrr"
- - job-spec: "vpp-mlr-00"
- data-set: "vpp-2n-aws-curr-iter"
-
-- type: "table"
- title: "Job Specification Duration: 2n-aws-coverage"
- algorithm: "table_job_spec_duration"
- output-file: "{DIR[STATIC,VPP]}/job-spec-duration-2n-aws-cov"
- jb-type: "coverage"
- data: "vpp-2n-aws-curr-cov"
- lines:
- - job-spec: "vpp-00"
- build: "1"
-
-# - type: "table"
-# title: "Job Specification Duration: 3n-aws-iterative"
-# algorithm: "table_job_spec_duration"
-# output-file: "{DIR[STATIC,VPP]}/job-spec-duration-3n-aws-iter"
-# jb-type: "iterative"
-# lines:
-# - job-spec: "vpp-mrr-00"
-# data-set: "vpp-3n-aws-curr-iter-mrr"
-# - job-spec: "vpp-mlr-00"
-# data-set: "vpp-3n-aws-curr-iter"
-
-# - type: "table"
-# title: "Job Specification Duration: 3n-aws-coverage"
-# algorithm: "table_job_spec_duration"
-# output-file: "{DIR[STATIC,VPP]}/job-spec-duration-3n-aws-cov"
-# jb-type: "coverage"
-# data: "vpp-3n-aws-curr-cov"
-# lines:
-# - job-spec: "vpp-00"
-# build: "1"
-
-- type: "table"
- title: "Job Specification Duration: 2n-skx-iterative"
- algorithm: "table_job_spec_duration"
- output-file: "{DIR[STATIC,VPP]}/job-spec-duration-2n-skx-iter"
- jb-type: "iterative"
- lines:
- - job-spec: "vpp-mrr-00"
- data-set: "vpp-2n-skx-curr-iter-mrr"
- - job-spec: "vpp-mlr-00"
- data-set: "vpp-2n-skx-curr-iter"
- - job-spec: "vpp-gso-mrr-00"
- data-set: "vpp-2n-skx-curr-iter-gso"
- - job-spec: "soak-00"
- data-set: "vpp-2n-skx-curr-soak"
- - job-spec: "nfv-density-mrr-00"
- data-set: "vpp-2n-skx-curr-nfv-mrr"
- - job-spec: "nfv-density-mlr-00"
- data-set: "vpp-2n-skx-curr-nfv-ndrpdr"
- - job-spec: "reconf-00"
- data-set: "vpp-2n-skx-curr-nfv-reconf"
- - job-spec: "dpdk-mlr-00"
- data-set: "dpdk-2n-skx-curr-iter"
- - job-spec: "trex-mlr-00"
- data-set: "trex-2n-skx-curr-iter"
-
-- type: "table"
- title: "Job Specification Duration: 2n-skx-coverage"
- algorithm: "table_job_spec_duration"
- output-file: "{DIR[STATIC,VPP]}/job-spec-duration-2n-skx-cov"
- jb-type: "coverage"
- data: "vpp-2n-skx-curr-cov"
- lines:
- - job-spec: "gso-00"
- build: "1"
- - job-spec: "ip4-00"
- build: "2"
- - job-spec: "ip4-01"
- build: "3"
- - job-spec: "ip4-02"
- build: "4"
- - job-spec: "ip4-03"
- build: "5"
- - job-spec: "ip4-04"
- build: "6"
- - job-spec: "ip4-05"
- build: "7"
- - job-spec: "ip4-06"
- build: "8"
- - job-spec: "ip4-07"
- build: "9"
- - job-spec: "ip4tun-00"
- build: "10"
- - job-spec: "ip6-00"
- build: "11"
- - job-spec: "ip6-01"
- build: "12"
- - job-spec: "l2-00"
- build: "13"
- - job-spec: "l2-01"
- build: "14"
- - job-spec: "lb-00"
- build: "15"
- - job-spec: "memif-00"
- build: "16"
- - job-spec: "vhost-00"
- build: "17"
-
-- type: "table"
- title: "Job Specification Duration: 2n-tx2-iterative"
- algorithm: "table_job_spec_duration"
- output-file: "{DIR[STATIC,VPP]}/job-spec-duration-2n-tx2-iter"
- jb-type: "iterative"
- lines:
- - job-spec: "vpp-mrr-00"
- data-set: "vpp-2n-tx2-curr-iter-mrr"
- - job-spec: "vpp-mlr-00"
- data-set: "vpp-2n-tx2-curr-iter"
-
-- type: "table"
- title: "Job Specification Duration: 2n-tx2-coverage"
- algorithm: "table_job_spec_duration"
- output-file: "{DIR[STATIC,VPP]}/job-spec-duration-2n-tx2-cov"
- jb-type: "coverage"
- data: "vpp-2n-tx2-curr-cov"
- lines:
- - job-spec: "ip4-00"
- build: "1"
- - job-spec: "ip4-01"
- build: "2"
- - job-spec: "ip4-02"
- build: "3"
- - job-spec: "ip4-03"
- build: "4"
- - job-spec: "ip4-04"
- build: "5"
- - job-spec: "ip4-05"
- build: "6"
- - job-spec: "ip4-06"
- build: "7"
- - job-spec: "ip6-00"
- build: "8"
- - job-spec: "ip6-01"
- build: "9"
- - job-spec: "l2-00"
- build: "10"
- - job-spec: "l2-01"
- build: "11"
- - job-spec: "l2-02"
- build: "12"
- - job-spec: "l2-03"
- build: "13"
- - job-spec: "l2-04"
- build: "14"
-
-- type: "table"
- title: "Job Specification Duration: 2n-zn2-iterative"
- algorithm: "table_job_spec_duration"
- output-file: "{DIR[STATIC,VPP]}/job-spec-duration-2n-zn2-iter"
- jb-type: "iterative"
- lines:
- - job-spec: "vpp-mrr-00"
- data-set: "vpp-2n-zn2-curr-iter-mrr"
- - job-spec: "vpp-mlr-00"
- data-set: "vpp-2n-zn2-curr-iter"
- - job-spec: "vpp-gso-mrr-00"
- data-set: "vpp-2n-zn2-curr-iter-gso"
- - job-spec: "dpdk-mlr-00"
- data-set: "dpdk-2n-zn2-curr-iter"
-
-- type: "table"
- title: "Job Specification Duration: 2n-zn2-coverage"
- algorithm: "table_job_spec_duration"
- output-file: "{DIR[STATIC,VPP]}/job-spec-duration-2n-zn2-cov"
- jb-type: "coverage"
- data: "vpp-2n-zn2-curr-cov"
- lines:
- - job-spec: "gso-00"
- build: "1"
- - job-spec: "ip4-00"
- build: "2"
- - job-spec: "ip4-01"
- build: "3"
- - job-spec: "ip4-02"
- build: "4"
- - job-spec: "ip4-03"
- build: "5"
- - job-spec: "ip4-04"
- build: "6"
- - job-spec: "ip4-05"
- build: "7"
- - job-spec: "ip4tun-00"
- build: "8"
- - job-spec: "ip6-00"
- build: "9"
- - job-spec: "ip6-01"
- build: "10"
- - job-spec: "l2-00"
- build: "11"
- - job-spec: "l2-01"
- build: "12"
- - job-spec: "lb-00"
- build: "13"
- - job-spec: "memif-00"
- build: "14"
- - job-spec: "vhost-00"
- build: "15"
-
-- type: "table"
- title: "Job Specification Duration: 3n-dnv-iterative"
- algorithm: "table_job_spec_duration"
- output-file: "{DIR[STATIC,VPP]}/job-spec-duration-3n-dnv-iter"
- jb-type: "iterative"
- lines:
- - job-spec: "vpp-mrr-00"
- data-set: "vpp-3n-dnv-curr-iter-mrr"
- - job-spec: "vpp-mlr-00"
- data-set: "vpp-3n-dnv-curr-iter"
-
-- type: "table"
- title: "Job Specification Duration: 3n-dnv-coverage"
- algorithm: "table_job_spec_duration"
- output-file: "{DIR[STATIC,VPP]}/job-spec-duration-3n-dnv-cov"
- jb-type: "coverage"
- data: "vpp-3n-dnv-curr-cov"
- lines:
- - job-spec: "crypto-00"
- build: "1"
- - job-spec: "crypto-01"
- build: "2"
- - job-spec: "crypto-02"
- build: "3"
- - job-spec: "ip4-00"
- build: "4"
- - job-spec: "ip4-01"
- build: "5"
- - job-spec: "ip4tun-00"
- build: "6"
- - job-spec: "ip6-00"
- build: "7"
- - job-spec: "ip6-01"
- build: "8"
- - job-spec: "l2-00"
- build: "9"
- - job-spec: "l2-01"
- build: "10"
-
-- type: "table"
- title: "Job Specification Duration: 3n-skx-iterative"
- algorithm: "table_job_spec_duration"
- output-file: "{DIR[STATIC,VPP]}/job-spec-duration-3n-skx-iter"
- jb-type: "iterative"
- lines:
- - job-spec: "vpp-mrr-00"
- data-set: "vpp-3n-skx-curr-iter-mrr"
- - job-spec: "vpp-mlr-00"
- data-set: "vpp-3n-skx-curr-iter"
- - job-spec: "hoststack-00"
- data-set: "vpp-3n-skx-curr-iter-hoststack"
- - job-spec: "dpdk-mlr-00"
- data-set: "dpdk-3n-skx-curr-iter"
-
-- type: "table"
- title: "Job Specification Duration: 3n-skx-coverage"
- algorithm: "table_job_spec_duration"
- output-file: "{DIR[STATIC,VPP]}/job-spec-duration-3n-skx-cov"
- jb-type: "coverage"
- data: "vpp-3n-skx-curr-cov"
- lines:
- - job-spec: "crypto-00"
- build: "1"
- - job-spec: "crypto-01"
- build: "2"
- - job-spec: "crypto-02"
- build: "3"
- - job-spec: "crypto-03"
- build: "34"
- - job-spec: "crypto-04"
- build: "4"
- - job-spec: "ip4-00"
- build: "5"
- - job-spec: "ip4-01"
- build: "6"
- - job-spec: "ip4-02"
- build: "7"
- - job-spec: "ip4-03"
- build: "8"
- - job-spec: "ip4-04"
- build: "9"
- - job-spec: "ip4-05"
- build: "10"
- - job-spec: "ip4-06"
- build: "11"
- - job-spec: "ip4-07"
- build: "12"
- - job-spec: "ip4tun-00"
- build: "13"
- - job-spec: "ip4tun-02"
- build: "14"
- - job-spec: "ip6-00"
- build: "15"
- - job-spec: "ip6-01"
- build: "16"
- - job-spec: "ip6tun-00"
- build: "17"
- - job-spec: "l2-00"
- build: "18"
- - job-spec: "l2-01"
- build: "19"
- - job-spec: "l2-02"
- build: "20"
- - job-spec: "l2-03"
- build: "21"
- - job-spec: "l2-04"
- build: "22"
- - job-spec: "l2-05"
- build: "23"
- - job-spec: "l2-06"
- build: "24"
- - job-spec: "l2-07"
- build: "25"
- - job-spec: "l2-08"
- build: "26"
- - job-spec: "l2-09"
- build: "27"
- - job-spec: "l2-10"
- build: "28"
- - job-spec: "memif-00"
- build: "29"
- - job-spec: "srv6-00"
- build: "30"
- - job-spec: "srv6-01"
- build: "31"
- - job-spec: "vhost-00"
- build: "32"
- - job-spec: "vhost-01"
- build: "33"
-
-- type: "table"
- title: "Job Specification Duration: 3n-tsh-iterative"
- algorithm: "table_job_spec_duration"
- output-file: "{DIR[STATIC,VPP]}/job-spec-duration-3n-tsh-iter"
- jb-type: "iterative"
- lines:
- - job-spec: "vpp-mrr-00"
- data-set: "vpp-3n-tsh-curr-iter-mrr"
- - job-spec: "vpp-mlr-00"
- data-set: "vpp-3n-tsh-curr-iter"
- - job-spec: "dpdk-mlr-00"
- data-set: "dpdk-3n-tsh-curr-iter"
-
-- type: "table"
- title: "Job Specification Duration: 3n-tsh-coverage"
- algorithm: "table_job_spec_duration"
- output-file: "{DIR[STATIC,VPP]}/job-spec-duration-3n-tsh-cov"
- jb-type: "coverage"
- data: "vpp-3n-tsh-curr-cov"
- lines:
- - job-spec: "ip4-00"
- build: "1"
- - job-spec: "ip4-01"
- build: "2"
- - job-spec: "ip4-02"
- build: "3"
- - job-spec: "ip4-03"
- build: "4"
- - job-spec: "ip4tun-00"
- build: "5"
- - job-spec: "ip6-00"
- build: "6"
- - job-spec: "ip6-01"
- build: "7"
- - job-spec: "l2-00"
- build: "8"
- - job-spec: "l2-01"
- build: "9"
- - job-spec: "l2-02"
- build: "10"
- - job-spec: "l2-03"
- build: "11"
- - job-spec: "l2-04"
- build: "12"
- - job-spec: "memif-00"
- build: "13"
- - job-spec: "srv6-00"
- build: "14"
- - job-spec: "srv6-01"
- build: "15"
- - job-spec: "vhost-00"
- build: "16"
- - job-spec: "vhost-01"
- build: "17"
-
-- type: "table"
- title: "Job Specification Duration: 3n-alt-iterative"
- algorithm: "table_job_spec_duration"
- output-file: "{DIR[STATIC,VPP]}/job-spec-duration-3n-alt-iter"
- jb-type: "iterative"
- lines:
- - job-spec: "vpp-mrr-00"
- data-set: "vpp-3n-alt-curr-iter-mrr"
- - job-spec: "vpp-mlr-00"
- data-set: "vpp-3n-alt-curr-iter"
- - job-spec: "dpdk-mlr-00"
- data-set: "dpdk-3n-alt-curr-iter"
-
-- type: "table"
- title: "Job Specification Duration: 3n-alt-coverage"
- algorithm: "table_job_spec_duration"
- output-file: "{DIR[STATIC,VPP]}/job-spec-duration-3n-alt-cov"
- jb-type: "coverage"
- data: "vpp-3n-alt-curr-cov"
- lines:
- - job-spec: "ip4-00"
- build: "1"
- - job-spec: "ip4-01"
- build: "2"
- - job-spec: "ip4-02"
- build: "3"
- - job-spec: "ip4-03"
- build: "4"
- - job-spec: "ip4tun-00"
- build: "5"
- - job-spec: "ip6-00"
- build: "6"
- - job-spec: "ip6-01"
- build: "7"
- - job-spec: "l2-00"
- build: "8"
- - job-spec: "l2-01"
- build: "9"
- - job-spec: "l2-02"
- build: "10"
- - job-spec: "l2-03"
- build: "11"
- - job-spec: "l2-04"
- build: "12"
- - job-spec: "memif-00"
- build: "13"
- - job-spec: "srv6-00"
- build: "14"
- - job-spec: "srv6-01"
- build: "15"
- - job-spec: "vhost-00"
- build: "16"
- - job-spec: "vhost-01"
- build: "17"
-
-# VPP Normalized Comparison Across Testbeds 2n-skx to 2n-clx 2t1c ndr
-- type: "table"
- title: "VPP Normalized 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 xxv710"
- data-set: "vpp-2n-skx-curr-iter"
- - title: "2n-clx xxv710"
- data-set: "vpp-2n-clx-curr-iter"
- comparisons:
- - title: "2n-clx vs 2n-skx"
- reference: 1
- compare: 2
- - title: "Normalized 2n-clx vs 2n-skx"
- reference: 1
- compare: 2
- norm-ref: "2n-skx"
- norm-cmp: "2n-clx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-skx and 2n-clx with xxv710.'
- - '2n-skx, 2n-clx: [Mpps +- StDev] results for VPP tested in CSIT'
- - '2n-clx vs 2n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 2n-clx vs 2n-skx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# VPP Normalized Comparison Across Testbeds 2n-skx to 2n-clx 4t2c ndr
-- type: "table"
- title: "VPP Normalized 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 xxv710"
- data-set: "vpp-2n-skx-curr-iter"
- - title: "2n-clx xxv710"
- data-set: "vpp-2n-clx-curr-iter"
- comparisons:
- - title: "2n-clx vs 2n-skx"
- reference: 1
- compare: 2
- - title: "Normalized 2n-clx vs 2n-skx"
- reference: 1
- compare: 2
- norm-ref: "2n-skx"
- norm-cmp: "2n-clx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-skx and 2n-clx with xxv710.'
- - '2n-skx, 2n-clx: [Mpps +- StDev] results for VPP tested in CSIT'
- - '2n-clx vs 2n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 2n-clx vs 2n-skx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# VPP Normalized Comparison Across Testbeds 2n-skx to 2n-clx 2t1c pdr
-- type: "table"
- title: "VPP Normalized 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 xxv710"
- data-set: "vpp-2n-skx-curr-iter"
- - title: "2n-clx xxv710"
- data-set: "vpp-2n-clx-curr-iter"
- comparisons:
- - title: "2n-clx vs 2n-skx"
- reference: 1
- compare: 2
- - title: "Normalized 2n-clx vs 2n-skx"
- reference: 1
- compare: 2
- norm-ref: "2n-skx"
- norm-cmp: "2n-clx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-skx and 2n-clx with xxv710.'
- - '2n-skx, 2n-clx: [Mpps +- StDev] results for VPP tested in CSIT'
- - '2n-clx vs 2n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 2n-clx vs 2n-skx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# VPP Normalized Comparison Across Testbeds 2n-skx to 2n-clx 4t2c pdr
-- type: "table"
- title: "VPP Normalized 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 xxv710"
- data-set: "vpp-2n-skx-curr-iter"
- - title: "2n-clx xxv710"
- data-set: "vpp-2n-clx-curr-iter"
- comparisons:
- - title: "2n-clx vs 2n-skx"
- reference: 1
- compare: 2
- - title: "Normalized 2n-clx vs 2n-skx"
- reference: 1
- compare: 2
- norm-ref: "2n-skx"
- norm-cmp: "2n-clx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-skx and 2n-clx with xxv710.'
- - '2n-skx, 2n-clx: [Mpps +- StDev] results for VPP tested in CSIT'
- - '2n-clx vs 2n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 2n-clx vs 2n-skx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# VPP Normalized Comparison Across Testbeds 2n-clx to 2n-icx 1c ndr
-- type: "table"
- title: "VPP Normalized Comparison Across Testbeds 2n-clx to 2n-icx 1c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-2n-clx-2n-icx-1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-XXV710' and 'NDRPDR' and '1C'"
- columns:
- - title: "2n-clx xxv710"
- data-set: "vpp-2n-clx-curr-iter"
- - title: "2n-icx xxv710"
- data-set: "vpp-2n-icx-curr-iter"
- comparisons:
- - title: "2n-icx vs 2n-clx"
- reference: 1
- compare: 2
- - title: "Normalized 2n-icx vs 2n-clx"
- reference: 1
- compare: 2
- norm-ref: "2n-clx"
- norm-cmp: "2n-icx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-clx and 2n-icx with xxv710.'
- - '2n-clx, 2n-icx: [Mpps +- StDev] results for VPP tested in CSIT'
- - '2n-icx vs 2n-clx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 2n-icx vs 2n-clx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# VPP Normalized Comparison Across Testbeds 2n-clx to 2n-icx 2c ndr
-- type: "table"
- title: "VPP Normalized Comparison Across Testbeds 2n-clx to 2n-icx 2c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-2n-clx-2n-icx-2c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-XXV710' and 'NDRPDR' and '2C'"
- columns:
- - title: "2n-clx xxv710"
- data-set: "vpp-2n-clx-curr-iter"
- - title: "2n-icx xxv710"
- data-set: "vpp-2n-icx-curr-iter"
- comparisons:
- - title: "2n-icx vs 2n-clx"
- reference: 1
- compare: 2
- - title: "Normalized 2n-icx vs 2n-clx"
- reference: 1
- compare: 2
- norm-ref: "2n-clx"
- norm-cmp: "2n-icx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-clx and 2n-icx with xxv710.'
- - '2n-clx, 2n-icx: [Mpps +- StDev] results for VPP tested in CSIT'
- - '2n-icx vs 2n-clx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 2n-icx vs 2n-clx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# VPP Normalized Comparison Across Testbeds 2n-clx to 2n-icx 1c pdr
-- type: "table"
- title: "VPP Normalized Comparison Across Testbeds 2n-clx to 2n-icx 1c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-2n-clx-2n-icx-1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-XXV710' and 'NDRPDR' and '1C'"
- columns:
- - title: "2n-clx xxv710"
- data-set: "vpp-2n-clx-curr-iter"
- - title: "2n-icx xxv710"
- data-set: "vpp-2n-icx-curr-iter"
- comparisons:
- - title: "2n-icx vs 2n-clx"
- reference: 1
- compare: 2
- - title: "Normalized 2n-icx vs 2n-clx"
- reference: 1
- compare: 2
- norm-ref: "2n-clx"
- norm-cmp: "2n-icx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-clx and 2n-icx with xxv710.'
- - '2n-clx, 2n-icx: [Mpps +- StDev] results for VPP tested in CSIT'
- - '2n-icx vs 2n-clx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 2n-icx vs 2n-clx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# VPP Normalized Comparison Across Testbeds 2n-clx to 2n-icx 2c pdr
-- type: "table"
- title: "VPP Normalized Comparison Across Testbeds 2n-clx to 2n-icx 2c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-2n-clx-2n-icx-2c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-XXV710' and 'NDRPDR' and '2C'"
- columns:
- - title: "2n-clx xxv710"
- data-set: "vpp-2n-clx-curr-iter"
- - title: "2n-icx xxv710"
- data-set: "vpp-2n-icx-curr-iter"
- comparisons:
- - title: "2n-icx vs 2n-clx"
- reference: 1
- compare: 2
- - title: "Normalized 2n-icx vs 2n-clx"
- reference: 1
- compare: 2
- norm-ref: "2n-clx"
- norm-cmp: "2n-icx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-clx and 2n-icx with xxv710.'
- - '2n-clx, 2n-icx: [Mpps +- StDev] results for VPP tested in CSIT'
- - '2n-icx vs 2n-clx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 2n-icx vs 2n-clx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# VPP Normalized Comparison Across Testbeds 2n-skx to 2n-icx 1c ndr
-- type: "table"
- title: "VPP Normalized Comparison Across Testbeds 2n-skx to 2n-icx 1c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-2n-skx-2n-icx-1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-XXV710' and 'NDRPDR' and '1C'"
- columns:
- - title: "2n-skx xxv710"
- data-set: "vpp-2n-skx-curr-iter"
- - title: "2n-icx xxv710"
- data-set: "vpp-2n-icx-curr-iter"
- comparisons:
- - title: "2n-icx vs 2n-skx"
- reference: 1
- compare: 2
- - title: "Normalized 2n-icx vs 2n-skx"
- reference: 1
- compare: 2
- norm-ref: "2n-skx"
- norm-cmp: "2n-icx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-skx and 2n-icx with xxv710.'
- - '2n-skx, 2n-icx: [Mpps +- StDev] results for VPP tested in CSIT'
- - '2n-icx vs 2n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 2n-icx vs 2n-skx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# VPP Normalized Comparison Across Testbeds 2n-skx to 2n-icx 2c ndr
-- type: "table"
- title: "VPP Normalized Comparison Across Testbeds 2n-skx to 2n-icx 2c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-2n-skx-2n-icx-2c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-XXV710' and 'NDRPDR' and '2C'"
- columns:
- - title: "2n-skx xxv710"
- data-set: "vpp-2n-skx-curr-iter"
- - title: "2n-icx xxv710"
- data-set: "vpp-2n-icx-curr-iter"
- comparisons:
- - title: "2n-icx vs 2n-skx"
- reference: 1
- compare: 2
- - title: "Normalized 2n-icx vs 2n-skx"
- reference: 1
- compare: 2
- norm-ref: "2n-skx"
- norm-cmp: "2n-icx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-skx and 2n-icx with xxv710.'
- - '2n-skx, 2n-icx: [Mpps +- StDev] results for VPP tested in CSIT'
- - '2n-icx vs 2n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 2n-icx vs 2n-skx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# VPP Normalized Comparison Across Testbeds 2n-skx to 2n-icx 1c pdr
-- type: "table"
- title: "VPP Normalized Comparison Across Testbeds 2n-skx to 2n-icx 1c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-2n-skx-2n-icx-1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-XXV710' and 'NDRPDR' and '1C'"
- columns:
- - title: "2n-skx xxv710"
- data-set: "vpp-2n-skx-curr-iter"
- - title: "2n-icx xxv710"
- data-set: "vpp-2n-icx-curr-iter"
- comparisons:
- - title: "2n-icx vs 2n-skx"
- reference: 1
- compare: 2
- - title: "Normalized 2n-icx vs 2n-skx"
- reference: 1
- compare: 2
- norm-ref: "2n-skx"
- norm-cmp: "2n-icx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-skx and 2n-icx with xxv710.'
- - '2n-skx, 2n-icx: [Mpps +- StDev] results for VPP tested in CSIT'
- - '2n-icx vs 2n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 2n-icx vs 2n-skx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# VPP Normalized Comparison Across Testbeds 2n-skx to 2n-icx 2c pdr
-- type: "table"
- title: "VPP Normalized Comparison Across Testbeds 2n-skx to 2n-icx 2c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-2n-skx-2n-icx-2c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-XXV710' and 'NDRPDR' and '2C'"
- columns:
- - title: "2n-skx xxv710"
- data-set: "vpp-2n-skx-curr-iter"
- - title: "2n-icx xxv710"
- data-set: "vpp-2n-icx-curr-iter"
- comparisons:
- - title: "2n-icx vs 2n-skx"
- reference: 1
- compare: 2
- - title: "Normalized 2n-icx vs 2n-skx"
- reference: 1
- compare: 2
- norm-ref: "2n-skx"
- norm-cmp: "2n-icx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-skx and 2n-icx with xxv710.'
- - '2n-skx, 2n-icx: [Mpps +- StDev] results for VPP tested in CSIT'
- - '2n-icx vs 2n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 2n-icx vs 2n-skx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# VPP Normalized Comparison Across Testbeds 3n-skx to 3n-icx 1c ndr
-- type: "table"
- title: "VPP Normalized Comparison Across Testbeds 3n-skx to 3n-icx 1c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-3n-skx-3n-icx-1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-XXV710' and 'NDRPDR' and '1C'"
- columns:
- - title: "3n-skx xxv710"
- data-set: "vpp-3n-skx-curr-iter"
- - title: "3n-icx xxv710"
- data-set: "vpp-3n-icx-curr-iter"
- comparisons:
- - title: "3n-icx vs 3n-skx"
- reference: 1
- compare: 2
- - title: "Normalized 3n-icx vs 3n-skx"
- reference: 1
- compare: 2
- norm-ref: "3n-skx"
- norm-cmp: "3n-icx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 3n-skx and 3n-icx with xxv710.'
- - '3n-skx, 3n-icx: [Mpps +- StDev] results for VPP tested in CSIT'
- - '3n-icx vs 3n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 3n-icx vs 3n-skx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# VPP Normalized Comparison Across Testbeds 3n-skx to 3n-icx 2c ndr
-- type: "table"
- title: "VPP Normalized Comparison Across Testbeds 3n-skx to 3n-icx ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-3n-skx-3n-icx-2c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-XXV710' and 'NDRPDR' and '2C'"
- columns:
- - title: "3n-skx xxv710"
- data-set: "vpp-3n-skx-curr-iter"
- - title: "3n-icx xxv710"
- data-set: "vpp-3n-icx-curr-iter"
- comparisons:
- - title: "3n-icx vs 3n-skx"
- reference: 1
- compare: 2
- - title: "Normalized 3n-icx vs 3n-skx"
- reference: 1
- compare: 2
- norm-ref: "3n-skx"
- norm-cmp: "3n-icx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 3n-skx and 3n-icx with xxv710.'
- - '3n-skx, 3n-icx: [Mpps +- StDev] results for VPP tested in CSIT'
- - '3n-icx vs 3n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 3n-icx vs 3n-skx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# VPP Normalized Comparison Across Testbeds 3n-skx to 3n-icx 1c pdr
-- type: "table"
- title: "VPP Normalized Comparison Across Testbeds 3n-skx to 3n-icx 1c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-3n-skx-3n-icx-1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-XXV710' and 'NDRPDR' and '1C'"
- columns:
- - title: "3n-skx xxv710"
- data-set: "vpp-3n-skx-curr-iter"
- - title: "3n-icx xxv710"
- data-set: "vpp-3n-icx-curr-iter"
- comparisons:
- - title: "3n-icx vs 3n-skx"
- reference: 1
- compare: 2
- - title: "Normalized 3n-icx vs 3n-skx"
- reference: 1
- compare: 2
- norm-ref: "3n-skx"
- norm-cmp: "3n-icx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-skx and 3n-icx with xxv710.'
- - '3n-skx, 3n-icx: [Mpps +- StDev] results for VPP tested in CSIT'
- - '3n-icx vs 3n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 3n-icx vs 3n-skx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# VPP Normalized Comparison Across Testbeds 3n-skx to 3n-icx 2c pdr
-- type: "table"
- title: "VPP Normalized Comparison Across Testbeds 3n-skx to 3n-icx 2c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-3n-skx-3n-icx-2c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-XXV710' and 'NDRPDR' and '2C'"
- columns:
- - title: "3n-skx xxv710"
- data-set: "vpp-3n-skx-curr-iter"
- - title: "3n-icx xxv710"
- data-set: "vpp-3n-icx-curr-iter"
- comparisons:
- - title: "3n-icx vs 3n-skx"
- reference: 1
- compare: 2
- - title: "Normalized 3n-icx vs 3n-skx"
- reference: 1
- compare: 2
- norm-ref: "3n-skx"
- norm-cmp: "3n-icx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-skx and 3n-icx with xxv710.'
- - '3n-skx, 3n-icx: [Mpps +- StDev] results for VPP tested in CSIT'
- - '3n-icx vs 3n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 3n-icx vs 3n-skx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# VPP Normalized Comparison Across Testbeds 2n-skx to 2n-clx 2t1c mrr
-- type: "table"
- title: "VPP Normalized 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 xxv710"
- data-set: "vpp-2n-skx-curr-iter-mrr"
- - title: "2n-clx xxv710"
- data-set: "vpp-2n-clx-curr-iter-mrr"
- comparisons:
- - title: "2n-clx vs 2n-skx"
- reference: 1
- compare: 2
- - title: "Normalized 2n-clx vs 2n-skx"
- reference: 1
- compare: 2
- norm-ref: "2n-skx"
- norm-cmp: "2n-clx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-skx and 2n-clx with xxv710.'
- - '2n-skx, 2n-clx: [Mpps +- StDev] results for VPP tested in CSIT'
- - '2n-clx vs 2n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 2n-clx vs 2n-skx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# VPP Normalized Comparison Across Testbeds 2n-skx to 2n-clx 4t2c mrr
-- type: "table"
- title: "VPP Normalized 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 xxv710"
- data-set: "vpp-2n-skx-curr-iter-mrr"
- - title: "2n-clx xxv710"
- data-set: "vpp-2n-clx-curr-iter-mrr"
- comparisons:
- - title: "2n-clx vs 2n-skx"
- reference: 1
- compare: 2
- - title: "Normalized 2n-clx vs 2n-skx"
- reference: 1
- compare: 2
- norm-ref: "2n-skx"
- norm-cmp: "2n-clx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-skx and 2n-clx with xxv710.'
- - '2n-skx, 2n-clx: [Mpps +- StDev] results for VPP tested in CSIT'
- - '2n-clx vs 2n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 2n-clx vs 2n-skx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# VPP Normalized Comparison Across Testbeds 2n-skx to 2n-clx 8t4c mrr
-- type: "table"
- title: "VPP Normalized 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 xxv710"
- data-set: "vpp-2n-skx-curr-iter-mrr"
- - title: "2n-clx xxv710"
- data-set: "vpp-2n-clx-curr-iter-mrr"
- comparisons:
- - title: "2n-clx vs 2n-skx"
- reference: 1
- compare: 2
- - title: "Normalized 2n-clx vs 2n-skx"
- reference: 1
- compare: 2
- norm-ref: "2n-skx"
- norm-cmp: "2n-clx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-skx and 2n-clx with xxv710.'
- - '2n-skx, 2n-clx: [Mpps +- StDev] results for VPP tested in CSIT'
- - '2n-clx vs 2n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 2n-clx vs 2n-skx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# VPP Normalized Comparison Across Testbeds 2n-clx to 2n-icx 1c mrr
-- type: "table"
- title: "VPP Normalized Comparison Across Testbeds 2n-clx to 2n-icx 1c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-2n-clx-2n-icx-1c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-XXV710' and 'MRR' and '1C'"
- columns:
- - title: "2n-clx xxv710"
- data-set: "vpp-2n-clx-curr-iter-mrr"
- - title: "2n-icx xxv710"
- data-set: "vpp-2n-icx-curr-iter-mrr"
- comparisons:
- - title: "2n-icx vs 2n-clx"
- reference: 1
- compare: 2
- - title: "Normalized 2n-icx vs 2n-clx"
- reference: 1
- compare: 2
- norm-ref: "2n-clx"
- norm-cmp: "2n-icx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-clx and 2n-icx with xxv710.'
- - '2n-clx, 2n-icx: [Mpps +- StDev] results for VPP tested in CSIT'
- - '2n-icx vs 2n-clx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 2n-icx vs 2n-clx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# VPP Normalized Comparison Across Testbeds 2n-clx to 2n-icx 2c mrr
-- type: "table"
- title: "VPP Normalized Comparison Across Testbeds 2n-clx to 2n-icx 2c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-2n-clx-2n-icx-2c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-XXV710' and 'MRR' and '2C'"
- columns:
- - title: "2n-clx xxv710"
- data-set: "vpp-2n-clx-curr-iter-mrr"
- - title: "2n-icx xxv710"
- data-set: "vpp-2n-icx-curr-iter-mrr"
- comparisons:
- - title: "2n-icx vs 2n-clx"
- reference: 1
- compare: 2
- - title: "Normalized 2n-icx vs 2n-clx"
- reference: 1
- compare: 2
- norm-ref: "2n-clx"
- norm-cmp: "2n-icx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-clx and 2n-icx with xxv710.'
- - '2n-clx, 2n-icx: [Mpps +- StDev] results for VPP tested in CSIT'
- - '2n-icx vs 2n-clx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 2n-icx vs 2n-clx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# VPP Normalized Comparison Across Testbeds 2n-clx to 2n-icx 4c mrr
-- type: "table"
- title: "VPP Normalized Comparison Across Testbeds 2n-clx to 2n-icx 4c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-2n-clx-2n-icx-4c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-XXV710' and 'MRR' and '4C'"
- columns:
- - title: "2n-clx xxv710"
- data-set: "vpp-2n-clx-curr-iter-mrr"
- - title: "2n-icx xxv710"
- data-set: "vpp-2n-icx-curr-iter-mrr"
- comparisons:
- - title: "2n-icx vs 2n-clx"
- reference: 1
- compare: 2
- - title: "Normalized 2n-icx vs 2n-clx"
- reference: 1
- compare: 2
- norm-ref: "2n-clx"
- norm-cmp: "2n-icx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-clx and 2n-icx with xxv710.'
- - '2n-clx, 2n-icx: [Mpps +- StDev] results for VPP tested in CSIT'
- - '2n-icx vs 2n-clx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 2n-icx vs 2n-clx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# VPP Normalized Comparison Across Testbeds 2n-skx to 2n-icx 1c mrr
-- type: "table"
- title: "VPP Normalized Comparison Across Testbeds 2n-skx to 2n-icx 1c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-2n-skx-2n-icx-1c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-XXV710' and 'MRR' and '1C'"
- columns:
- - title: "2n-skx xxv710"
- data-set: "vpp-2n-skx-curr-iter-mrr"
- - title: "2n-icx xxv710"
- data-set: "vpp-2n-icx-curr-iter-mrr"
- comparisons:
- - title: "2n-icx vs 2n-clx"
- reference: 1
- compare: 2
- - title: "Normalized 2n-icx vs 2n-skx"
- reference: 1
- compare: 2
- norm-ref: "2n-skx"
- norm-cmp: "2n-icx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-skx and 2n-icx with xxv710.'
- - '2n-skx, 2n-icx: [Mpps +- StDev] results for VPP tested in CSIT'
- - '2n-icx vs 2n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 2n-icx vs 2n-skx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# VPP Normalized Comparison Across Testbeds 2n-skx to 2n-icx 2c mrr
-- type: "table"
- title: "VPP Normalized Comparison Across Testbeds 2n-skx to 2n-icx 2c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-2n-skx-2n-icx-2c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-XXV710' and 'MRR' and '2C'"
- columns:
- - title: "2n-skx xxv710"
- data-set: "vpp-2n-skx-curr-iter-mrr"
- - title: "2n-icx xxv710"
- data-set: "vpp-2n-icx-curr-iter-mrr"
- comparisons:
- - title: "2n-icx vs 2n-skx"
- reference: 1
- compare: 2
- - title: "Normalized 2n-icx vs 2n-skx"
- reference: 1
- compare: 2
- norm-ref: "2n-skx"
- norm-cmp: "2n-icx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-skx and 2n-icx with xxv710.'
- - '2n-skx, 2n-icx: [Mpps +- StDev] results for VPP tested in CSIT'
- - '2n-icx vs 2n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 2n-icx vs 2n-skx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# VPP Normalized Comparison Across Testbeds 2n-skx to 2n-icx 4c mrr
-- type: "table"
- title: "VPP Normalized Comparison Across Testbeds 2n-skx to 2n-icx 4c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-2n-skx-2n-icx-4c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-XXV710' and 'MRR' and '4C'"
- columns:
- - title: "2n-skx xxv710"
- data-set: "vpp-2n-skx-curr-iter-mrr"
- - title: "2n-icx xxv710"
- data-set: "vpp-2n-icx-curr-iter-mrr"
- comparisons:
- - title: "2n-icx vs 2n-skx"
- reference: 1
- compare: 2
- - title: "Normalized 2n-icx vs 2n-skx"
- reference: 1
- compare: 2
- norm-ref: "2n-skx"
- norm-cmp: "2n-icx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-skx and 2n-icx with xxv710.'
- - '2n-skx, 2n-icx: [Mpps +- StDev] results for VPP tested in CSIT'
- - '2n-icx vs 2n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 2n-icx vs 2n-skx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# VPP Normalized Comparison Across Testbeds 3n-skx to 3n-icx 1c mrr
-- type: "table"
- title: "VPP Normalized Comparison Across Testbeds 3n-skx to 3n-icx 1c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-3n-skx-3n-icx-1c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-XXV710' and 'MRR' and '1C'"
- columns:
- - title: "3n-skx xxv710"
- data-set: "vpp-3n-skx-curr-iter-mrr"
- - title: "3n-icx xxv710"
- data-set: "vpp-3n-icx-curr-iter-mrr"
- comparisons:
- - title: "3n-icx vs 3n-skx"
- reference: 1
- compare: 2
- - title: "Normalized 3n-icx vs 3n-skx"
- reference: 1
- compare: 2
- norm-ref: "3n-skx"
- norm-cmp: "3n-icx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 3n-skx and 3n-icx with xxv710.'
- - '3n-skx, 3n-icx: [Mpps +- StDev] results for VPP tested in CSIT'
- - '3n-icx vs 3n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 3n-icx vs 3n-skx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# VPP Normalized Comparison Across Testbeds 3n-skx to 3n-icx 2c mrr
-- type: "table"
- title: "VPP Normalized Comparison Across Testbeds 3n-skx to 3n-icx 2c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-3n-skx-3n-icx-2c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-XXV710' and 'MRR' and '2C'"
- columns:
- - title: "3n-skx xxv710"
- data-set: "vpp-3n-skx-curr-iter-mrr"
- - title: "3n-icx xxv710"
- data-set: "vpp-3n-icx-curr-iter-mrr"
- comparisons:
- - title: "3n-icx vs 3n-skx"
- reference: 1
- compare: 2
- - title: "Normalized 3n-icx vs 3n-skx"
- reference: 1
- compare: 2
- norm-ref: "3n-skx"
- norm-cmp: "3n-icx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 3n-skx and 3n-icx with xxv710.'
- - '3n-skx, 3n-icx: [Mpps +- StDev] results for VPP tested in CSIT'
- - '3n-icx vs 3n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 3n-icx vs TB3n-skxR: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# VPP Normalized Comparison Across Testbeds 3n-skx to 3n-icx 4c mrr
-- type: "table"
- title: "VPP Normalized Comparison Across Testbeds 3n-skx to 3n-icx 4c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-compare-testbeds-3n-skx-3n-icx-4c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-XXV710' and 'MRR' and '4C'"
- columns:
- - title: "3n-skx xxv710"
- data-set: "vpp-3n-skx-curr-iter-mrr"
- - title: "3n-icx xxv710"
- data-set: "vpp-3n-icx-curr-iter-mrr"
- comparisons:
- - title: "3n-icx vs 3n-skx"
- reference: 1
- compare: 2
- - title: "Normalized 3n-icx vs 3n-skx"
- reference: 1
- compare: 2
- norm-ref: "3n-skx"
- norm-cmp: "3n-icx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 3n-skx and 3n-icx with xxv710.'
- - '3n-skx, 3n-icx: [Mpps +- StDev] results for VPP tested in CSIT'
- - '3n-icx vs 3n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 3n-icx vs 3n-skx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# DPDK Normalized Comparison Across Testbeds 2n-skx to 2n-clx ndr
-- type: "table"
- title: "DPDK Normalized 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 xxv710"
- data-set: "dpdk-2n-skx-curr-iter"
- - title: "2n-clx xxv710"
- data-set: "dpdk-2n-clx-curr-iter"
- comparisons:
- - title: "2n-clx vs 2n-skx"
- reference: 1
- compare: 2
- - title: "Normalized 2n-clx vs 2n-skx"
- reference: 1
- compare: 2
- norm-ref: "2n-skx"
- norm-cmp: "2n-clx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-skx and 2n-clx with xxv710.'
- - '2n-skx, 2n-clx: [Mpps +- StDev] results for DPDK tested in CSIT'
- - '2n-clx vs 2n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 2n-clx vs 2n-skx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# DPDK Normalized Comparison Across Testbeds 2n-skx to 2n-clx pdr
-- type: "table"
- title: "DPDK Normalized 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 xxv710"
- data-set: "dpdk-2n-skx-curr-iter"
- - title: "2n-clx xxv710"
- data-set: "dpdk-2n-clx-curr-iter"
- comparisons:
- - title: "2n-clx vs 2n-skx"
- reference: 1
- compare: 2
- - title: "Normalized 2n-clx vs 2n-skx"
- reference: 1
- compare: 2
- norm-ref: "2n-skx"
- norm-cmp: "2n-clx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-skx and 2n-clx with xxv710.'
- - '2n-skx, 2n-clx: [Mpps +- StDev] results for DPDK tested in CSIT'
- - '2n-clx vs 2n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 2n-clx vs 2n-skx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# DPDK Normalized Comparison Across Testbeds 2n-clx to 2n-icx ndr
-- type: "table"
- title: "DPDK Normalized Comparison Across Testbeds 2n-clx to 2n-icx ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-compare-testbeds-2n-clx-2n-icx-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-XXV710'"
- columns:
- - title: "2n-clx xxv710"
- data-set: "dpdk-2n-clx-curr-iter"
- - title: "2n-icx xxv710"
- data-set: "dpdk-2n-icx-curr-iter"
- comparisons:
- - title: "2n-icx vs 2n-clx"
- reference: 1
- compare: 2
- - title: "Normalized 2n-icx vs 2n-clx"
- reference: 1
- compare: 2
- norm-ref: "2n-clx"
- norm-cmp: "2n-icx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-clx and 2n-icx with xxv710.'
- - '2n-clx, 2n-icx: [Mpps +- StDev] results for DPDK tested in CSIT'
- - '2n-icx vs 2n-clx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 2n-icx vs 2n-clx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# DPDK Normalized Comparison Across Testbeds 2n-clx to 2n-icx pdr
-- type: "table"
- title: "DPDK Normalized Comparison Across Testbeds 2n-clx to 2n-icx pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-compare-testbeds-2n-clx-2n-icx-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-XXV710'"
- columns:
- - title: "2n-clx xxv710"
- data-set: "dpdk-2n-clx-curr-iter"
- - title: "2n-icx xxv710"
- data-set: "dpdk-2n-icx-curr-iter"
- comparisons:
- - title: "2n-icx vs 2n-clx"
- reference: 1
- compare: 2
- - title: "Normalized 2n-icx vs 2n-clx"
- reference: 1
- compare: 2
- norm-ref: "2n-clx"
- norm-cmp: "2n-icx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-clx and 2n-icx with xxv710.'
- - '2n-clx, 2n-icx: [Mpps +- StDev] results for DPDK tested in CSIT'
- - '2n-icx vs 2n-clx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 2n-icx vs 2n-clx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# DPDK Normalized Comparison Across Testbeds 2n-skx to 2n-icx ndr
-- type: "table"
- title: "DPDK Normalized Comparison Across Testbeds 2n-skx to 2n-icx ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-compare-testbeds-2n-skx-2n-icx-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-XXV710'"
- columns:
- - title: "2n-skx xxv710"
- data-set: "dpdk-2n-skx-curr-iter"
- - title: "2n-icx xxv710"
- data-set: "dpdk-2n-icx-curr-iter"
- comparisons:
- - title: "2n-icx vs 2n-skx"
- reference: 1
- compare: 2
- - title: "Normalized 2n-icx vs 2n-clx"
- reference: 1
- compare: 2
- norm-ref: "2n-skx"
- norm-cmp: "2n-icx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-icx and 2n-icx with xxv710.'
- - '2n-icx, 2n-icx: [Mpps +- StDev] results for DPDK tested in CSIT'
- - '2n-icx vs 2n-icx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 2n-icx vs 2n-icx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# DPDK Normalized Comparison Across Testbeds 2n-skx to 2n-icx pdr
-- type: "table"
- title: "DPDK Normalized Comparison Across Testbeds 2n-skx to 2n-icx pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-compare-testbeds-2n-skx-2n-icx-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-XXV710'"
- columns:
- - title: "2n-skx xxv710"
- data-set: "dpdk-2n-skx-curr-iter"
- - title: "2n-icx xxv710"
- data-set: "dpdk-2n-icx-curr-iter"
- comparisons:
- - title: "2n-icx vs 2n-skx"
- reference: 1
- compare: 2
- - title: "Normalized 2n-icx vs 2n-clx"
- reference: 1
- compare: 2
- norm-ref: "2n-skx"
- norm-cmp: "2n-icx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-icx and T2n-icxBC with xxv710.'
- - '2n-icx, 2n-icx: [Mpps +- StDev] results for DPDK tested in CSIT'
- - '2n-icx vs 2n-icx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 2n-icx vs 2n-icx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# DPDK Normalized Comparison Across Testbeds 3n-skx to 3n-icx ndr
-- type: "table"
- title: "DPDK Normalized Comparison Across Testbeds 3n-skx to 3n-icx ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-compare-testbeds-3n-skx-3n-icx-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-XXV710'"
- columns:
- - title: "3n-skx xxv710"
- data-set: "dpdk-3n-skx-curr-iter"
- - title: "3n-icx xxv710"
- data-set: "dpdk-3n-icx-curr-iter"
- comparisons:
- - title: "3n-icx vs 3n-skx"
- reference: 1
- compare: 2
- - title: "Normalized 3n-icx vs 3n-clx"
- reference: 1
- compare: 2
- norm-ref: "3n-skx"
- norm-cmp: "3n-icx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 3n-skx and 3n-icx with xxv710.'
- - '3n-skx, 3n-icx: [Mpps +- StDev] results for DPDK tested in CSIT'
- - '3n-icx vs 3n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 3n-icx vs 3n-skx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# DPDK Normalized Comparison Across Testbeds 3n-skx to 3n-icx pdr
-- type: "table"
- title: "DPDK Normalized Comparison Across Testbeds 3n-skx to 3n-icx pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-compare-testbeds-3n-skx-3n-icx-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'NIC_Intel-XXV710'"
- columns:
- - title: "3n-skx xxv710"
- data-set: "dpdk-3n-skx-curr-iter"
- - title: "3n-icx xxv710"
- data-set: "dpdk-3n-icx-curr-iter"
- comparisons:
- - title: "3n-icx vs 3n-skx"
- reference: 1
- compare: 2
- - title: "Normalized 3n-icx vs 3n-clx"
- reference: 1
- compare: 2
- norm-ref: "3n-skx"
- norm-cmp: "3n-icx"
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-skx and 3n-icx with xxv710.'
- - '3n-skx, 3n-icx: [Mpps +- StDev] results for DPDK tested in CSIT'
- - '3n-icx vs 3n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
- - 'Normalized 3n-icx vs 3n-skx: [% +- StDev] Normalized relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# VPP Latency Changes 3n-skx 2t1c
-- type: "table"
- title: "VPP Latency Changes 3n-skx 2t1c PDR50-direction1-avg"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/latency-changes-3n-skx-xxv710-2t1c-pdr50-d1-avg"
- include-tests: "latency-PDR50-direction1-avg"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- - title: "2110.0-9"
- data-set: "vpp-3n-skx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-skx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-skx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-skx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-skx with xxv710.'
- - 'YYMM.V-E: [uSec +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Latency Changes 3n-skx 2t1c
-- type: "table"
- title: "VPP Latency Changes 3n-skx 2t1c PDR90-direction1-avg"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/latency-changes-3n-skx-xxv710-2t1c-pdr90-d1-avg"
- include-tests: "latency-PDR90-direction1-avg"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- - title: "2110.0-9"
- data-set: "vpp-3n-skx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-skx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-skx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-skx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-skx with xxv710.'
- - 'YYMM.V-E: [uSec +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Latency Changes 3n-skx 2t1c
-- type: "table"
- title: "VPP Latency Changes 3n-skx 2t1c PDR90-direction1-max"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/latency-changes-3n-skx-xxv710-2t1c-pdr90-d1-max"
- include-tests: "latency-PDR90-direction1-max"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- - title: "2110.0-9"
- data-set: "vpp-3n-skx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-skx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-skx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-skx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-skx with xxv710.'
- - 'YYMM.V-E: [uSec +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Latency Changes 2n-skx 2t1c
-- type: "table"
- title: "VPP Latency Changes 2n-skx 2t1c PDR50-direction1-avg"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/latency-changes-2n-skx-xxv710-2t1c-pdr50-d1-avg"
- include-tests: "latency-PDR50-direction1-avg"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- - title: "2110.0-9"
- data-set: "vpp-2n-skx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-skx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-skx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-skx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-skx with xxv710.'
- - 'YYMM.V-E: [uSec +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Latency Changes 2n-skx 2t1c
-- type: "table"
- title: "VPP Latency Changes 2n-skx 2t1c PDR90-direction1-avg"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/latency-changes-2n-skx-xxv710-2t1c-pdr90-d1-avg"
- include-tests: "latency-PDR90-direction1-avg"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- - title: "2110.0-9"
- data-set: "vpp-2n-skx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-skx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-skx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-skx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-skx with xxv710.'
- - 'YYMM.V-E: [uSec +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Latency Changes 2n-skx 2t1c
-- type: "table"
- title: "VPP Latency Changes 2n-skx 2t1c PDR90-direction1-max"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/latency-changes-2n-skx-xxv710-2t1c-pdr90-d1-max"
- include-tests: "latency-PDR90-direction1-max"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- - title: "2110.0-9"
- data-set: "vpp-2n-skx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-skx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-skx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-skx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-skx with xxv710.'
- - 'YYMM.V-E: [uSec +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Latency Changes 2n-clx 2t1c
-- type: "table"
- title: "VPP Latency Changes 2n-clx 2t1c PDR50-direction1-avg"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/latency-changes-2n-clx-xxv710-2t1c-pdr50-d1-avg"
- include-tests: "latency-PDR50-direction1-avg"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- - title: "2110.0-9"
- data-set: "vpp-2n-clx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-clx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-clx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-clx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-clx with xxv710.'
- - 'YYMM.V-E: [uSec +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Latency Changes 2n-clx 2t1c
-- type: "table"
- title: "VPP Latency Changes 2n-clx 2t1c PDR90-direction1-avg"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/latency-changes-2n-clx-xxv710-2t1c-pdr90-d1-avg"
- include-tests: "latency-PDR90-direction1-avg"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- - title: "2110.0-9"
- data-set: "vpp-2n-clx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-clx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-clx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-clx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-clx with xxv710.'
- - 'YYMM.V-E: [uSec +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Latency Changes 2n-clx 2t1c
-- type: "table"
- title: "VPP Latency Changes 2n-clx 2t1c PDR90-direction1-max"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/latency-changes-2n-clx-xxv710-2t1c-pdr90-d1-max"
- include-tests: "latency-PDR90-direction1-max"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- - title: "2110.0-9"
- data-set: "vpp-2n-clx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-clx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-clx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-clx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-clx with xxv710.'
- - 'YYMM.V-E: [uSec +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Latency Changes 2n-clx 2t1c
-- type: "table"
- title: "VPP Latency Changes 2n-clx 2t1c PDR50-direction1-avg"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/latency-changes-2n-clx-cx556a-2t1c-pdr50-d1-avg"
- include-tests: "latency-PDR50-direction1-avg"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Mellanox-CX556A' and not 'NF_DENSITY'"
- columns:
- - title: "2110.0-9"
- data-set: "vpp-2n-clx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-clx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-clx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-clx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-clx with cx556a.'
- - 'YYMM.V-E: [uSec +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Latency Changes 2n-clx 2t1c
-- type: "table"
- title: "VPP Latency Changes 2n-clx 2t1c PDR90-direction1-avg"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/latency-changes-2n-clx-cx556a-2t1c-pdr90-d1-avg"
- include-tests: "latency-PDR90-direction1-avg"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Mellanox-CX556A' and not 'NF_DENSITY'"
- columns:
- - title: "2110.0-9"
- data-set: "vpp-2n-clx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-clx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-clx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-clx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-clx with cx556a.'
- - 'YYMM.V-E: [uSec +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Latency Changes 2n-clx 2t1c
-- type: "table"
- title: "VPP Latency Changes 2n-clx 2t1c PDR90-direction1-max"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/latency-changes-2n-clx-cx556a-2t1c-pdr90-d1-max"
- include-tests: "latency-PDR90-direction1-max"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Mellanox-CX556A' and not 'NF_DENSITY'"
- columns:
- - title: "2110.0-9"
- data-set: "vpp-2n-clx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-clx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-clx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-clx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-clx with cx556a.'
- - 'YYMM.V-E: [uSec +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Latency Changes 2n-zn2 2t1c
-- type: "table"
- title: "VPP Latency Changes 2n-zn2 2t1c PDR50-direction1-avg"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/latency-changes-2n-zn2-xxv710-2t1c-pdr50-d1-avg"
- include-tests: "latency-PDR50-direction1-avg"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
- - title: "2110.0-9"
- data-set: "vpp-2n-zn2-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-zn2-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-zn2-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-zn2-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-zn2 with xxv710.'
- - 'YYMM.V-E: [uSec +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Latency Changes 2n-zn2 2t1c
-- type: "table"
- title: "VPP Latency Changes 2n-zn2 2t1c PDR90-direction1-avg"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/latency-changes-2n-zn2-xxv710-2t1c-pdr90-d1-avg"
- include-tests: "latency-PDR90-direction1-avg"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
- - title: "2110.0-9"
- data-set: "vpp-2n-zn2-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-zn2-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-zn2-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-zn2-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-zn2 with xxv710.'
- - 'YYMM.V-E: [uSec +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Latency Changes 2n-zn2 2t1c
-- type: "table"
- title: "VPP Latency Changes 2n-zn2 2t1c PDR90-direction1-max"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/latency-changes-2n-zn2-xxv710-2t1c-pdr90-d1-max"
- include-tests: "latency-PDR90-direction1-max"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
- - title: "2110.0-9"
- data-set: "vpp-2n-zn2-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-zn2-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-zn2-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-zn2-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-zn2 with xxv710.'
- - 'YYMM.V-E: [uSec +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Latency Changes 2n-tx2 1t1c
-- type: "table"
- title: "VPP Latency Changes 2n-tx2 1t1c PDR50-direction1-avg"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/latency-changes-2n-tx2-xl710-1t1c-pdr50-d1-avg"
- include-tests: "latency-PDR50-direction1-avg"
- filter: "'1T1C' and 'NDRPDR'"
- columns:
- - title: "2110.0-9"
- data-set: "vpp-2n-tx2-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-tx2-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-tx2-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-tx2-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-tx2 with xl710.'
- - 'YYMM.V-E: [uSec +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Latency Changes 2n-tx2 1t1c
-- type: "table"
- title: "VPP Latency Changes 2n-tx2 1t1c PDR90-direction1-avg"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/latency-changes-2n-tx2-xl710-1t1c-pdr90-d1-avg"
- include-tests: "latency-PDR90-direction1-avg"
- filter: "'1T1C' and 'NDRPDR'"
- columns:
- - title: "2110.0-9"
- data-set: "vpp-2n-tx2-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-tx2-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-tx2-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-tx2-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-tx2 with xl710.'
- - 'YYMM.V-E: [uSec +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Latency Changes 2n-tx2 1t1c
-- type: "table"
- title: "VPP Latency Changes 2n-tx2 1t1c PDR90-direction1-max"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/latency-changes-2n-tx2-xl710-1t1c-pdr90-d1-max"
- include-tests: "latency-PDR90-direction1-max"
- filter: "'1T1C' and 'NDRPDR'"
- columns:
- - title: "2110.0-9"
- data-set: "vpp-2n-tx2-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-tx2-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-tx2-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-tx2-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-tx2 with xl710.'
- - 'YYMM.V-E: [uSec +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Latency Changes 3n-tsh 1t1c
-- type: "table"
- title: "VPP Latency Changes 3n-tsh 1t1c PDR50-direction1-avg"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/latency-changes-3n-tsh-x520-1t1c-pdr50-d1-avg"
- include-tests: "latency-PDR50-direction1-avg"
- filter: "'1T1C' and 'NDRPDR'"
- columns:
- - title: "2110.0-9"
- data-set: "vpp-3n-tsh-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-tsh-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-tsh-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-tsh-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-tsh with x520.'
- - 'YYMM.V-E: [uSec +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Latency Changes 3n-tsh 1t1c
-- type: "table"
- title: "VPP Latency Changes 3n-tsh 1t1c PDR90-direction1-avg"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/latency-changes-3n-tsh-x520-1t1c-pdr90-d1-avg"
- include-tests: "latency-PDR90-direction1-avg"
- filter: "'1T1C' and 'NDRPDR'"
- columns:
- - title: "2110.0-9"
- data-set: "vpp-3n-tsh-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-tsh-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-tsh-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-tsh-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-tsh with x520.'
- - 'YYMM.V-E: [uSec +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Latency Changes 3n-tsh 1t1c
-- type: "table"
- title: "VPP Latency Changes 3n-tsh 1t1c PDR90-direction1-max"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/latency-changes-3n-tsh-x520-1t1c-pdr90-d1-max"
- include-tests: "latency-PDR90-direction1-max"
- filter: "'1T1C' and 'NDRPDR'"
- columns:
- - title: "2110.0-9"
- data-set: "vpp-3n-tsh-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-tsh-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-tsh-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-tsh-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-tsh with x520.'
- - 'YYMM.V-E: [uSec +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Latency Changes 3n-icx 2t1c
-- type: "table"
- title: "VPP Latency Changes 3n-icx 2t1c PDR50-direction1-avg"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/latency-changes-3n-icx-xxv710-2t1c-pdr50-d1-avg"
- include-tests: "latency-PDR50-direction1-avg"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- # - title: "2110.0-9"
- # data-set: "vpp-3n-icx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-icx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-icx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-icx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 1
- compare: 2
- - title: "2206.0-10 vs 2202.0-10"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-icx with xxv710.'
- - 'YYMM.V-E: [uSec +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Latency Changes 3n-icx 2t1c
-- type: "table"
- title: "VPP Latency Changes 3n-icx 2t1c PDR90-direction1-avg"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/latency-changes-3n-icx-xxv710-2t1c-pdr90-d1-avg"
- include-tests: "latency-PDR90-direction1-avg"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- # - title: "2110.0-9"
- # data-set: "vpp-3n-icx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-icx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-icx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-icx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 1
- compare: 2
- - title: "2206.0-10 vs 2202.0-10"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-icx with xxv710.'
- - 'YYMM.V-E: [uSec +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Latency Changes 3n-icx 2t1c
-- type: "table"
- title: "VPP Latency Changes 3n-icx 2t1c PDR90-direction1-max"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/latency-changes-3n-icx-xxv710-2t1c-pdr90-d1-max"
- include-tests: "latency-PDR90-direction1-max"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- # - title: "2110.0-9"
- # data-set: "vpp-3n-icx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-icx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-icx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-icx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 1
- compare: 2
- - title: "2206.0-10 vs 2202.0-10"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-icx with xxv710.'
- - 'YYMM.V-E: [uSec +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Latency Changes 2n-icx 2t1c
-- type: "table"
- title: "VPP Latency Changes 2n-icx 2t1c PDR50-direction1-avg"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/latency-changes-2n-icx-xxv710-2t1c-pdr50-d1-avg"
- include-tests: "latency-PDR50-direction1-avg"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- # - title: "2110.0-9"
- # data-set: "vpp-2n-icx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-icx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-icx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-icx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 1
- compare: 2
- - title: "2206.0-10 vs 2202.0-10"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-icx with xxv710.'
- - 'YYMM.V-E: [uSec +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Latency Changes 2n-icx 2t1c
-- type: "table"
- title: "VPP Latency Changes 2n-icx 2t1c PDR90-direction1-avg"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/latency-changes-2n-icx-xxv710-2t1c-pdr90-d1-avg"
- include-tests: "latency-PDR90-direction1-avg"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- # - title: "2110.0-9"
- # data-set: "vpp-2n-icx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-icx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-icx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-icx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 1
- compare: 2
- - title: "2206.0-10 vs 2202.0-10"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-icx with xxv710.'
- - 'YYMM.V-E: [uSec +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Latency Changes 2n-icx 2t1c
-- type: "table"
- title: "VPP Latency Changes 2n-icx 2t1c PDR90-direction1-max"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/latency-changes-2n-icx-xxv710-2t1c-pdr90-d1-max"
- include-tests: "latency-PDR90-direction1-max"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- # - title: "2110.0-9"
- # data-set: "vpp-2n-icx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-icx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-icx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-icx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 1
- compare: 2
- - title: "2206.0-10 vs 2202.0-10"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-icx with xxv710.'
- - 'YYMM.V-E: [uSec +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Soak vs NDR - 2n-icx
-- type: "table"
- title: "VPP Soak vs NDR 2n-icx"
- algorithm: "table_soak_vs_ndr"
- output-file: "{DIR[STATIC,VPP]}/soak-vs-ndr-2n-icx"
- reference:
- title: "NDR"
- data: "vpp-soak-vs-ndr-2n-icx-ref"
- compare:
- title: "Soak"
- data: "vpp-2n-icx-curr-soak"
- data: "vpp-soak-vs-ndr-2n-icx"
- include-tests: "NDR"
- filter: "'NDRPDR' or 'SOAK'"
- parameters:
- - "throughput"
- - "name"
- - "parent"
-
-# 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-2n-skx-curr-soak"
- 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-2n-clx-curr-soak"
- 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-3n-skx-curr-iter"
- tag: "NIC_Intel-X710"
- - title: "xxv710"
- data-set: "vpp-3n-skx-curr-iter"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "xxv710 vs x710"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 3n-skx with x710 and xxv710.'
- - 'x710, xxv710: [Mpps +- StDev] results for VPP tested in CSIT'
- - 'xxv710 vs x710: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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-3n-skx-curr-iter"
- tag: "NIC_Intel-X710"
- - title: "xxv710"
- data-set: "vpp-3n-skx-curr-iter"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "xxv710 vs x710"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 3n-skx with x710 and xxv710.'
- - 'x710, xxv710: [Mpps +- StDev] results for VPP tested in CSIT'
- - 'xxv710 vs x710: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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-3n-skx-curr-iter"
- tag: "NIC_Intel-X710"
- - title: "xxv710"
- data-set: "vpp-3n-skx-curr-iter"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "xxv710 vs x710"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-skx with x710 and xxv710.'
- - 'x710, xxv710: [Mpps +- StDev] results for VPP tested in CSIT'
- - 'xxv710 vs x710: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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-3n-skx-curr-iter"
- tag: "NIC_Intel-X710"
- - title: "xxv710"
- data-set: "vpp-3n-skx-curr-iter"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "xxv710 vs x710"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-skx with x710 and xxv710.'
- - 'x710, xxv710: [Mpps +- StDev] results for VPP tested in CSIT'
- - 'xxv710 vs x710: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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-3n-skx-curr-iter-mrr"
- tag: "NIC_Intel-X710"
- - title: "xxv710"
- data-set: "vpp-3n-skx-curr-iter-mrr"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "xxv710 vs x710"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 3n-skx with x710 and xxv710.'
- - 'x710, xxv710: [Mpps +- StDev] results for VPP tested in CSIT'
- - 'xxv710 vs x710: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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-3n-skx-curr-iter-mrr"
- tag: "NIC_Intel-X710"
- - title: "xxv710"
- data-set: "vpp-3n-skx-curr-iter-mrr"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "xxv710 vs x710"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 3n-skx with x710 and xxv710.'
- - 'x710, xxv710: [Mpps +- StDev] results for VPP tested in CSIT'
- - 'xxv710 vs x710: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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-3n-skx-curr-iter-mrr"
- tag: "NIC_Intel-X710"
- - title: "xxv710"
- data-set: "vpp-3n-skx-curr-iter-mrr"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "xxv710 vs x710"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 3n-skx with x710 and xxv710.'
- - 'x710, xxv710: [Mpps +- StDev] results for VPP tested in CSIT'
- - 'xxv710 vs x710: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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-2n-skx-curr-iter"
- tag: "NIC_Intel-X710"
- - title: "xxv710"
- data-set: "vpp-2n-skx-curr-iter"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "xxv710 vs x710"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-skx with x710 and xxv710.'
- - 'x710, xxv710: [Mpps +- StDev] results for VPP tested in CSIT'
- - 'xxv710 vs x710: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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-2n-skx-curr-iter"
- tag: "NIC_Intel-X710"
- - title: "xxv710"
- data-set: "vpp-2n-skx-curr-iter"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "xxv710 vs x710"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-skx with x710 and xxv710.'
- - 'x710, xxv710: [Mpps +- StDev] results for VPP tested in CSIT'
- - 'xxv710 vs x710: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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-2n-skx-curr-iter"
- tag: "NIC_Intel-X710"
- - title: "xxv710"
- data-set: "vpp-2n-skx-curr-iter"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "xxv710 vs x710"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-skx with x710 and xxv710.'
- - 'x710, xxv710: [Mpps +- StDev] results for VPP tested in CSIT'
- - 'xxv710 vs x710: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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-2n-skx-curr-iter"
- tag: "NIC_Intel-X710"
- - title: "xxv710"
- data-set: "vpp-2n-skx-curr-iter"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "xxv710 vs x710"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-skx with x710 and xxv710.'
- - 'x710, xxv710: [Mpps +- StDev] results for VPP tested in CSIT'
- - 'xxv710 vs x710: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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-2n-skx-curr-iter-mrr"
- tag: "NIC_Intel-X710"
- - title: "xxv710"
- data-set: "vpp-2n-skx-curr-iter-mrr"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "xxv710 vs x710"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-skx with x710 and xxv710.'
- - 'x710, xxv710: [Mpps +- StDev] results for VPP tested in CSIT'
- - 'xxv710 vs x710: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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-2n-skx-curr-iter-mrr"
- tag: "NIC_Intel-X710"
- - title: "xxv710"
- data-set: "vpp-2n-skx-curr-iter-mrr"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "xxv710 vs x710"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-skx with x710 and xxv710.'
- - 'x710, xxv710: [Mpps +- StDev] results for VPP tested in CSIT'
- - 'xxv710 vs x710: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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-2n-skx-curr-iter-mrr"
- tag: "NIC_Intel-X710"
- - title: "xxv710"
- data-set: "vpp-2n-skx-curr-iter-mrr"
- tag: "NIC_Intel-XXV710"
- comparisons:
- - title: "xxv710 vs x710"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-skx with x710 and xxv710.'
- - 'x710, xxv710: [Mpps +- StDev] results for VPP tested in CSIT'
- - 'xxv710 vs x710: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-################################################################################
-# VPP
-
-# VPP Performance Changes 3n-skx Hoststack
-- type: "table"
- title: "VPP Performance Changes 3n-skx Hoststack"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-skx-hoststack"
- include-tests: "hoststack"
- filter: "all"
- columns:
- - title: "2110.0-8"
- data-set: "vpp-3n-skx-hist-iter-hoststack-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-skx-prev-iter-hoststack-old-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-skx-curr-iter-hoststack"
- comparisons:
- - title: "2206.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: Hoststack on 3n-skx with xxv710.'
- - 'YYMM.V-E: [Mbps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2206.0-10 vs 2202.0-9: Compares VPP code current vs previous.'
-
-# VPP Performance Changes 2n-clx VSAP
-- type: "table"
- title: "VPP Performance Changes 2n-clx VSAP"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-clx-vsap"
- include-tests: "vsap"
- filter: "all"
- columns:
- - title: "2110.0-8"
- data-set: "vpp-2n-clx-hist-iter-vsap-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-clx-curr-iter-vsap-old-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-clx-curr-iter-vsap"
- comparisons:
- - title: "2206.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: VSAP on 2n-clx with cx556a.'
- - 'YYMM.V-E: [Mcps/Mrps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2206.0-10 vs 2202.0-9: Compares VPP code current vs previous.'
-
-# VPP Performance Changes 3n-icx 2t1c pdr
-- type: "table"
- title: "VPP Performance Changes 3n-icx 2t1c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-icx-2t1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- # - title: "2110.0-9"
- # data-set: "vpp-3n-icx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-icx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-icx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-icx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 1
- compare: 2
- - title: "2206.0-10 vs 2202.0-10"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-icx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 3n-icx 4t2c pdr
-- type: "table"
- title: "VPP Performance Changes 3n-icx 4t2c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-icx-4t2c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- # - title: "2110.0-9"
- # data-set: "vpp-3n-icx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-icx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-icx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-icx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 1
- compare: 2
- - title: "2206.0-10 vs 2202.0-10"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-icx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 3n-icx 2t1c ndr
-- type: "table"
- title: "VPP Performance Changes 3n-icx 2t1c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-icx-2t1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- # - title: "2110.0-9"
- # data-set: "vpp-3n-icx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-icx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-icx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-icx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 1
- compare: 2
- - title: "2206.0-10 vs 2202.0-10"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 3n-icx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 3n-icx 4t2c ndr
-- type: "table"
- title: "VPP Performance Changes 3n-icx 4t2c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-icx-4t2c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- # - title: "2110.0-9"
- # data-set: "vpp-3n-icx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-icx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-icx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-icx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 1
- compare: 2
- - title: "2206.0-10 vs 2202.0-10"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 3n-icx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-icx 2t1c pdr
-- type: "table"
- title: "VPP Performance Changes 2n-icx 2t1c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-icx-2t1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- # - title: "2110.0-9"
- # data-set: "vpp-2n-icx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-icx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-icx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-icx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 1
- compare: 2
- - title: "2206.0-10 vs 2202.0-10"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-icx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-icx 4t2c pdr
-- type: "table"
- title: "VPP Performance Changes 2n-icx 4t2c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-icx-4t2c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- # - title: "2110.0-9"
- # data-set: "vpp-2n-icx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-icx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-icx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-icx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 1
- compare: 2
- - title: "2206.0-10 vs 2202.0-10"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-icx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-icx 2t1c ndr
-- type: "table"
- title: "VPP Performance Changes 2n-icx 2t1c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-icx-2t1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- # - title: "2110.0-9"
- # data-set: "vpp-2n-icx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-icx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-icx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-icx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 1
- compare: 2
- - title: "2206.0-10 vs 2202.0-10"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-icx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-icx 4t2c ndr
-- type: "table"
- title: "VPP Performance Changes 2n-icx 4t2c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-icx-4t2c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- # - title: "2110.0-9"
- # data-set: "vpp-2n-icx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-icx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-icx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-icx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 1
- compare: 2
- - title: "2206.0-10 vs 2202.0-10"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-icx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-3n-skx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-skx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-skx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-skx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-3n-skx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-skx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-skx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-skx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-3n-skx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-skx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-skx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-skx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-3n-skx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-skx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-skx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-skx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-2n-skx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-skx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-skx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-skx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-2n-skx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-skx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-skx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-skx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-2n-skx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-skx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-skx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-skx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-2n-skx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-skx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-skx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-skx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-2n-clx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-clx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-clx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-clx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-2n-clx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-clx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-clx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-clx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-2n-clx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-clx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-clx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-clx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-2n-clx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-clx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-clx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-clx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-clx-cx556a 2t1c pdr
-- type: "table"
- title: "VPP Performance Changes 2n-clx-cx556a 2t1c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-clx-cx556a-2t1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Mellanox-CX556A' and not 'NF_DENSITY'"
- columns:
- - title: "2110.0-9"
- data-set: "vpp-2n-clx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-clx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-clx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-clx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-clx with cx556a.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-clx-cx556a 4t2c pdr
-- type: "table"
- title: "VPP Performance Changes 2n-clx-cx556a 4t2c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-clx-cx556a-4t2c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR' and 'NIC_Mellanox-CX556A' and not 'NF_DENSITY'"
- columns:
- - title: "2110.0-9"
- data-set: "vpp-2n-clx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-clx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-clx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-clx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-clx with cx556a.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-clx-cx556a 2t1c ndr
-- type: "table"
- title: "VPP Performance Changes 2n-clx-cx556a 2t1c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-clx-cx556a-2t1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Mellanox-CX556A' and not 'NF_DENSITY'"
- columns:
- - title: "2110.0-9"
- data-set: "vpp-2n-clx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-clx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-clx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-clx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-clx with cx556a.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-clx-cx556a 4t2c ndr
-- type: "table"
- title: "VPP Performance Changes 2n-clx-cx556a ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-clx-cx556a-4t2c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR' and 'NIC_Mellanox-CX556A' and not 'NF_DENSITY'"
- columns:
- - title: "2110.0-9"
- data-set: "vpp-2n-clx-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-clx-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-clx-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-clx-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-clx with cx556a.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-2n-zn2-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-zn2-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-zn2-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-zn2-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-2n-zn2-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-zn2-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-zn2-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-zn2-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-2n-zn2-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-zn2-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-zn2-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-zn2-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-2n-zn2-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-zn2-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-zn2-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-zn2-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-2n-dnv-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-dnv-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-dnv-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-dnv-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# 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: "2110.0-9"
- data-set: "vpp-2n-dnv-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-dnv-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-dnv-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-dnv-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# 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: "2110.0-9"
- data-set: "vpp-2n-dnv-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-dnv-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-dnv-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-dnv-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# 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: "2110.0-9"
- data-set: "vpp-2n-dnv-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-dnv-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-dnv-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-dnv-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# 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: "2110.0-9"
- data-set: "vpp-3n-dnv-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-dnv-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-dnv-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-dnv-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# 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: "2110.0-9"
- data-set: "vpp-3n-dnv-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-dnv-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-dnv-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-dnv-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# 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: "2110.0-9"
- data-set: "vpp-3n-dnv-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-dnv-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-dnv-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-dnv-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# 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: "2110.0-9"
- data-set: "vpp-3n-dnv-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-dnv-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-dnv-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-dnv-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# 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: "2110.0-9"
- data-set: "vpp-3n-tsh-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-tsh-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-tsh-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-tsh-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-3n-tsh-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-tsh-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-tsh-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-tsh-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-3n-tsh-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-tsh-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-tsh-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-tsh-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-3n-tsh-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-tsh-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-tsh-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-tsh-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-2n-tx2-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-tx2-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-tx2-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-tx2-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-2n-tx2-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-tx2-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-tx2-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-tx2-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'1T1C'"
- columns:
- - title: "2110.0-9"
- data-set: "vpp-2n-tx2-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-tx2-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-tx2-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-tx2-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T2C'"
- columns:
- - title: "2110.0-9"
- data-set: "vpp-2n-tx2-hist-iter-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-tx2-prev-iter-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-tx2-prev-iter-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-tx2-curr-iter"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-aws 2t1c pdr
-- type: "table"
- title: "VPP Performance Changes 2n-aws 2t1c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-aws-2t1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR'"
- columns:
- - title: "2110.0-8"
- data-set: "vpp-2n-aws-hist-iter"
- - title: "2202.0-9"
- data-set: "vpp-2n-aws-prev-iter"
- - title: "2206.0-10"
- data-set: "vpp-2n-aws-curr-iter"
- comparisons:
- - title: "2206.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-aws with nitro50g.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2206.0-10 vs 2202.0-9: Compares VPP code current vs previous.'
-
-# VPP Performance Changes 2n-aws 4t2c pdr
-- type: "table"
- title: "VPP Performance Changes 2n-aws 4t2c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-aws-4t2c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR'"
- columns:
- - title: "2110.0-8"
- data-set: "vpp-2n-aws-hist-iter"
- - title: "2202.0-9"
- data-set: "vpp-2n-aws-prev-iter"
- - title: "2206.0-10"
- data-set: "vpp-2n-aws-curr-iter"
- comparisons:
- - title: "2206.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-aws with nitro50g.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2206.0-10 vs 2202.0-9: Compares VPP code current vs previous.'
-
-# VPP Performance Changes 2n-aws 2t1c ndr
-- type: "table"
- title: "VPP Performance Changes 2n-aws 2t1c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-aws-2t1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR'"
- columns:
- - title: "2110.0-8"
- data-set: "vpp-2n-aws-hist-iter"
- - title: "2202.0-9"
- data-set: "vpp-2n-aws-prev-iter"
- - title: "2206.0-10"
- data-set: "vpp-2n-aws-curr-iter"
- comparisons:
- - title: "2206.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-aws with nitro50g.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2206.0-10 vs 2202.0-9: Compares VPP code current vs previous.'
-
-# VPP Performance Changes 2n-aws 4t2c ndr
-- type: "table"
- title: "VPP Performance Changes 2n-aws 4t2c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-aws-4t2c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR'"
- columns:
- - title: "2110.0-8"
- data-set: "vpp-2n-aws-hist-iter"
- - title: "2202.0-9"
- data-set: "vpp-2n-aws-prev-iter"
- - title: "2206.0-10"
- data-set: "vpp-2n-aws-curr-iter"
- comparisons:
- - title: "2206.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-aws with nitro50g.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2206.0-10 vs 2202.0-9: Compares VPP code current vs previous.'
-
-# # VPP Performance Changes 3n-aws 2t1c pdr
-# - type: "table"
-# title: "VPP Performance Changes 3n-aws 2t1c pdr"
-# algorithm: "table_comparison"
-# output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-aws-2t1c-pdr"
-# include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-# filter: "'2T1C' and 'NDRPDR'"
-# columns:
-# - title: "2110.0-8"
-# data-set: "vpp-3n-aws-hist-iter"
-# - title: "2202.0-9"
-# data-set: "vpp-3n-aws-prev-iter"
-# - title: "2206.0-10"
-# data-set: "vpp-3n-aws-curr-iter"
-# comparisons:
-# - title: "2206.0-10 vs 2202.0-9"
-# reference: 2
-# compare: 3
-# legend:
-# - ''
-# - 'Test Case: Test cases executed for: PDR throughput on 3n-aws with nitro50g.'
-# - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
-# - '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.'
-# - '2206.0-10 vs 2202.0-9: Compares VPP code current vs previous.'
-
-# # VPP Performance Changes 3n-aws 4t2c pdr
-# - type: "table"
-# title: "VPP Performance Changes 3n-aws 4t2c pdr"
-# algorithm: "table_comparison"
-# output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-aws-4t2c-pdr"
-# include-tests: "PDR" # "PDR" | "NDR" | "MRR"
-# filter: "'4T2C' and 'NDRPDR'"
-# columns:
-# - title: "2110.0-8"
-# data-set: "vpp-3n-aws-hist-iter"
-# - title: "2202.0-9"
-# data-set: "vpp-3n-aws-prev-iter"
-# - title: "2206.0-10"
-# data-set: "vpp-3n-aws-curr-iter"
-# comparisons:
-# - title: "2206.0-10 vs 2202.0-9"
-# reference: 2
-# compare: 3
-# legend:
-# - ''
-# - 'Test Case: Test cases executed for: PDR throughput on 3n-aws with nitro50g.'
-# - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
-# - '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.'
-# - '2206.0-10 vs 2202.0-9: Compares VPP code current vs previous.'
-
-# # VPP Performance Changes 3n-aws 2t1c ndr
-# - type: "table"
-# title: "VPP Performance Changes 3n-aws 2t1c ndr"
-# algorithm: "table_comparison"
-# output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-aws-2t1c-ndr"
-# include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-# filter: "'2T1C' and 'NDRPDR'"
-# columns:
-# - title: "2110.0-8"
-# data-set: "vpp-3n-aws-hist-iter"
-# - title: "2202.0-9"
-# data-set: "vpp-3n-aws-prev-iter"
-# - title: "2206.0-10"
-# data-set: "vpp-3n-aws-curr-iter"
-# comparisons:
-# - title: "2206.0-10 vs 2202.0-9"
-# reference: 2
-# compare: 3
-# legend:
-# - ''
-# - 'Test Case: Test cases executed for: NDR throughput on 3n-aws with nitro50g.'
-# - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
-# - '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.'
-# - '2206.0-10 vs 2202.0-9: Compares VPP code current vs previous.'
-
-# # VPP Performance Changes 3n-aws 4t2c ndr
-# - type: "table"
-# title: "VPP Performance Changes 3n-aws 4t2c ndr"
-# algorithm: "table_comparison"
-# output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-aws-4t2c-ndr"
-# include-tests: "NDR" # "PDR" | "NDR" | "MRR"
-# filter: "'4T2C' and 'NDRPDR'"
-# columns:
-# - title: "2110.0-8"
-# data-set: "vpp-3n-aws-hist-iter"
-# - title: "2202.0-9"
-# data-set: "vpp-3n-aws-prev-iter"
-# - title: "2206.0-10"
-# data-set: "vpp-3n-aws-curr-iter"
-# comparisons:
-# - title: "2206.0-10 vs 2202.0-9"
-# reference: 2
-# compare: 3
-# legend:
-# - ''
-# - 'Test Case: Test cases executed for: NDR throughput on 3n-aws with nitro50g.'
-# - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
-# - '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.'
-# - '2206.0-10 vs 2202.0-9: Compares VPP code current vs previous.'
-
-# 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 xxv710"
- data-set: "vpp-3n-skx-curr-iter"
- - title: "2n-skx xxv710"
- data-set: "vpp-2n-skx-curr-iter"
- comparisons:
- - title: "2n-skx vs 3n-skx"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 3n-skx xxv710 and 2n-skx xxv710.'
- - '3n-skx xxv710, 2n-skx xxv710: [Mpps +- StDev] results for VPP tested in CSIT'
- - '2n-skx vs 3n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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 xxv710"
- data-set: "vpp-3n-skx-curr-iter"
- - title: "2n-skx xxv710"
- data-set: "vpp-2n-skx-curr-iter"
- comparisons:
- - title: "2n-skx vs 3n-skx"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 3n-skx xxv710 and 2n-skx xxv710.'
- - '3n-skx xxv710, 2n-skx xxv710: [Mpps +- StDev] results for VPP tested in CSIT'
- - '2n-skx vs 3n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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 xxv710"
- data-set: "vpp-3n-skx-curr-iter"
- - title: "2n-skx xxv710"
- data-set: "vpp-2n-skx-curr-iter"
- comparisons:
- - title: "2n-skx vs 3n-skx"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-skx xxv710 and 2n-skx xxv710.'
- - '3n-skx xxv710, 2n-skx xxv710: [Mpps +- StDev] results for VPP tested in CSIT'
- - '2n-skx vs 3n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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 xxv710"
- data-set: "vpp-3n-skx-curr-iter"
- - title: "2n-skx xxv710"
- data-set: "vpp-2n-skx-curr-iter"
- comparisons:
- - title: "2n-skx vs 3n-skx"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-skx xxv710 and 2n-skx xxv710.'
- - '3n-skx xxv710, 2n-skx xxv710: [Mpps +- StDev] results for VPP tested in CSIT'
- - '2n-skx vs 3n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# VPP Performance Changes 3n-icx 2t1c mrr
-- type: "table"
- title: "VPP Performance Changes 3n-icx 2t1c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-icx-2t1c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'MRR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- # - title: "2110.0-9"
- # data-set: "vpp-3n-icx-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-icx-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-icx-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-icx-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 1
- compare: 2
- - title: "2206.0-10 vs 2202.0-10"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 3n-icx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 3n-icx 4t2c mrr
-- type: "table"
- title: "VPP Performance Changes 3n-icx 4t2c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-icx-4t2c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'MRR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- # - title: "2110.0-9"
- # data-set: "vpp-3n-icx-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-icx-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-icx-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-icx-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 1
- compare: 2
- - title: "2206.0-10 vs 2202.0-10"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 3n-icx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 3n-icx 8t4c mrr
-- type: "table"
- title: "VPP Performance Changes 3n-icx 8t4c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-icx-8t4c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'8T4C' and 'MRR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- # - title: "2110.0-9"
- # data-set: "vpp-3n-icx-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-icx-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-icx-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-icx-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 1
- compare: 2
- - title: "2206.0-10 vs 2202.0-10"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 3n-icx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-icx 2t1c mrr
-- type: "table"
- title: "VPP Performance Changes 2n-icx 2t1c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-icx-2t1c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'MRR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- # - title: "2110.0-9"
- # data-set: "vpp-2n-icx-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-icx-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-icx-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-icx-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 1
- compare: 2
- - title: "2206.0-10 vs 2202.0-10"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-icx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-icx 4t2c mrr
-- type: "table"
- title: "VPP Performance Changes 2n-icx 4t2c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-icx-4t2c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'MRR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- # - title: "2110.0-9"
- # data-set: "vpp-2n-icx-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-icx-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-icx-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-icx-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 1
- compare: 2
- - title: "2206.0-10 vs 2202.0-10"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-icx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-icx 8t4c mrr
-- type: "table"
- title: "VPP Performance Changes 2n-icx 8t4c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-icx-8t4c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'8T4C' and 'MRR' and 'NIC_Intel-XXV710' and not 'NF_DENSITY'"
- columns:
- # - title: "2110.0-9"
- # data-set: "vpp-2n-icx-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-icx-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-icx-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-icx-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 1
- compare: 2
- - title: "2206.0-10 vs 2202.0-10"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-icx with xxv710.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-3n-skx-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-skx-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-skx-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-skx-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-3n-skx-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-skx-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-skx-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-skx-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-3n-skx-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-skx-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-skx-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-skx-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-2n-skx-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-skx-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-skx-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-skx-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-2n-skx-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-skx-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-skx-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-skx-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-2n-skx-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-skx-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-skx-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-skx-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-2n-clx-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-clx-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-clx-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-clx-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-2n-clx-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-clx-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-clx-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-clx-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-2n-clx-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-clx-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-clx-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-clx-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-clx-cx556a 2t1c mrr
-- type: "table"
- title: "VPP Performance Changes 2n-clx-cx556a 2t1c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-clx-cx556a-2t1c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'MRR' and 'NIC_Mellanox-CX556A' and not 'NF_DENSITY'"
- columns:
- - title: "2110.0-9"
- data-set: "vpp-2n-clx-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-clx-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-clx-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-clx-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-clx with cx556a.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-clx-cx556a 4t2c mrr
-- type: "table"
- title: "VPP Performance Changes 2n-clx-cx556a 4t2c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-clx-cx556a-4t2c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'MRR' and 'NIC_Mellanox-CX556A' and not 'NF_DENSITY'"
- columns:
- - title: "2110.0-9"
- data-set: "vpp-2n-clx-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-clx-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-clx-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-clx-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-clx with cx556a.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-clx-cx556a 8t4c mrr
-- type: "table"
- title: "VPP Performance Changes 2n-clx-cx556a 8t4c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-clx-cx556a-8t4c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'8T4C' and 'MRR' and 'NIC_Mellanox-CX556A' and not 'NF_DENSITY'"
- columns:
- - title: "2110.0-9"
- data-set: "vpp-2n-clx-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-clx-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-clx-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-clx-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-clx with cx556a.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-2n-zn2-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-zn2-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-zn2-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-zn2-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-2n-zn2-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-zn2-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-zn2-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-zn2-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-2n-zn2-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-zn2-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-zn2-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-zn2-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-2n-dnv-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-dnv-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-dnv-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-dnv-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-2n-dnv-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-dnv-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-dnv-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-dnv-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-2n-dnv-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-dnv-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-dnv-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-dnv-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-3n-dnv-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-dnv-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-dnv-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-dnv-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-3n-dnv-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-dnv-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-dnv-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-dnv-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-3n-dnv-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-dnv-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-dnv-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-dnv-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-3n-tsh-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-tsh-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-tsh-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-tsh-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-3n-tsh-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-tsh-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-tsh-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-tsh-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-3n-tsh-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-3n-tsh-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-3n-tsh-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-3n-tsh-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-2n-tx2-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-tx2-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-tx2-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-tx2-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-2n-tx2-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-tx2-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-tx2-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-tx2-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: 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: "2110.0-9"
- data-set: "vpp-2n-tx2-hist-iter-mrr-new-env"
- - title: "2202.0-9"
- data-set: "vpp-2n-tx2-prev-iter-mrr-old-env"
- - title: "2202.0-10"
- data-set: "vpp-2n-tx2-prev-iter-mrr-new-env"
- - title: "2206.0-10"
- data-set: "vpp-2n-tx2-curr-iter-mrr"
- comparisons:
- - title: "2202.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- - title: "2206.0-10 vs 2202.0-10"
- reference: 3
- compare: 4
- 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, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2202.0-10 vs 2202.0-9: Compares CSIT environment current vs previous with previous VPP code.'
- - '2206.0-10 vs 2202.0-10: Compares VPP code current vs previous in the current CSIT environment.'
-
-# VPP Performance Changes 2n-aws 2t1c mrr
-- type: "table"
- title: "VPP Performance Changes 2n-aws 2t1c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-aws-2t1c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C'"
- columns:
- - title: "2110.0-8"
- data-set: "vpp-2n-aws-hist-iter-mrr"
- - title: "2202.0-9"
- data-set: "vpp-2n-aws-prev-iter-mrr"
- - title: "2206.0-10"
- data-set: "vpp-2n-aws-curr-iter-mrr"
- comparisons:
- - title: "2206.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-aws with nitro50g.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2206.0-10 vs 2202.0-9: Compares VPP code current vs previous.'
-
-# VPP Performance Changes 2n-aws 4t2c mrr
-- type: "table"
- title: "VPP Performance Changes 2n-aws 4t2c mrr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,VPP]}/performance-changes-2n-aws-4t2c-mrr"
- include-tests: "MRR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C'"
- columns:
- - title: "2110.0-8"
- data-set: "vpp-2n-aws-hist-iter-mrr"
- - title: "2202.0-9"
- data-set: "vpp-2n-aws-prev-iter-mrr"
- - title: "2206.0-10"
- data-set: "vpp-2n-aws-curr-iter-mrr"
- comparisons:
- - title: "2206.0-10 vs 2202.0-9"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 2n-aws with nitro50g.'
- - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
- - '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.'
- - '2206.0-10 vs 2202.0-9: Compares VPP code current vs previous.'
-
-# # VPP Performance Changes 3n-aws 2t1c mrr
-# - type: "table"
-# title: "VPP Performance Changes 3n-aws 2t1c mrr"
-# algorithm: "table_comparison"
-# output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-aws-2t1c-mrr"
-# include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-# filter: "'2T1C'"
-# columns:
-# - title: "2110.0-8"
-# data-set: "vpp-3n-aws-hist-iter-mrr"
-# - title: "2202.0-9"
-# data-set: "vpp-3n-aws-prev-iter-mrr"
-# - title: "2206.0-10"
-# data-set: "vpp-3n-aws-curr-iter-mrr"
-# comparisons:
-# - title: "2206.0-10 vs 2202.0-9"
-# reference: 2
-# compare: 3
-# legend:
-# - ''
-# - 'Test Case: Test cases executed for: MRR throughput on 3n-aws with nitro50g.'
-# - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
-# - '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.'
-# - '2206.0-10 vs 2202.0-9: Compares VPP code current vs previous.'
-
-# # VPP Performance Changes 3n-aws 4t2c mrr
-# - type: "table"
-# title: "VPP Performance Changes 3n-aws 4t2c mrr"
-# algorithm: "table_comparison"
-# output-file: "{DIR[STATIC,VPP]}/performance-changes-3n-aws-4t2c-mrr"
-# include-tests: "MRR" # "PDR" | "NDR" | "MRR"
-# filter: "'4T2C'"
-# columns:
-# - title: "2110.0-8"
-# data-set: "vpp-3n-aws-hist-iter-mrr"
-# - title: "2202.0-9"
-# data-set: "vpp-3n-aws-prev-iter-mrr"
-# - title: "2206.0-10"
-# data-set: "vpp-3n-aws-curr-iter-mrr"
-# comparisons:
-# - title: "2206.0-10 vs 2202.0-9"
-# reference: 2
-# compare: 3
-# legend:
-# - ''
-# - 'Test Case: Test cases executed for: MRR throughput on 3n-aws with nitro50g.'
-# - 'YYMM.V-E: [Mpps +- StDev] results for VPP (YY year, MM month, V minor version) tested in CSIT (E environment version, "9" for CSIT rls2202, "10" for CSIT rls2206).'
-# - '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.'
-# - '2206.0-10 vs 2202.0-9: Compares VPP code current vs previous.'
-
-# 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 xxv710"
- data-set: "vpp-3n-skx-curr-iter-mrr"
- - title: "2n-skx xxv710"
- data-set: "vpp-2n-skx-curr-iter-mrr"
- comparisons:
- - title: "2n-skx vs 3n-skx"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 3n-skx xxv710 and 2n-skx xxv710.'
- - '3n-skx xxv710, 2n-skx xxv710: [Mpps +- StDev] results for VPP tested in CSIT'
- - '2n-skx vs 3n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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 xxv710"
- data-set: "vpp-3n-skx-curr-iter-mrr"
- - title: "2n-skx xxv710"
- data-set: "vpp-2n-skx-curr-iter-mrr"
- comparisons:
- - title: "2n-skx vs 3n-skx"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 3n-skx xxv710 and 2n-skx xxv710.'
- - '3n-skx xxv710, 2n-skx xxv710: [Mpps +- StDev] results for VPP tested in CSIT'
- - '2n-skx vs 3n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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 xxv710"
- data-set: "vpp-3n-skx-curr-iter-mrr"
- - title: "2n-skx xxv710"
- data-set: "vpp-2n-skx-curr-iter-mrr"
- comparisons:
- - title: "2n-skx vs 3n-skx"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: MRR throughput on 3n-skx xxv710 and 2n-skx xxv710.'
- - '3n-skx xxv710, 2n-skx xxv710: [Mpps +- StDev] results for VPP tested in CSIT'
- - '2n-skx vs 3n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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-3n-skx-curr-cov"
- 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-2n-skx-curr-cov"
- 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-2n-zn2-curr-cov"
- 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-2n-clx-curr-cov"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - VPP Performance Results 2n-icx
-- type: "table"
- title: "Detailed Test Results - VPP Performance Results 2n-icx"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,PERF,VPP,2N,ICX]}/"
- 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-2n-icx-curr-cov"
- filter: "'NDRPDR'"
-# remove-ndr: True
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - VPP Performance Results 3n-icx
-- type: "table"
- title: "Detailed Test Results - VPP Performance Results 3n-icx"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,PERF,VPP,3N,ICX]}/"
- 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-3n-icx-curr-cov"
- filter: "'NDRPDR'"
- # remove-ndr: True
- 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-3n-tsh-curr-cov"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - VPP Performance Results 3n-alt
-- type: "table"
- title: "Detailed Test Results - VPP Performance Results 3n-alt"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,PERF,VPP,3N,ALT]}/"
- 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-3n-alt-curr-cov"
- 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-2n-tx2-curr-cov"
- 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-3n-dnv-curr-cov"
- 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]}/"
- 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-2n-dnv-curr-cov"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - VPP Performance Results 2n-aws
-- type: "table"
- title: "Detailed Test Results - VPP Performance Results 2n-aws"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,PERF,VPP,2N,AWS]}/"
- 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. min avg max min avg max (10% PDR) |br| 4. min avg max min avg max (50% PDR) |br| 5. min avg max min avg max (90% PDR) |preout| "
- data: "data msg"
- data: "vpp-2n-aws-curr-cov"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# # Detailed Test Results - VPP Performance Results 3n-aws
-# - type: "table"
-# title: "Detailed Test Results - VPP Performance Results 3n-aws"
-# algorithm: "table_merged_details"
-# output-file: "{DIR[DTR,PERF,VPP,3N,AWS]}/"
-# 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. min avg max min avg max (10% PDR) |br| 4. min avg max min avg max (50% PDR) |br| 5. min avg max min avg max (90% PDR) |preout| "
-# data: "data msg"
-# data: "vpp-3n-aws-curr-cov"
-# filter: "all"
-# parameters:
-# - "name"
-# - "parent"
-# - "msg"
-
-# 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-3n-skx-curr-cov"
- 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-2n-skx-curr-cov"
- 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-2n-zn2-curr-cov"
- 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-2n-clx-curr-cov"
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# Test configuration - VPP Performance Test Configs 2n-icx
-- type: "table"
- title: "Test configuration - VPP Performance Test Configs 2n-icx"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTC,PERF,VPP,2N,ICX]}/"
- 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-2n-icx-curr-cov"
- filter: "'NDRPDR'"
-# remove-ndr: True
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# Test configuration - VPP Performance Test Configs 3n-icx
-- type: "table"
- title: "Test configuration - VPP Performance Test Configs 3n-icx"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTC,PERF,VPP,3N,ICX]}/"
- 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-3n-icx-curr-cov"
- filter: "'NDRPDR'"
- # remove-ndr: True
- 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-3n-tsh-curr-cov"
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# Test configuration - VPP Performance Test Configs 3n-alt
-- type: "table"
- title: "Test configuration - VPP Performance Test Configs 3n-alt"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTC,PERF,VPP,3N,ALT]}/"
- 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-3n-alt-curr-cov"
- 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-2n-tx2-curr-cov"
- 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-3n-dnv-curr-cov"
- 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-2n-dnv-curr-cov"
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# Test configuration - VPP Performance Test Configs 2n-aws
-- type: "table"
- title: "Test configuration - VPP Performance Test Configs 2n-aws"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTC,PERF,VPP,2N,AWS]}/"
- 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-2n-aws-curr-cov"
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# # Test configuration - VPP Performance Test Configs 3n-aws
-# - type: "table"
-# title: "Test configuration - VPP Performance Test Configs 3n-aws"
-# algorithm: "table_merged_details"
-# output-file: "{DIR[DTC,PERF,VPP,3N,AWS]}/"
-# 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-3n-aws-curr-cov"
-# filter: "all"
-# parameters:
-# - "parent"
-# - "name"
-# - "conf-history"
-
-# 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-3n-skx-curr-cov"
- 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-2n-skx-curr-cov"
- 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-2n-zn2-curr-cov"
- 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-2n-clx-curr-cov"
- filter: "all"
-
-# Test Operational Data - VPP Performance Operational Data 2n-icx
-- type: "table"
- title: "Test Operational Data - VPP Performance Operational Data 2n-icx"
- algorithm: "table_oper_data_html"
- output-file: "{DIR[DTO,PERF,VPP,2N,ICX]}/"
- data: "vpp-2n-icx-curr-cov"
- filter: "'NDRPDR'"
-
-# Test Operational Data - VPP Performance Operational Data 3n-icx
-- type: "table"
- title: "Test Operational Data - VPP Performance Operational Data 3n-icx"
- algorithm: "table_oper_data_html"
- output-file: "{DIR[DTO,PERF,VPP,3N,ICX]}/"
- data: "vpp-3n-icx-curr-cov"
- filter: "'NDRPDR'"
-
-# 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-3n-tsh-curr-cov"
- filter: "all"
-
-# Test Operational Data - VPP Performance Operational Data 3n-alt
-- type: "table"
- title: "Test Operational Data - VPP Performance Operational Data 3n-alt"
- algorithm: "table_oper_data_html"
- output-file: "{DIR[DTO,PERF,VPP,3N,ALT]}/"
- data: "vpp-3n-alt-curr-cov"
- 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-2n-tx2-curr-cov"
- 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-3n-dnv-curr-cov"
- 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-2n-dnv-curr-cov"
- filter: "all"
-
-# Test Operational Data - VPP Performance Operational Data 2n-aws
-- type: "table"
- title: "Test Operational Data - VPP Performance Operational Data 2n-aws"
- algorithm: "table_oper_data_html"
- output-file: "{DIR[DTO,PERF,VPP,2N,AWS]}/"
- data: "vpp-2n-aws-curr-cov"
- filter: "all"
-
-# # Test Operational Data - VPP Performance Operational Data 3n-aws
-# - type: "table"
-# title: "Test Operational Data - VPP Performance Operational Data 3n-aws"
-# algorithm: "table_oper_data_html"
-# output-file: "{DIR[DTO,PERF,VPP,3N,AWS]}/"
-# data: "vpp-3n-aws-curr-cov"
-# filter: "all"
-
-# 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-3n-skx-curr-iter-mrr"
- 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-2n-skx-curr-iter-mrr"
- 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-2n-zn2-curr-iter-mrr"
- 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-2n-clx-curr-iter-mrr"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - VPP MRR Results 2n-icx
-- type: "table"
- title: "Detailed Test Results - VPP MRR Results 2n-icx"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,MRR,VPP,2N,ICX]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Maximum Receive Rate trial [Mpps] |preout| "
- data: "data msg"
- data: "vpp-2n-icx-curr-iter-mrr"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - VPP MRR Results 3n-icx
-- type: "table"
- title: "Detailed Test Results - VPP MRR Results 3n-icx"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,MRR,VPP,3N,ICX]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Maximum Receive Rate trial [Mpps] |preout| "
- data: "data msg"
- data: "vpp-3n-icx-curr-iter-mrr"
- filter: "'MRR'"
- 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-3n-tsh-curr-iter-mrr"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - VPP MRR Results 3n-alt
-- type: "table"
- title: "Detailed Test Results - VPP MRR Results 3n-alt"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,MRR,VPP,3N,ALT]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Maximum Receive Rate trial [Mpps] |preout| "
- data: "data msg"
- data: "vpp-3n-alt-curr-iter-mrr"
- 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-2n-tx2-curr-iter-mrr"
- 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-3n-dnv-curr-iter-mrr"
- 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-2n-dnv-curr-iter-mrr"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - VPP MRR Results 2n-aws
-- type: "table"
- title: "Detailed Test Results - VPP MRR Results 2n-aws"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,MRR,VPP,2N,AWS]}/"
- columns:
- - title: " |prein| Test Name |preout| "
- data: "data name"
- - title: " |prein| Maximum Receive Rate trial [Mpps] |preout| "
- data: "data msg"
- data: "vpp-2n-aws-curr-iter-mrr"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# # Detailed Test Results - VPP MRR Results 3n-aws
-# - type: "table"
-# title: "Detailed Test Results - VPP MRR Results 3n-aws"
-# algorithm: "table_merged_details"
-# output-file: "{DIR[DTR,MRR,VPP,3N,AWS]}/"
-# columns:
-# - title: " |prein| Test Name |preout| "
-# data: "data name"
-# - title: " |prein| Maximum Receive Rate trial [Mpps] |preout| "
-# data: "data msg"
-# data: "vpp-3n-aws-curr-iter-mrr"
-# filter: "all"
-# parameters:
-# - "name"
-# - "parent"
-# - "msg"
-
-# 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-3n-skx-curr-iter-mrr"
- 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-2n-skx-curr-iter-mrr"
- 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-2n-zn2-curr-iter-mrr"
- 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-2n-clx-curr-iter-mrr"
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# Test configuration - VPP MRR Test Configs 2n-icx
-- type: "table"
- title: "Test configuration - VPP MRR Test Configs 2n-icx"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTC,MRR,VPP,2N,ICX]}/"
- 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-2n-icx-curr-iter-mrr"
- filter: "'MRR'"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# Test configuration - VPP MRR Test Configs 3n-icx
-- type: "table"
- title: "Test configuration - VPP MRR Test Configs 3n-icx"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTC,MRR,VPP,3N,ICX]}/"
- 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-3n-icx-curr-iter-mrr"
- filter: "'MRR'"
- 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-3n-tsh-curr-iter-mrr"
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# Test configuration - VPP MRR Test Configs 3n-alt
-- type: "table"
- title: "Test configuration - VPP MRR Test Configs 3n-alt"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTC,MRR,VPP,3N,ALT]}/"
- 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-3n-alt-curr-iter-mrr"
- 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-2n-tx2-curr-iter-mrr"
- 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-3n-dnv-curr-iter-mrr"
- 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-2n-dnv-curr-iter-mrr"
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# Test configuration - VPP MRR Test Configs 2n-aws
-- type: "table"
- title: "Test configuration - VPP MRR Test Configs 2n-aws"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTC,MRR,VPP,2N,AWS]}/"
- 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-2n-aws-curr-iter-mrr"
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# # Test configuration - VPP MRR Test Configs 3n-aws
-# - type: "table"
-# title: "Test configuration - VPP MRR Test Configs 3n-aws"
-# algorithm: "table_merged_details"
-# output-file: "{DIR[DTC,MRR,VPP,3N,AWS]}/"
-# 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-3n-aws-curr-iter-mrr"
-# 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-icx 2t1c pdr
-- type: "table"
- title: "DPDK Performance Changes 3n-icx 2t1c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-3n-icx-2t1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
- # - title: "21.08"
- # data-set: "dpdk-3n-icx-hist-iter"
- - title: "21.11"
- data-set: "dpdk-3n-icx-prev-iter"
- - title: "22.03"
- data-set: "dpdk-3n-icx-curr-iter"
- comparisons:
- - title: "22.03 vs 21.11"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-icx with xxv710.'
- - '21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# DPDK Performance Changes 3n-icx 4t2c pdr
-- type: "table"
- title: "DPDK Performance Changes 3n-icx 4t2c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-3n-icx-4t2c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
- # - title: "21.08"
- # data-set: "dpdk-3n-icx-hist-iter"
- - title: "21.11"
- data-set: "dpdk-3n-icx-prev-iter"
- - title: "22.03"
- data-set: "dpdk-3n-icx-curr-iter"
- comparisons:
- - title: "22.03 vs 21.11"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-icx with xxv710.'
- - '21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# DPDK Performance Changes 3n-icx 2t1c ndr
-- type: "table"
- title: "DPDK Performance Changes 3n-icx 2t1c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-3n-icx-2t1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
- # - title: "21.08"
- # data-set: "dpdk-3n-icx-hist-iter"
- - title: "21.11"
- data-set: "dpdk-3n-icx-prev-iter"
- - title: "22.03"
- data-set: "dpdk-3n-icx-curr-iter"
- comparisons:
- - title: "22.03 vs 21.11"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 3n-icx with xxv710.'
- - '21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# DPDK Performance Changes 3n-icx 4t2c ndr
-- type: "table"
- title: "DPDK Performance Changes 3n-icx 4t2c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-3n-icx-4t2c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
- # - title: "21.08"
- # data-set: "dpdk-3n-icx-hist-iter"
- - title: "21.11"
- data-set: "dpdk-3n-icx-prev-iter"
- - title: "22.03"
- data-set: "dpdk-3n-icx-curr-iter"
- comparisons:
- - title: "22.03 vs 21.11"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 3n-icx with xxv710.'
- - '21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# DPDK Performance Changes 2n-icx 2t1c pdr
-- type: "table"
- title: "DPDK Performance Changes 2n-icx 2t1c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-2n-icx-2t1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
- # - title: "21.08"
- # data-set: "dpdk-2n-icx-hist-iter"
- - title: "21.11"
- data-set: "dpdk-2n-icx-prev-iter"
- - title: "22.03"
- data-set: "dpdk-2n-icx-curr-iter"
- comparisons:
- - title: "22.03 vs 21.11"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-icx with xxv710.'
- - '21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# DPDK Performance Changes 2n-icx 4t2c pdr
-- type: "table"
- title: "DPDK Performance Changes 2n-icx 4t2c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-2n-icx-4t2c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
- # - title: "21.08"
- # data-set: "dpdk-2n-icx-hist-iter"
- - title: "21.11"
- data-set: "dpdk-2n-icx-prev-iter"
- - title: "22.03"
- data-set: "dpdk-2n-icx-curr-iter"
- comparisons:
- - title: "22.03 vs 21.11"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-icx with xxv710.'
- - '21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# DPDK Performance Changes 2n-icx 2t1c ndr
-- type: "table"
- title: "DPDK Performance Changes 2n-icx 2t1c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-2n-icx-2t1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
- # - title: "21.08"
- # data-set: "dpdk-2n-icx-hist-iter"
- - title: "21.11"
- data-set: "dpdk-2n-icx-prev-iter"
- - title: "22.03"
- data-set: "dpdk-2n-icx-curr-iter"
- comparisons:
- - title: "22.03 vs 21.11"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-icx with xxv710.'
- - '21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# DPDK Performance Changes 2n-icx 4t2c ndr
-- type: "table"
- title: "DPDK Performance Changes 2n-icx 4t2c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-2n-icx-4t2c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'4T2C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- columns:
- # - title: "21.08"
- # data-set: "dpdk-2n-icx-hist-iter"
- - title: "21.11"
- data-set: "dpdk-2n-icx-prev-iter"
- - title: "22.03"
- data-set: "dpdk-2n-icx-curr-iter"
- comparisons:
- - title: "22.03 vs 21.11"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-icx with xxv710.'
- - '21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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: "21.08"
- data-set: "dpdk-3n-skx-hist-iter"
- - title: "21.11"
- data-set: "dpdk-3n-skx-prev-iter"
- - title: "22.03"
- data-set: "dpdk-3n-skx-curr-iter"
- comparisons:
- - title: "22.03 vs 21.11"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-skx with xxv710.'
- - '21.08, 21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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: "21.08"
- data-set: "dpdk-3n-skx-hist-iter"
- - title: "21.11"
- data-set: "dpdk-3n-skx-prev-iter"
- - title: "22.03"
- data-set: "dpdk-3n-skx-curr-iter"
- comparisons:
- - title: "22.03 vs 21.11"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-skx with xxv710.'
- - '21.08, 21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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: "21.08"
- data-set: "dpdk-3n-skx-hist-iter"
- - title: "21.11"
- data-set: "dpdk-3n-skx-prev-iter"
- - title: "22.03"
- data-set: "dpdk-3n-skx-curr-iter"
- comparisons:
- - title: "22.03 vs 21.11"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 3n-skx with xxv710.'
- - '21.08, 21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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: "21.08"
- data-set: "dpdk-3n-skx-hist-iter"
- - title: "21.11"
- data-set: "dpdk-3n-skx-prev-iter"
- - title: "22.03"
- data-set: "dpdk-3n-skx-curr-iter"
- comparisons:
- - title: "22.03 vs 21.11"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 3n-skx with xxv710.'
- - '21.08, 21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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: "21.08"
- data-set: "dpdk-2n-skx-hist-iter"
- - title: "21.11"
- data-set: "dpdk-2n-skx-prev-iter"
- - title: "22.03"
- data-set: "dpdk-2n-skx-curr-iter"
- comparisons:
- - title: "22.03 vs 21.11"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-skx with xxv710.'
- - '21.08, 21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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: "21.08"
- data-set: "dpdk-2n-skx-hist-iter"
- - title: "21.11"
- data-set: "dpdk-2n-skx-prev-iter"
- - title: "22.03"
- data-set: "dpdk-2n-skx-curr-iter"
- comparisons:
- - title: "22.03 vs 21.11"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-skx with xxv710.'
- - '21.08, 21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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: "21.08"
- data-set: "dpdk-2n-skx-hist-iter"
- - title: "21.11"
- data-set: "dpdk-2n-skx-prev-iter"
- - title: "22.03"
- data-set: "dpdk-2n-skx-curr-iter"
- comparisons:
- - title: "22.03 vs 21.11"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-skx with xxv710.'
- - '21.08, 21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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: "21.08"
- data-set: "dpdk-2n-skx-hist-iter"
- - title: "21.11"
- data-set: "dpdk-2n-skx-prev-iter"
- - title: "22.03"
- data-set: "dpdk-2n-skx-curr-iter"
- comparisons:
- - title: "22.03 vs 21.11"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-skx with xxv710.'
- - '21.08, 21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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: "21.08"
- data-set: "dpdk-2n-clx-hist-iter"
- - title: "21.11"
- data-set: "dpdk-2n-clx-prev-iter"
- - title: "22.03"
- data-set: "dpdk-2n-clx-curr-iter"
- comparisons:
- - title: "22.03 vs 21.11"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-clx with xxv710.'
- - '21.08, 21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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: "21.08"
- data-set: "dpdk-2n-clx-hist-iter"
- - title: "21.11"
- data-set: "dpdk-2n-clx-prev-iter"
- - title: "22.03"
- data-set: "dpdk-2n-clx-curr-iter"
- comparisons:
- - title: "22.03 vs 21.11"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-clx with xxv710.'
- - '21.08, 21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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: "21.08"
- data-set: "dpdk-2n-clx-hist-iter"
- - title: "21.11"
- data-set: "dpdk-2n-clx-prev-iter"
- - title: "22.03"
- data-set: "dpdk-2n-clx-curr-iter"
- comparisons:
- - title: "22.03 vs 21.11"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-clx with xxv710.'
- - '21.08, 21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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: "21.08"
- data-set: "dpdk-2n-clx-hist-iter"
- - title: "21.11"
- data-set: "dpdk-2n-clx-prev-iter"
- - title: "22.03"
- data-set: "dpdk-2n-clx-curr-iter"
- comparisons:
- - title: "22.03 vs 21.11"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-clx with xxv710.'
- - '21.08, 21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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: "21.08"
- data-set: "dpdk-2n-zn2-hist-iter"
- - title: "21.11"
- data-set: "dpdk-2n-zn2-prev-iter"
- - title: "22.03"
- data-set: "dpdk-2n-zn2-curr-iter"
- comparisons:
- - title: "22.03 vs 21.11"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-zn2 with xxv710.'
- - '21.08, 21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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: "21.08"
- data-set: "dpdk-2n-zn2-hist-iter"
- - title: "21.11"
- data-set: "dpdk-2n-zn2-prev-iter"
- - title: "22.03"
- data-set: "dpdk-2n-zn2-curr-iter"
- comparisons:
- - title: "22.03 vs 21.11"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-zn2 with xxv710.'
- - '21.08, 21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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: "21.08"
- data-set: "dpdk-2n-zn2-hist-iter"
- - title: "21.11"
- data-set: "dpdk-2n-zn2-prev-iter"
- - title: "22.03"
- data-set: "dpdk-2n-zn2-curr-iter"
- comparisons:
- - title: "22.03 vs 21.11"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-zn2 with xxv710.'
- - '21.08, 21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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: "21.08"
- data-set: "dpdk-2n-zn2-hist-iter"
- - title: "21.11"
- data-set: "dpdk-2n-zn2-prev-iter"
- - title: "22.03"
- data-set: "dpdk-2n-zn2-curr-iter"
- comparisons:
- - title: "22.03 vs 21.11"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-zn2 with xxv710.'
- - '21.08, 21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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'"
- columns:
- - title: "21.08"
- data-set: "dpdk-3n-tsh-hist-iter"
- - title: "21.11"
- data-set: "dpdk-3n-tsh-prev-iter"
- - title: "22.03"
- data-set: "dpdk-3n-tsh-curr-iter"
- comparisons:
- - title: "22.03 vs 21.11"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-tsh with x520.'
- - '21.08, 21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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'"
- columns:
- - title: "21.08"
- data-set: "dpdk-3n-tsh-hist-iter"
- - title: "21.11"
- data-set: "dpdk-3n-tsh-prev-iter"
- - title: "22.03"
- data-set: "dpdk-3n-tsh-curr-iter"
- comparisons:
- - title: "22.03 vs 21.11"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-tsh with x520.'
- - '21.08, 21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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'"
- columns:
- - title: "21.08"
- data-set: "dpdk-3n-tsh-hist-iter"
- - title: "21.11"
- data-set: "dpdk-3n-tsh-prev-iter"
- - title: "22.03"
- data-set: "dpdk-3n-tsh-curr-iter"
- comparisons:
- - title: "22.03 vs 21.11"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 3n-tsh with x520.'
- - '21.08, 21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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'"
- columns:
- - title: "21.08"
- data-set: "dpdk-3n-tsh-hist-iter"
- - title: "21.11"
- data-set: "dpdk-3n-tsh-prev-iter"
- - title: "22.03"
- data-set: "dpdk-3n-tsh-curr-iter"
- comparisons:
- - title: "22.03 vs 21.11"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 3n-tsh with x520.'
- - '21.08, 21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# DPDK Performance Changes 2n-tx2 1t1c pdr
-- type: "table"
- title: "DPDK Performance Changes 2n-tx2 1t1c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-2n-tx2-1t1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'1T1C' and 'NDRPDR'"
- columns:
- - title: "21.08"
- data-set: "dpdk-2n-tx2-hist-iter"
- - title: "21.11"
- data-set: "dpdk-2n-tx2-prev-iter"
- - title: "22.03"
- data-set: "dpdk-2n-tx2-curr-iter"
- comparisons:
- - title: "22.03 vs 21.11"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-tx2.'
- - '21.08, 21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# DPDK Performance Changes 2n-tx2 2t2c pdr
-- type: "table"
- title: "DPDK Performance Changes 2n-tx2 2t2c pdr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-2n-tx2-2t2c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T2C' and 'NDRPDR'"
- columns:
- - title: "21.08"
- data-set: "dpdk-2n-tx2-hist-iter"
- - title: "21.11"
- data-set: "dpdk-2n-tx2-prev-iter"
- - title: "22.03"
- data-set: "dpdk-2n-tx2-curr-iter"
- comparisons:
- - title: "22.03 vs 21.11"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 2n-tx2.'
- - '21.08, 21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# DPDK Performance Changes 2n-tx2 1t1c ndr
-- type: "table"
- title: "DPDK Performance Changes 2n-tx2 1t1c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-2n-tx2-1t1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'1T1C' and 'NDRPDR'"
- columns:
- - title: "21.08"
- data-set: "dpdk-2n-tx2-hist-iter"
- - title: "21.11"
- data-set: "dpdk-2n-tx2-prev-iter"
- - title: "22.03"
- data-set: "dpdk-2n-tx2-curr-iter"
- comparisons:
- - title: "22.03 vs 21.11"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-tx2.'
- - '21.08, 21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# DPDK Performance Changes 2n-tx2 2t2c ndr
-- type: "table"
- title: "DPDK Performance Changes 2n-tx2 2t2c ndr"
- algorithm: "table_comparison"
- output-file: "{DIR[STATIC,DPDK]}/performance-changes-2n-tx2-2t2c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- filter: "'2T2C' and 'NDRPDR'"
- columns:
- - title: "21.08"
- data-set: "dpdk-2n-tx2-hist-iter"
- - title: "21.11"
- data-set: "dpdk-2n-tx2-prev-iter"
- - title: "22.03"
- data-set: "dpdk-2n-tx2-curr-iter"
- comparisons:
- - title: "Diff"
- reference: 2
- compare: 3
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 2n-tx2.'
- - '21.08, 21.11, 22.03: [Mpps +- StDev] results for DPDK tested in CSIT.'
- - '22.03 vs 21.11: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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 xxv710"
- data-set: "dpdk-3n-skx-curr-iter"
- - title: "2n-skx xxv710"
- data-set: "dpdk-2n-skx-curr-iter"
- comparisons:
- - title: "2n-skx vs 3n-skx"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: NDR throughput on 3n-skx xxv710 and 2n-skx xxv710.'
- - '3n-skx xxv710, 2n-skx xxv710: [Mpps +- StDev] results for DPDK tested in CSIT'
- - '2n-skx vs 3n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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 xxv710"
- data-set: "dpdk-3n-skx-curr-iter"
- - title: "2n-skx xxv710"
- data-set: "dpdk-2n-skx-curr-iter"
- comparisons:
- - title: "2n-skx vs 3n-skx"
- reference: 1
- compare: 2
- legend:
- - ''
- - 'Test Case: Test cases executed for: PDR throughput on 3n-skx xxv710 and 2n-skx xxv710.'
- - '3n-skx xxv710, 2n-skx xxv710: [Mpps +- StDev] results for DPDK tested in CSIT'
- - '2n-skx vs 3n-skx: [% +- StDev] Relative difference, latter is the base. [N] for Root Cause Analysis (RCA) reference, see RCA list below.'
-
-# 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-3n-skx-curr-iter-best"
- 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-2n-skx-curr-iter-best"
- 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,ZN2]}/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-2n-zn2-curr-iter-best"
- 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-2n-clx-curr-iter-best"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - DPDK Performance Results 2n-icx
-- type: "table"
- title: "Detailed Test Results - DPDK Performance Results 2n-icx"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,PERF,DPDK,2N,ICX]}/dpdk_performance_results_2n_icx"
- 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-2n-icx-curr-iter-best"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - DPDK Performance Results 3n-icx
-- type: "table"
- title: "Detailed Test Results - DPDK Performance Results 3n-icx"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,PERF,DPDK,3N,ICX]}/dpdk_performance_results_3n_icx"
- 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-3n-icx-curr-iter-best"
- 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-3n-tsh-curr-iter-best"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - DPDK Performance Results 3n-alt
-- type: "table"
- title: "Detailed Test Results - DPDK Performance Results 3n-alt"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,PERF,DPDK,3N,ALT]}/dpdk_performance_results_3n_alt"
- 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-3n-alt-curr-iter-best"
- 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-2n-tx2-curr-iter-best"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Detailed Test Results - TRex Performance Results 2n-skx
-- type: "table"
- title: "Detailed Test Results - TRex Performance Results 2n-skx"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,PERF,TREX,2N,SKX]}/trex_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: "trex-2n-skx-curr-cov"
- filter: "all"
- remove-ndr: False
- 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,ICX]}"
- - "{DIR[DTR,PERF,VPP,3N,ICX]}"
- - "{DIR[DTR,PERF,VPP,2N,ZN2]}"
- - "{DIR[DTR,PERF,VPP,3N,ALT]}"
- - "{DIR[DTR,PERF,VPP,3N,TSH]}"
- - "{DIR[DTR,PERF,VPP,2N,TX2]}"
- - "{DIR[DTR,PERF,VPP,2N,DNV]}"
- - "{DIR[DTR,PERF,VPP,3N,DNV]}"
- - "{DIR[DTR,PERF,VPP,2N,AWS]}"
- # - "{DIR[DTR,PERF,VPP,3N,AWS]}"
- data:
- - "vpp-2n-skx-curr-cov"
- - "vpp-3n-skx-curr-cov"
- - "vpp-2n-clx-curr-cov"
- - "vpp-2n-icx-curr-cov"
- - "vpp-3n-icx-curr-cov"
- - "vpp-2n-zn2-curr-cov"
- - "vpp-3n-alt-curr-cov"
- - "vpp-3n-tsh-curr-cov"
- - "vpp-2n-tx2-curr-cov"
- - "vpp-2n-dnv-curr-cov"
- - "vpp-3n-dnv-curr-cov"
- - "vpp-2n-aws-curr-cov"
- # - "vpp-3n-aws-curr-cov"
- filter: "'NDRPDR'"
- 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-icx"
- - "3n-icx"
- - "2n-zn2"
- - "3n-alt"
- - "3n-tsh"
- - "2n-tx2"
- - "2n-dnv"
- - "3n-dnv"
- - "2n-aws"
- # - "3n-aws"
- level-3:
- - "xl710"
- - "x520"
- - "xxv710"
- - "x710"
- - "e810cq"
- - "x553"
- - "cx556a"
- - "vic1227"
- - "vic1385"
- - "ena"
-
-# 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,ICX]}"
- - "{DIR[DTC,PERF,VPP,3N,ICX]}"
- - "{DIR[DTC,PERF,VPP,2N,ZN2]}"
- - "{DIR[DTC,PERF,VPP,3N,ALT]}"
- - "{DIR[DTC,PERF,VPP,3N,TSH]}"
- - "{DIR[DTC,PERF,VPP,2N,TX2]}"
- - "{DIR[DTC,PERF,VPP,2N,DNV]}"
- - "{DIR[DTC,PERF,VPP,3N,DNV]}"
- - "{DIR[DTC,PERF,VPP,2N,AWS]}"
- # - "{DIR[DTC,PERF,VPP,3N,AWS]}"
- data:
- - "vpp-2n-skx-curr-cov"
- - "vpp-3n-skx-curr-cov"
- - "vpp-2n-clx-curr-cov"
- - "vpp-2n-icx-curr-cov"
- - "vpp-3n-icx-curr-cov"
- - "vpp-2n-zn2-curr-cov"
- - "vpp-3n-alt-curr-cov"
- - "vpp-3n-tsh-curr-cov"
- - "vpp-2n-tx2-curr-cov"
- - "vpp-2n-dnv-curr-cov"
- - "vpp-3n-dnv-curr-cov"
- - "vpp-2n-aws-curr-cov"
- # - "vpp-3n-aws-curr-cov"
- filter: "'NDRPDR'"
- 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-icx"
- - "3n-icx"
- - "2n-zn2"
- - "3n-alt"
- - "3n-tsh"
- - "2n-tx2"
- - "2n-dnv"
- - "3n-dnv"
- - "2n-aws"
- # - "3n-aws"
- level-3:
- - "xl710"
- - "x520"
- - "xxv710"
- - "x710"
- - "e810cq"
- - "x553"
- - "cx556a"
- - "vic1227"
- - "vic1385"
- - "ena"
-
-# 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,ICX]}"
- - "{DIR[DTO,PERF,VPP,3N,ICX]}"
- - "{DIR[DTO,PERF,VPP,2N,ZN2]}"
- - "{DIR[DTO,PERF,VPP,3N,ALT]}"
- - "{DIR[DTO,PERF,VPP,3N,TSH]}"
- - "{DIR[DTO,PERF,VPP,2N,TX2]}"
- - "{DIR[DTO,PERF,VPP,2N,DNV]}"
- - "{DIR[DTO,PERF,VPP,3N,DNV]}"
- - "{DIR[DTO,PERF,VPP,2N,AWS]}"
- # - "{DIR[DTO,PERF,VPP,3N,AWS]}"
- data:
- - "vpp-2n-skx-curr-cov"
- - "vpp-3n-skx-curr-cov"
- - "vpp-2n-clx-curr-cov"
- - "vpp-2n-icx-curr-cov"
- - "vpp-3n-icx-curr-cov"
- - "vpp-2n-zn2-curr-cov"
- - "vpp-3n-alt-curr-cov"
- - "vpp-3n-tsh-curr-cov"
- - "vpp-2n-tx2-curr-cov"
- - "vpp-2n-dnv-curr-cov"
- - "vpp-3n-dnv-curr-cov"
- - "vpp-2n-aws-curr-cov"
- # - "vpp-3n-aws-curr-cov"
- filter: "'NDRPDR'"
- 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-icx"
- - "3n-icx"
- - "2n-zn2"
- - "3n-alt"
- - "3n-tsh"
- - "2n-tx2"
- - "2n-dnv"
- - "3n-dnv"
- - "2n-aws"
- # - "3n-aws"
- level-3:
- - "xl710"
- - "x520"
- - "xxv710"
- - "x710"
- - "e810cq"
- - "x553"
- - "cx556a"
- - "vic1227"
- - "vic1385"
- - "ena"
-
-# 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,ICX]}"
- - "{DIR[DTR,MRR,VPP,3N,ICX]}"
- - "{DIR[DTR,MRR,VPP,2N,ZN2]}"
- - "{DIR[DTR,MRR,VPP,3N,ALT]}"
- - "{DIR[DTR,MRR,VPP,3N,TSH]}"
- - "{DIR[DTR,MRR,VPP,2N,TX2]}"
- - "{DIR[DTR,MRR,VPP,2N,DNV]}"
- - "{DIR[DTR,MRR,VPP,3N,DNV]}"
- - "{DIR[DTR,MRR,VPP,2N,AWS]}"
- # - "{DIR[DTR,MRR,VPP,3N,AWS]}"
- data:
- - "vpp-2n-skx-curr-iter-mrr"
- - "vpp-3n-skx-curr-iter-mrr"
- - "vpp-2n-clx-curr-iter-mrr"
- - "vpp-2n-icx-curr-iter-mrr"
- - "vpp-3n-icx-curr-iter-mrr"
- - "vpp-2n-zn2-curr-iter-mrr"
- - "vpp-3n-alt-curr-iter-mrr"
- - "vpp-3n-tsh-curr-iter-mrr"
- - "vpp-2n-tx2-curr-iter-mrr"
- - "vpp-2n-dnv-curr-iter-mrr"
- - "vpp-3n-dnv-curr-iter-mrr"
- - "vpp-2n-aws-curr-iter-mrr"
- # - "vpp-3n-aws-curr-iter-mrr"
- filter: "'MRR'"
- 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-icx"
- - "3n-icx"
- - "2n-zn2"
- - "3n-alt"
- - "3n-tsh"
- - "2n-tx2"
- - "2n-dnv"
- - "3n-dnv"
- - "2n-aws"
- # - "3n-aws"
- level-3:
- - "xl710"
- - "x520"
- - "xxv710"
- - "x710"
- - "e810cq"
- - "x553"
- - "cx556a"
- - "vic1227"
- - "vic1385"
- - "ena"
-
-# 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,ICX]}"
- - "{DIR[DTC,MRR,VPP,3N,ICX]}"
- - "{DIR[DTC,MRR,VPP,2N,ZN2]}"
- - "{DIR[DTC,MRR,VPP,3N,ALT]}"
- - "{DIR[DTC,MRR,VPP,3N,TSH]}"
- - "{DIR[DTC,MRR,VPP,2N,TX2]}"
- - "{DIR[DTC,MRR,VPP,2N,DNV]}"
- - "{DIR[DTC,MRR,VPP,3N,DNV]}"
- - "{DIR[DTC,MRR,VPP,2N,AWS]}"
- # - "{DIR[DTC,MRR,VPP,3N,AWS]}"
- data:
- - "vpp-2n-skx-curr-iter-mrr"
- - "vpp-3n-skx-curr-iter-mrr"
- - "vpp-2n-clx-curr-iter-mrr"
- - "vpp-2n-icx-curr-iter-mrr"
- - "vpp-3n-icx-curr-iter-mrr"
- - "vpp-2n-zn2-curr-iter-mrr"
- - "vpp-3n-alt-curr-iter-mrr"
- - "vpp-3n-tsh-curr-iter-mrr"
- - "vpp-2n-tx2-curr-iter-mrr"
- - "vpp-2n-dnv-curr-iter-mrr"
- - "vpp-3n-dnv-curr-iter-mrr"
- - "vpp-2n-aws-curr-iter-mrr"
- # - "vpp-3n-aws-curr-iter-mrr"
- filter: "'MRR'"
- 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-icx"
- - "3n-icx"
- - "2n-zn2"
- - "3n-alt"
- - "3n-tsh"
- - "2n-tx2"
- - "2n-dnv"
- - "3n-dnv"
- - "2n-aws"
- # - "3n-aws"
- level-3:
- - "xl710"
- - "x520"
- - "xxv710"
- - "x710"
- - "e810cq"
- - "x553"
- - "cx556a"
- - "vic1227"
- - "vic1385"
- - "ena"
-
-# 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-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-3n-skx-curr-iter-best"
- 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-2n-skx-curr-iter-best"
- 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-2n-zn2-curr-iter-best"
- 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-2n-clx-curr-iter-best"
- filter: "all"
- data-start-level: 4
-
-# DPDK Performance Results 2n-icx
-- type: "file"
- title: "DPDK Performance Results 2n-icx"
- algorithm: "file_test_results"
- output-file: "{DIR[DTR,PERF,DPDK,2N,ICX]}"
- dir-tables: "{DIR[DTR,PERF,DPDK,2N,ICX]}"
- data: "dpdk-2n-icx-curr-iter-best"
- filter: "all"
- data-start-level: 4
-
-# DPDK Performance Results 3n-icx
-- type: "file"
- title: "DPDK Performance Results 3n-icx"
- algorithm: "file_test_results"
- output-file: "{DIR[DTR,PERF,DPDK,3N,ICX]}"
- dir-tables: "{DIR[DTR,PERF,DPDK,3N,ICX]}"
- data: "dpdk-3n-icx-curr-iter-best"
- 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-3n-tsh-curr-iter-best"
- filter: "all"
- data-start-level: 4
-
-# DPDK Performance Results 3n-alt
-- type: "file"
- title: "DPDK Performance Results 3n-alt"
- algorithm: "file_test_results"
- output-file: "{DIR[DTR,PERF,DPDK,3N,ALT]}"
- dir-tables: "{DIR[DTR,PERF,DPDK,3N,ALT]}"
- data: "dpdk-3n-alt-curr-iter-best"
- 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-2n-tx2-curr-iter-best"
- filter: "all"
- data-start-level: 4
-
-# TRex Performance Results 2n-skx
-- type: "file"
- title: "TRex Performance Results 2n-skx"
- algorithm: "file_test_results"
- output-file: "{DIR[DTR,PERF,TREX,2N,SKX]}"
- dir-tables: "{DIR[DTR,PERF,TREX,2N,SKX]}"
- data: "trex-2n-skx-curr-cov"
- filter: "all"
- data-start-level: 4
-
-################################################################################
-### P L O T S ###
-################################################################################
-
-# VSAP tests 2n-clx
-
-- type: "plot"
- title: "2n-clx-cx556a-0B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-0B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps"
- data: "vpp-2n-clx-curr-iter-vsap"
- include:
- - "Tests.Vpp.Perf.Hoststack.2N1L-100Ge2P1Cx556A-Rdma-Eth-Ip4Tcphttp-Ldpreload-Nginx-1 15 0-Cps.0B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps"
- layout:
- title: "2n-clx-cx556a-0B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0"
- layout: "plot-hoststack"
-
-- type: "plot"
- title: "2n-clx-cx556a-64B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps"
- data: "vpp-2n-clx-curr-iter-vsap"
- include:
- - "Tests.Vpp.Perf.Hoststack.2N1L-100Ge2P1Cx556A-Rdma-Eth-Ip4Tcphttp-Ldpreload-Nginx-1 15 0-Cps.64B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps"
- layout:
- title: "2n-clx-cx556a-64B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0"
- layout: "plot-hoststack"
-
-- type: "plot"
- title: "2n-clx-cx556a-1024B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-1024B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps"
- data: "vpp-2n-clx-curr-iter-vsap"
- include:
- - "Tests.Vpp.Perf.Hoststack.2N1L-100Ge2P1Cx556A-Rdma-Eth-Ip4Tcphttp-Ldpreload-Nginx-1 15 0-Cps.1024B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps"
- layout:
- title: "2n-clx-cx556a-1024B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0"
- layout: "plot-hoststack"
-
-- type: "plot"
- title: "2n-clx-cx556a-2048B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-2048B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps"
- data: "vpp-2n-clx-curr-iter-vsap"
- include:
- - "Tests.Vpp.Perf.Hoststack.2N1L-100Ge2P1Cx556A-Rdma-Eth-Ip4Tcphttp-Ldpreload-Nginx-1 15 0-Cps.2048B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps"
- layout:
- title: "2n-clx-cx556a-2048B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0"
- layout: "plot-hoststack"
-
-- type: "plot"
- title: "2n-clx-cx556a-0B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-0B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps"
- data: "vpp-2n-clx-curr-iter-vsap"
- include:
- - "Tests.Vpp.Perf.Hoststack.2N1L-100Ge2P1Cx556A-Rdma-Eth-Ip4Tcphttp-Ldpreload-Nginx-1 15 0-Rps.0B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps"
- layout:
- title: "2n-clx-cx556a-0B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0"
- layout: "plot-hoststack"
-
-- type: "plot"
- title: "2n-clx-cx556a-64B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps"
- data: "vpp-2n-clx-curr-iter-vsap"
- include:
- - "Tests.Vpp.Perf.Hoststack.2N1L-100Ge2P1Cx556A-Rdma-Eth-Ip4Tcphttp-Ldpreload-Nginx-1 15 0-Rps.64B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps"
- layout:
- title: "2n-clx-cx556a-64B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0"
- layout: "plot-hoststack"
-
-- type: "plot"
- title: "2n-clx-cx556a-1024B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-1024B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps"
- data: "vpp-2n-clx-curr-iter-vsap"
- include:
- - "Tests.Vpp.Perf.Hoststack.2N1L-100Ge2P1Cx556A-Rdma-Eth-Ip4Tcphttp-Ldpreload-Nginx-1 15 0-Rps.1024B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps"
- layout:
- title: "2n-clx-cx556a-1024B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0"
- layout: "plot-hoststack"
-
-- type: "plot"
- title: "2n-clx-cx556a-2048B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-2048B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps"
- data: "vpp-2n-clx-curr-iter-vsap"
- include:
- - "Tests.Vpp.Perf.Hoststack.2N1L-100Ge2P1Cx556A-Rdma-Eth-Ip4Tcphttp-Ldpreload-Nginx-1 15 0-Rps.2048B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps"
- layout:
- title: "2n-clx-cx556a-2048B-2t1c-rdma-eth-ip4tcphttp-ldpreload-nginx-1_15_0"
- layout: "plot-hoststack"
-
-- type: "plot"
- title: "2n-clx-e810cq-0B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-e810cq-0B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps"
- data: "vpp-2n-clx-curr-iter-vsap"
- include:
- - "Tests.Vpp.Perf.Hoststack.2N1L-100Ge2P1E810Cq-Eth-Ip4Tcphttp-Ldpreload-Nginx-1 15 0-Cps.0B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps"
- layout:
- title: "2n-clx-e810cq-0B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0"
- layout: "plot-hoststack"
-
-- type: "plot"
- title: "2n-clx-e810cq-64B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-e810cq-64B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps"
- data: "vpp-2n-clx-curr-iter-vsap"
- include:
- - "Tests.Vpp.Perf.Hoststack.2N1L-100Ge2P1E810Cq-Eth-Ip4Tcphttp-Ldpreload-Nginx-1 15 0-Cps.64B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps"
- layout:
- title: "2n-clx-e810cq-64B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0"
- layout: "plot-hoststack"
-
-- type: "plot"
- title: "2n-clx-e810cq-1024B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-e810cq-1024B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps"
- data: "vpp-2n-clx-curr-iter-vsap"
- include:
- - "Tests.Vpp.Perf.Hoststack.2N1L-100Ge2P1E810Cq-Eth-Ip4Tcphttp-Ldpreload-Nginx-1 15 0-Cps.1024B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps"
- layout:
- title: "2n-clx-e810cq-1024B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0"
- layout: "plot-hoststack"
-
-- type: "plot"
- title: "2n-clx-e810cq-2048B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-e810cq-2048B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps"
- data: "vpp-2n-clx-curr-iter-vsap"
- include:
- - "Tests.Vpp.Perf.Hoststack.2N1L-100Ge2P1E810Cq-Eth-Ip4Tcphttp-Ldpreload-Nginx-1 15 0-Cps.2048B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps"
- layout:
- title: "2n-clx-e810cq-2048B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0"
- layout: "plot-hoststack"
-
-- type: "plot"
- title: "2n-clx-e810cq-0B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-e810cq-0B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps"
- data: "vpp-2n-clx-curr-iter-vsap"
- include:
- - "Tests.Vpp.Perf.Hoststack.2N1L-100Ge2P1E810Cq-Eth-Ip4Tcphttp-Ldpreload-Nginx-1 15 0-Rps.0B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps"
- layout:
- title: "2n-clx-e810cq-0B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0"
- layout: "plot-hoststack"
-
-- type: "plot"
- title: "2n-clx-e810cq-64B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-e810cq-64B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps"
- data: "vpp-2n-clx-curr-iter-vsap"
- include:
- - "Tests.Vpp.Perf.Hoststack.2N1L-100Ge2P1E810Cq-Eth-Ip4Tcphttp-Ldpreload-Nginx-1 15 0-Rps.64B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps"
- layout:
- title: "2n-clx-e810cq-64B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0"
- layout: "plot-hoststack"
-
-- type: "plot"
- title: "2n-clx-e810cq-1024B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-e810cq-1024B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps"
- data: "vpp-2n-clx-curr-iter-vsap"
- include:
- - "Tests.Vpp.Perf.Hoststack.2N1L-100Ge2P1E810Cq-Eth-Ip4Tcphttp-Ldpreload-Nginx-1 15 0-Rps.1024B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps"
- layout:
- title: "2n-clx-e810cq-1024B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0"
- layout: "plot-hoststack"
-
-- type: "plot"
- title: "2n-clx-e810cq-2048B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-e810cq-2048B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps"
- data: "vpp-2n-clx-curr-iter-vsap"
- include:
- - "Tests.Vpp.Perf.Hoststack.2N1L-100Ge2P1E810Cq-Eth-Ip4Tcphttp-Ldpreload-Nginx-1 15 0-Rps.2048B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps"
- layout:
- title: "2n-clx-e810cq-2048B-2t1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0"
- layout: "plot-hoststack"
-
-# Hoststack tests 3n-skx
-
-- type: "plot"
- title: "Bandwidth: 3n-skx-xxv710-1460b-2t1c-eth-ip4tcp-ldpreload-iperf3"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-1460b-2t1c-eth-ip4tcp-ldpreload-iperf3-bps"
- data: "vpp-3n-skx-curr-iter-hoststack"
- include:
- - "Tests.Vpp.Perf.Hoststack.25Ge2P1Xxv710-Eth-Ip4Tcpbase-Ldpreload-Iperf3-Bps.1460B-2t1c-eth-ip4tcpbase-ldpreload-iperf3-bps"
- - "Tests.Vpp.Perf.Hoststack.25Ge2P1Xxv710-Eth-Ip4Tcpscale1Cl10S-Ldpreload-Iperf3-Bps.1460B-2t1c-eth-ip4tcpscale1cl10s-ldpreload-iperf3-bps"
- layout:
- title: "3n-skx-xxv710-1460b-2t1c-eth-ip4tcp-ldpreload-iperf3"
- layout: "plot-hoststack"
-
-- type: "plot"
- title: "Bandwidth: 3n-skx-xxv710-1460b-2t1c-eth-ip4udp-ldpreload-iperf3"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-1460b-2t1c-eth-ip4udp-ldpreload-iperf3-bps"
- data: "vpp-3n-skx-curr-iter-hoststack"
- include:
- - "Tests.Vpp.Perf.Hoststack.25Ge2P1Xxv710-Eth-Ip4Udpbase-Ldpreload-Iperf3-Bps.1460B-2t1c-eth-ip4udpbase-ldpreload-iperf3-bps"
- - "Tests.Vpp.Perf.Hoststack.25Ge2P1Xxv710-Eth-Ip4Udpscale1Cl10S-Ldpreload-Iperf3-Bps.1460B-2t1c-eth-ip4udpscale1cl10s-ldpreload-iperf3-bps"
- layout:
- title: "3n-skx-xxv710-1460b-2t1c-eth-ip4udp-ldpreload-iperf3"
- layout: "plot-hoststack"
-
-- type: "plot"
- title: "Bandwidth: 3n-skx-xxv710-1280b-2t1c-eth-ip4udpquic-vppecho"
- algorithm: "plot_perf_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-1280b-2t1c-eth-ip4udpquic-vppecho-bps"
- data: "vpp-3n-skx-curr-iter-hoststack"
- include:
- - "Tests.Vpp.Perf.Hoststack.25Ge2P1Xxv710-Eth-Ip4Udpquicbase-Vppecho-Bps.1280B-2t1c-eth-ip4udpquicbase-vppecho-bps"
- - "Tests.Vpp.Perf.Hoststack.25Ge2P1Xxv710-Eth-Ip4Udpquicscale1Cl10S-Vppecho-Bps.1280B-2t1c-eth-ip4udpquicscale1cl10s-vppecho-bps"
- - "Tests.Vpp.Perf.Hoststack.25Ge2P1Xxv710-Eth-Ip4Udpquicscale10Cl1S-Vppecho-Bps.1280B-2t1c-eth-ip4udpquicscale10cl1s-vppecho-bps"
- - "Tests.Vpp.Perf.Hoststack.25Ge2P1Xxv710-Eth-Ip4Udpquicscale10Cl10S-Vppecho-Bps.1280B-2t1c-eth-ip4udpquicscale10cl10s-vppecho-bps"
- layout:
- title: "3n-skx-xxv710-1280b-2t1c-eth-ip4udpquic-vppecho"
- layout: "plot-hoststack"
-
-################################################################################
-
-# Soak Test (PLRsearch), boxes - 2n-icx
-- 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-icx-1"
- data: "vpp-2n-icx-curr-soak"
- 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-icx
-- 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-icx-2"
- data: "vpp-2n-icx-curr-soak"
- 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-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: "vpp-2n-clx-curr-soak"
- 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: "vpp-2n-clx-curr-soak"
- 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: "vpp-2n-skx-curr-soak"
- 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: "vpp-2n-skx-curr-soak"
- 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-icx
-
-- type: "plot"
- title: "NFV Effective Blocked Time: 2n-icx-xxv710-imix-{core}-dot1qip4vxlan-l2bd-{Y}ch-1ach-{2XY}vh-{XY}vm-reconf"
- algorithm: "plot_nf_reconf_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-imix-{core}-dot1qip4vxlan-l2bd-reconf"
- data: "vpp-2n-icx-curr-nfv-reconf"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-1Ch-1Ach-2Vh-1Vm1T-Testpmd-Reconf.IMIX-{core}-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-{core}-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-{core}-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-{core}-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-{core}-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-{core}-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-skx
-
-- type: "plot"
- title: "NFV Effective Blocked Time: 2n-skx-xxv710-imix-{core}-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-{core}-dot1qip4vxlan-l2bd-reconf"
- data: "vpp-2n-skx-curr-nfv-reconf"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-1Ch-1Ach-2Vh-1Vm1T-Testpmd-Reconf.IMIX-{core}-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-{core}-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-{core}-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-{core}-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-{core}-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-{core}-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-{core}-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-{core}-dot1qip4vxlan-l2bd-reconf"
- data: "vpp-2n-clx-curr-nfv-reconf"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-1Ch-1Ach-2Vh-1Vm1T-Testpmd-Reconf.IMIX-{core}-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-{core}-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-{core}-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-{core}-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 - 2n-icx - VSC - MRR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-{test_type}"
- algorithm: "plot_nf_heatmap"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-icx-xxv710-imix-{core}-base-vsc-{test_type}"
- data: "vpp-2n-icx-curr-nfv-mrr"
- core: ["2t1c", "4t2c", "8t4c"]
- test-type: ["mrr", ]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-2Vh-1Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-2vh-1vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-4Vh-2Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-4vh-2vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-8Vh-4Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-8vh-4vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-12Vh-6Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-12vh-6vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-4Vh-2Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-4vh-2vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-8Vh-4Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-8vh-4vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-4Ch-8Vh-4Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-4ch-8vh-4vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Ch-12Vh-6Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-6ch-12vh-6vm1t-vppip4-mrr"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-test_type"
- layout: "plot-service-density"
-
-# Plots - NF Density - 2n-icx - VSC - NDRPDR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-{test_type}"
- algorithm: "plot_nf_heatmap"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-icx-xxv710-imix-{core}-base-vsc-{test_type}"
- data: "vpp-2n-icx-curr-nfv-ndrpdr"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-2Vh-1Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-2vh-1vm1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-4Vh-2Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-4vh-2vm1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-8Vh-4Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-8vh-4vm1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-12Vh-6Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-12vh-6vm1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-4Vh-2Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2ch-4vh-2vm1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-8Vh-4Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2ch-8vh-4vm1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-4Ch-8Vh-4Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-4ch-8vh-4vm1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Ch-12Vh-6Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-6ch-12vh-6vm1t-vppip4-ndrpdr"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-test_type"
- layout: "plot-service-density"
-
-# Plots - NF Density - 2n-icx - VSC vxlan - MRR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-{test_type}"
- algorithm: "plot_nf_heatmap"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-icx-xxv710-imix-{core}-base-vsc-vxlan-{test_type}"
- data: "vpp-2n-icx-curr-nfv-mrr"
- core: ["2t1c", "4t2c", "8t4c"]
- test-type: ["mrr", ]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-1Ch-2Vh-1Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-2Ch-4Vh-2Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-4Ch-8Vh-4Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-6Ch-12Vh-6Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd-mrr"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-test_type"
- layout: "plot-service-density"
-
-# Plots - NF Density - 2n-icx - VSC vxlan - NDRPDR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-{test_type}"
- algorithm: "plot_nf_heatmap"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-icx-xxv710-imix-{core}-base-vsc-vxlan-{test_type}"
- data: "vpp-2n-icx-curr-nfv-ndrpdr"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-1Ch-2Vh-1Vm1T-Testpmd-ndrpdr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-2Ch-4Vh-2Vm1T-Testpmd-ndrpdr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-4Ch-8Vh-4Vm1T-Testpmd-ndrpdr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-6Ch-12Vh-6Vm1T-Testpmd-ndrpdr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd-ndrpdr"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-test_type"
- layout: "plot-service-density"
-
-###############################################################################
-
-# Plots - NF Density - 2n-icx - CSC - MRR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-{test_type}"
- algorithm: "plot_nf_heatmap"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-icx-xxv710-imix-{core}-base-csc-{test_type}"
- data: "vpp-2n-icx-curr-nfv-mrr"
- core: ["2t1c", "4t2c", "8t4c"]
- test-type: ["mrr", ]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-2Mif-1Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-2mif-1dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-4Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-4mif-2dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-8mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-12Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-12mif-6dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-4Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-4mif-2dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-8mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-4Ch-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-4ch-8mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Ch-12Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-6ch-12mif-6dcr1t-vppip4-mrr"
- x-axis: "X = CNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-test_type"
- layout: "plot-service-density"
-
-# Plots - NF Density - 2n-icx - CSC - NDRPDR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-{test_type}"
- algorithm: "plot_nf_heatmap"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-icx-xxv710-imix-{core}-base-csc-{test_type}"
- data: "vpp-2n-icx-curr-nfv-ndrpdr"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-2Mif-1Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-2mif-1dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-4Mif-2Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-4mif-2dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-8Mif-4Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-8mif-4dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-12Mif-6Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-12mif-6dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-4Mif-2Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2ch-4mif-2dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-8Mif-4Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2ch-8mif-4dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-4Ch-8Mif-4Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-4ch-8mif-4dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Ch-12Mif-6Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-6ch-12mif-6dcr1t-vppip4-ndrpdr"
- x-axis: "X = CNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-test_type"
- layout: "plot-service-density"
-
-###############################################################################
-
-# Plots - NF Density - 2n-icx - CSP - MRR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-{test_type}"
- algorithm: "plot_nf_heatmap"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-icx-xxv710-imix-{core}-base-csp-{test_type}"
- data: "vpp-2n-icx-curr-nfv-mrr"
- core: ["2t1c", "4t2c", "8t4c"]
- test-type: ["mrr", ]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-1Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-1dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-2dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-6dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-4Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2pl-4mif-2dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-4Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2pl-4mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2pl-8mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Pl-12Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-6pl-12mif-6dcr1t-vppip4-mrr"
- x-axis: "X = CNFs per Service Pipeline"
- y-axis: "Y = Number of Service Pipelines"
- z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-test_type"
- layout: "plot-service-density"
-
-# Plots - NF Density - 2n-icx - CSP - NDRPDR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-{test_type}"
- algorithm: "plot_nf_heatmap"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-icx-xxv710-imix-{core}-base-csp-{test_type}"
- data: "vpp-2n-icx-curr-nfv-ndrpdr"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-1Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-1dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-2Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-2dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-4Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-4dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-6Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-6dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-4Mif-2Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2pl-4mif-2dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-4Mif-4Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2pl-4mif-4dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-8Mif-4Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2pl-8mif-4dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Pl-12Mif-6Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-6pl-12mif-6dcr1t-vppip4-ndrpdr"
- x-axis: "X = CNFs per Service Pipeline"
- y-axis: "Y = Number of Service Pipelines"
- z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-test_type"
- layout: "plot-service-density"
-
-###############################################################################
-
-# Plots - NF Density - 2n-skx - VSC - MRR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-{test_type}"
- algorithm: "plot_nf_heatmap"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-{core}-base-vsc-{test_type}"
- data: "vpp-2n-skx-curr-nfv-mrr"
- core: ["2t1c", "4t2c", "8t4c"]
- test-type: ["mrr", ]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-2Vh-1Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-2vh-1vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-4Vh-2Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-4vh-2vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-8Vh-4Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-8vh-4vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-12Vh-6Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-12vh-6vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-4Vh-2Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-4vh-2vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-8Vh-4Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-8vh-4vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-4Ch-8Vh-4Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-4ch-8vh-4vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Ch-12Vh-6Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-6ch-12vh-6vm1t-vppip4-mrr"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-test_type"
- layout: "plot-service-density"
-
-# Plots - NF Density - 2n-skx - VSC - NDRPDR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-{test_type}"
- algorithm: "plot_nf_heatmap"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-{core}-base-vsc-{test_type}"
- data: "vpp-2n-skx-curr-nfv-ndrpdr"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-2Vh-1Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-2vh-1vm1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-4Vh-2Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-4vh-2vm1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-8Vh-4Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-8vh-4vm1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-12Vh-6Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-12vh-6vm1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-4Vh-2Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2ch-4vh-2vm1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-8Vh-4Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2ch-8vh-4vm1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-4Ch-8Vh-4Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-4ch-8vh-4vm1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Ch-12Vh-6Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-6ch-12vh-6vm1t-vppip4-ndrpdr"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-test_type"
- layout: "plot-service-density"
-
-# Plots - NF Density - 2n-skx - VSC vxlan - MRR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-{test_type}"
- algorithm: "plot_nf_heatmap"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-{core}-base-vsc-vxlan-{test_type}"
- data: "vpp-2n-skx-curr-nfv-mrr"
- core: ["2t1c", "4t2c", "8t4c"]
- test-type: ["mrr", ]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-1Ch-2Vh-1Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-2Ch-4Vh-2Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-4Ch-8Vh-4Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-6Ch-12Vh-6Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd-mrr"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-test_type"
- layout: "plot-service-density"
-
-# Plots - NF Density - 2n-skx - VSC vxlan - NDRPDR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-{test_type}"
- algorithm: "plot_nf_heatmap"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-{core}-base-vsc-vxlan-{test_type}"
- data: "vpp-2n-skx-curr-nfv-ndrpdr"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-1Ch-2Vh-1Vm1T-Testpmd-ndrpdr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-2Ch-4Vh-2Vm1T-Testpmd-ndrpdr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-4Ch-8Vh-4Vm1T-Testpmd-ndrpdr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-6Ch-12Vh-6Vm1T-Testpmd-ndrpdr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd-ndrpdr"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-test_type"
- layout: "plot-service-density"
-
-###############################################################################
-
-# Plots - NF Density - 2n-skx - CSC - MRR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-{test_type}"
- algorithm: "plot_nf_heatmap"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-{core}-base-csc-{test_type}"
- data: "vpp-2n-skx-curr-nfv-mrr"
- core: ["2t1c", "4t2c", "8t4c"]
- test-type: ["mrr", ]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-2Mif-1Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-2mif-1dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-4Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-4mif-2dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-8mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-12Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-12mif-6dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-4Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-4mif-2dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-8mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-4Ch-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-4ch-8mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Ch-12Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-6ch-12mif-6dcr1t-vppip4-mrr"
- x-axis: "X = CNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-test_type"
- layout: "plot-service-density"
-
-# Plots - NF Density - 2n-skx - CSC - NDRPDR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-{test_type}"
- algorithm: "plot_nf_heatmap"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-{core}-base-csc-{test_type}"
- data: "vpp-2n-skx-curr-nfv-ndrpdr"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-2Mif-1Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-2mif-1dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-4Mif-2Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-4mif-2dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-8Mif-4Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-8mif-4dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-12Mif-6Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-12mif-6dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-4Mif-2Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2ch-4mif-2dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-8Mif-4Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2ch-8mif-4dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-4Ch-8Mif-4Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-4ch-8mif-4dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Ch-12Mif-6Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-6ch-12mif-6dcr1t-vppip4-ndrpdr"
- x-axis: "X = CNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-test_type"
- layout: "plot-service-density"
-
-###############################################################################
-
-# Plots - NF Density - 2n-skx - CSP - MRR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-{test_type}"
- algorithm: "plot_nf_heatmap"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-{core}-base-csp-{test_type}"
- data: "vpp-2n-skx-curr-nfv-mrr"
- core: ["2t1c", "4t2c", "8t4c"]
- test-type: ["mrr", ]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-1Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-1dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-2dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-6dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-4Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2pl-4mif-2dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-4Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2pl-4mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2pl-8mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Pl-12Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-6pl-12mif-6dcr1t-vppip4-mrr"
- x-axis: "X = CNFs per Service Pipeline"
- y-axis: "Y = Number of Service Pipelines"
- z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-test_type"
- layout: "plot-service-density"
-
-# Plots - NF Density - 2n-skx - CSP - NDRPDR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-{test_type}"
- algorithm: "plot_nf_heatmap"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-xxv710-imix-{core}-base-csp-{test_type}"
- data: "vpp-2n-skx-curr-nfv-ndrpdr"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-1Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-1dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-2Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-2dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-4Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-4dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-6Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-6dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-4Mif-2Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2pl-4mif-2dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-4Mif-4Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2pl-4mif-4dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-8Mif-4Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2pl-8mif-4dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Pl-12Mif-6Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-6pl-12mif-6dcr1t-vppip4-ndrpdr"
- x-axis: "X = CNFs per Service Pipeline"
- y-axis: "Y = Number of Service Pipelines"
- z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-test_type"
- layout: "plot-service-density"
-
-###############################################################################
-
-# Plots - NF Density - 2n-clx - VSC - MRR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-{test_type}"
- algorithm: "plot_nf_heatmap"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-{core}-base-vsc-{test_type}"
- data: "vpp-2n-clx-curr-nfv-mrr"
- core: ["2t1c", "4t2c", "8t4c"]
- test-type: ["mrr", ]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-2Vh-1Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-2vh-1vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-4Vh-2Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-4vh-2vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-8Vh-4Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-8vh-4vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-12Vh-6Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-12vh-6vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-4Vh-2Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-4vh-2vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-8Vh-4Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-8vh-4vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-4Ch-8Vh-4Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-4ch-8vh-4vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Ch-12Vh-6Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-6ch-12vh-6vm1t-vppip4-mrr"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-test_type"
- layout: "plot-service-density"
-
-# Plots - NF Density - 2n-clx - VSC - NDRPDR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-{test_type}"
- algorithm: "plot_nf_heatmap"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-{core}-base-vsc-{test_type}"
- data: "vpp-2n-clx-curr-nfv-ndrpdr"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-2Vh-1Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-2vh-1vm1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-4Vh-2Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-4vh-2vm1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-8Vh-4Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-8vh-4vm1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-12Vh-6Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-12vh-6vm1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-4Vh-2Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2ch-4vh-2vm1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-8Vh-4Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2ch-8vh-4vm1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-4Ch-8Vh-4Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-4ch-8vh-4vm1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Ch-12Vh-6Vm1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-6ch-12vh-6vm1t-vppip4-ndrpdr"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-test_type"
- layout: "plot-service-density"
-
-# Plots - NF Density - 2n-clx - VSC vxlan - MRR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-{test_type}"
- algorithm: "plot_nf_heatmap"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-{core}-base-vsc-vxlan-{test_type}"
- data: "vpp-2n-clx-curr-nfv-mrr"
- core: ["2t1c", "4t2c", "8t4c"]
- test-type: ["mrr", ]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-1Ch-2Vh-1Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-2Ch-4Vh-2Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-4Ch-8Vh-4Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-6Ch-12Vh-6Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd-mrr"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-test_type"
- layout: "plot-service-density"
-
-# Plots - NF Density - 2n-clx - VSC vxlan - NDRPDR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-{test_type}"
- algorithm: "plot_nf_heatmap"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-{core}-base-vsc-vxlan-{test_type}"
- data: "vpp-2n-clx-curr-nfv-ndrpdr"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-1Ch-2Vh-1Vm1T-Testpmd-ndrpdr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-2Ch-4Vh-2Vm1T-Testpmd-ndrpdr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-4Ch-8Vh-4Vm1T-Testpmd-ndrpdr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-6Ch-12Vh-6Vm1T-Testpmd-ndrpdr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd-ndrpdr"
- x-axis: "X = VNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vxlan-vppip4-test_type"
- layout: "plot-service-density"
-
-###############################################################################
-
-# Plots - NF Density - 2n-clx - CSC - MRR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-{test_type}"
- algorithm: "plot_nf_heatmap"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-{core}-base-csc-{test_type}"
- data: "vpp-2n-clx-curr-nfv-mrr"
- core: ["2t1c", "4t2c", "8t4c"]
- test-type: ["mrr", ]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-2Mif-1Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-2mif-1dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-4Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-4mif-2dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-8mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-12Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-12mif-6dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-4Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-4mif-2dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-8mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-4Ch-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-4ch-8mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Ch-12Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-6ch-12mif-6dcr1t-vppip4-mrr"
- x-axis: "X = CNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-test_type"
- layout: "plot-service-density"
-
-# Plots - NF Density - 2n-clx - CSC - NDRPDR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-{test_type}"
- algorithm: "plot_nf_heatmap"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-{core}-base-csc-{test_type}"
- data: "vpp-2n-clx-curr-nfv-ndrpdr"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-4Mif-2Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-4mif-2dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-8Mif-4Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-8mif-4dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-12Mif-6Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1ch-12mif-6dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-4Mif-2Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2ch-4mif-2dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-8Mif-4Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2ch-8mif-4dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-4Ch-8Mif-4Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-4ch-8mif-4dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Ch-12Mif-6Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-6ch-12mif-6dcr1t-vppip4-ndrpdr"
- x-axis: "X = CNFs per Service Chain"
- y-axis: "Y = Number of Service Chains"
- z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-test_type"
- layout: "plot-service-density"
-
-###############################################################################
-
-# Plots - NF Density - 2n-clx - CSP - MRR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-{test_type}"
- algorithm: "plot_nf_heatmap"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-{core}-base-csp-{test_type}"
- data: "vpp-2n-clx-curr-nfv-mrr"
- core: ["2t1c", "4t2c", "8t4c"]
- test-type: ["mrr", ]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-1Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-1dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-2dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-6dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-4Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2pl-4mif-2dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-4Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2pl-4mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2pl-8mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Pl-12Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-6pl-12mif-6dcr1t-vppip4-mrr"
- x-axis: "X = CNFs per Service Pipeline"
- y-axis: "Y = Number of Service Pipelines"
- z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-test_type"
- layout: "plot-service-density"
-
-# Plots - NF Density - 2n-clx - CSP - NDRPDR IMIX
-- type: "plot"
- title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-{test_type}"
- algorithm: "plot_nf_heatmap"
- output-file: "{DIR[STATIC,VPP]}/l2bd-2n-clx-xxv710-imix-{core}-base-csp-{test_type}"
- data: "vpp-2n-clx-curr-nfv-ndrpdr"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-1Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-1dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-2Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-2dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-4Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-4dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-6Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-6dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-4Mif-2Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2pl-4mif-2dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-4Mif-4Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2pl-4mif-4dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-8Mif-4Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-2pl-8mif-4dcr1t-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Pl-12Mif-6Dcr1T-Vppip4-ndrpdr.IMIX-{core}-avf-eth-l2bd-6pl-12mif-6dcr1t-vppip4-ndrpdr"
- x-axis: "X = CNFs per Service Pipeline"
- y-axis: "Y = Number of Service Pipelines"
- z-axis: "IMIX Packet Throughput (mean {test_type}) [Mpps]"
- layout:
- title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-test_type"
- layout: "plot-service-density"
-
-################################################################################
-
-# Packet Throughput
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-{core}-memif-base-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-{core}-memif-base-avf-{test_type}"
- data: "vpp-2n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-{core}-memif-base-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-{core}-memif-base-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-{core}-memif-base-dpdk-{test_type}"
- data: "vpp-2n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-{core}-memif-base-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-x710-64b-{core}-ip4routing-base-scale-[avf,dpdk,af_xdp]-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-x710-64b-{core}-ip4routing-base-scale-[avf,dpdk,af_xdp]-{test_type}"
- data: "vpp-2n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-{core}-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-{core}-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-{core}-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-{core}-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-af-xdp-Ethip4-Ip4Base-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4base-ndrpdr"
- layout:
- title: "2n-skx-x710-64b-{core}-ip4routing-base-scale-[avf,dpdk,af_xdp]-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-{core}-ip4routing-base-scale-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-{core}-ip4routing-base-scale-avf-{test_type}"
- data: "vpp-2n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-{core}-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-{core}-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-{core}-avf-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-{core}-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-{core}-avf-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-{core}-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-{core}-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-{core}-ip4routing-base-scale-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-{core}-ip4routing-base-scale-af_xdp-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-{core}-ip4routing-base-scale-af_xdp-{test_type}"
- data: "vpp-2n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Base-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale20K-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale200K-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale2M-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-{core}-ip4routing-base-scale-af_xdp-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-{core}-ip4routing-base-scale-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-{core}-ip4routing-base-scale-dpdk-{test_type}"
- data: "vpp-2n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Dot1Q-Ip4Base-Ndrpdr.64B-{core}-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-{core}-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-{core}-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-{core}-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-{core}-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-{core}-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-{core}-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-{core}-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-{core}-ip4routing-base-scale-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-{core}-features-ip4routing-base-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-{core}-features-ip4routing-base-avf-{test_type}"
- data: "vpp-2n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-{core}-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-{core}-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-{core}-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-{core}-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-{core}-avf-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-{core}-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-{core}-features-ip4routing-base-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-{core}-nat44det-ip4routing-stl-bidir-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-{core}-nat44det-ip4routing-stl-bidir-avf-{test_type}"
- data: "vpp-2n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.64b-{core}-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.64b-{core}-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.64b-{core}-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.64b-{core}-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.64b-{core}-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-{core}-nat44det-ip4routing-stl-bidir-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-stl-unidir-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-stl-unidir-avf-{test_type}"
- data: "vpp-2n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-stl-unidir-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-cps-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-cps-avf-{test_type}"
- data: "vpp-2n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-cps-avf-{test_type}"
- layout: "plot-cps"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-cps-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-cps-avf-{test_type}"
- data: "vpp-2n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-cps-avf-{test_type}"
- layout: "plot-cps"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-100b-{core}-nat44ed-ip4routing-tcp-tput-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-100b-{core}-nat44ed-ip4routing-tcp-tput-avf-{test_type}"
- data: "vpp-2n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Ip4Base-H1024-P63-S64512-Tput-Ndrpdr.100B-{core}-avf-ethip4tcp-ip4base-h1024-p63-s64512-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Ip4Base-H16384-P63-S1032192-Tput-Ndrpdr.100B-{core}-avf-ethip4tcp-ip4base-h16384-p63-s1032192-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Ip4Base-H65536-P63-S4128768-Tput-Ndrpdr.100B-{core}-avf-ethip4tcp-ip4base-h65536-p63-s4128768-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H1024-P63-S64512-Tput-Ndrpdr.100B-{core}-avf-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H16384-P63-S1032192-Tput-Ndrpdr.100B-{core}-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H65536-P63-S4128768-Tput-Ndrpdr.100B-{core}-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr"
- layout:
- title: "2n-skx-xxv710-100b-{core}-nat44ed-ip4routing-tcp-tput-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-100b-{core}-nat44ed-ip4routing-udp-tput-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-100b-{core}-nat44ed-ip4routing-udp-tput-avf-{test_type}"
- data: "vpp-2n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H1024-P63-S64512-Tput-Ndrpdr.100B-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H16384-P63-S1032192-Tput-Ndrpdr.100B-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H65536-P63-S4128768-Tput-Ndrpdr.100B-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr"
- layout:
- title: "2n-skx-xxv710-100b-{core}-nat44ed-ip4routing-udp-tput-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-{core}-ethip4--ethip4udpgeneve-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-{core}-ethip4--ethip4udpgeneve-avf-{test_type}"
- data: "vpp-2n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-1Tun-Ip4Base-Ndrpdr.64B-{core}-avf-ethip4--ethip4udpgeneve-1tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-4Tun-Ip4Base-Ndrpdr.64B-{core}-avf-ethip4--ethip4udpgeneve-4tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-16Tun-Ip4Base-Ndrpdr.64B-{core}-avf-ethip4--ethip4udpgeneve-16tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-64Tun-Ip4Base-Ndrpdr.64B-{core}-avf-ethip4--ethip4udpgeneve-64tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-256Tun-Ip4Base-Ndrpdr.64B-{core}-avf-ethip4--ethip4udpgeneve-256tun-ip4base-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-{core}-ethip4--ethip4udpgeneve-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-x710-64b-{core}-ip4routing-base-scale-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-x710-64b-{core}-ip4routing-base-scale-avf-{test_type}"
- data: "vpp-3n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-{core}-avf-ethip4-ip4base-ndrpdr"
- layout:
- title: "3n-skx-x710-64b-{core}-ip4routing-base-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-{core}-ip4routing-base-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-{core}-ip4routing-base-{test_type}"
- data: "vpp-3n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-{core}-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-{core}-ethip4-ip4base-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-{core}-ip4routing-base-{test_type}"
- layout: "plot-throughput"
-
-# - type: "plot"
-# title: "Throughput: 3n-skx-xxv710-64b-{core}-features-ip4routing-base-avf-{test_type}"
-# algorithm: "plot_ndrpdr_box_name"
-# output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-{core}-features-ip4routing-base-avf-{test_type}"
-# data: "vpp-3n-skx-curr-iter"
-# core: ["2t1c", ]
-# include:
-# - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-{core}-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
-# - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-{core}-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
-# - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-{core}-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
-# - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-{core}-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
-# layout:
-# title: "3n-skx-xxv710-64b-{core}-features-ip4routing-base-avf-{test_type}"
-# layout: "plot-throughput"
-
-# - type: "plot"
-# title: "Throughput: 3n-skx-xxv710-64b-{core}-features-ip4routing-base-dpdk-{test_type}"
-# algorithm: "plot_ndrpdr_box_name"
-# output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-{core}-features-ip4routing-base-dpdk-{test_type}"
-# data: "vpp-3n-skx-curr-iter"
-# core: ["2t1c", ]
-# include:
-# - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-{core}-ethip4-ip4base-ndrpdr"
-# - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-{core}-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
-# - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-{core}-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
-# - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-{core}-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
-# - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-{core}-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
-# layout:
-# title: "3n-skx-xxv710-64b-{core}-features-ip4routing-base-dpdk-{test_type}"
-# layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-64b-{core}-features-ip4routing-base-ixgbe-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-{core}-features-ip4routing-base-ixgbe-{test_type}"
- data: "vpp-3n-tsh-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Base-Ndrpdr.64B-{core}-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-{core}-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-{core}-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-{core}-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-{core}-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-{core}-features-ip4routing-base-ixgbe-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-dnv-x553-64b-{core}-ip4routing-base-scale-ixgbe-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-64b-{core}-ip4routing-base-scale-[ixgbe,af_xdp]-{test_type}"
- data: "vpp-2n-dnv-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Dot1Q-Ip4Base-Ndrpdr.64B-{core}-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-{core}-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale20K-rnd-Ndrpdr.64B-{core}-ethip4-ip4scale20k-rnd-ndrpdr"
- layout:
- title: "2n-dnv-x553-64b-{core}-ip4routing-base-scale-ixgbe-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-64b-{core}-ip4routing-base-scale-ixgbe-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-{core}-ip4routing-base-scale-ixgbe-{test_type}"
- data: "vpp-3n-dnv-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Dot1Q-Ip4Base-Ndrpdr.64B-{core}-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Base-Ndrpdr.64B-{core}-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale20K-Ndrpdr.64B-{core}-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale200K-Ndrpdr.64B-{core}-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale2M-Ndrpdr.64B-{core}-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale20K-rnd-Ndrpdr.64B-{core}-ethip4-ip4scale20k-rnd-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-{core}-ip4routing-base-scale-ixgbe-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-aws-nitro50g-64b-{core}-ip4routing-base-scale-ena-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-aws-nitro50g-64b-{core}-ip4routing-base-scale-{test_type}"
- data: "vpp-2n-aws-curr-iter"
- core: ["2t1c", 4t2c]
- include:
- - "Tests.Vpp.Perf.Ip4.2n1l-50ge1p1ENA-ethip4-ip4base-ndrpdr.64B-{core}-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2n1l-50ge1p1ENA-ethip4-ip4scale20k-ndrpdr.64B-{core}-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2n1l-50ge1p1ENA-ethip4-ip4scale20k-rnd-ndrpdr.64B-{core}-ethip4-ip4scale20k-rnd-ndrpdr"
- layout:
- title: "2n-aws-nitro50g-64b-{core}-ip4routing-base-scale-ena-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-aws-nitro50g-1518b-{core}-ip4routing-base-scale-ena-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-aws-nitro50g-1518b-{core}-ip4routing-base-scale-{test_type}"
- data: "vpp-2n-aws-curr-iter"
- core: ["2t1c", 4t2c]
- include:
- - "Tests.Vpp.Perf.Ip4.2n1l-50ge1p1ENA-ethip4-ip4base-ndrpdr.1518b-{core}-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2n1l-50ge1p1ENA-ethip4-ip4scale20k-ndrpdr.1518b-{core}-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2n1l-50ge1p1ENA-ethip4-ip4scale20k-rnd-ndrpdr.1518b-{core}-ethip4-ip4scale20k-rnd-ndrpdr"
- layout:
- title: "2n-aws-nitro50g-1518b-{core}-ip4routing-base-scale-ena-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-aws-nitro50g-78b-{core}-ip6routing-base-scale-ena-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-aws-nitro50g-78b-{core}-ip6routing-base-scale-{test_type}"
- data: "vpp-2n-aws-curr-iter"
- core: ["2t1c", 4t2c]
- include:
- - "Tests.Vpp.Perf.Ip6.2n1l-50ge1p1ENA-ethip6-ip6base-ndrpdr.78b-{core}-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2n1l-50ge1p1ENA-ethip6-ip6scale20k-ndrpdr.78b-{core}-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2n1l-50ge1p1ENA-ethip6-ip6scale20k-rnd-ndrpdr.78b-{core}-ethip6-ip6scale20k-rnd-ndrpdr"
- layout:
- title: "2n-aws-nitro50g-78b-{core}-ip6routing-base-scale-ena-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-aws-nitro50g-1518b-{core}-ip6routing-base-scale-ena-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-aws-nitro50g-1518b-{core}-ip6routing-base-scale-{test_type}"
- data: "vpp-2n-aws-curr-iter"
- core: ["2t1c", 4t2c]
- include:
- - "Tests.Vpp.Perf.Ip6.2n1l-50ge1p1ENA-ethip6-ip6base-ndrpdr.1518B-{core}-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2n1l-50ge1p1ENA-ethip6-ip6scale20k-ndrpdr.1518B-{core}-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2n1l-50ge1p1ENA-ethip6-ip6scale20k-rnd-ndrpdr.1518B-{core}-ethip6-ip6scale20k-rnd-ndrpdr"
- layout:
- title: "2n-aws-nitro50g-1518b-{core}-ip6routing-base-scale-ena-{test_type}"
- layout: "plot-throughput"
-
-# - type: "plot"
-# title: "Throughput: 3n-aws-nitro50g-64b-{core}-ip4routing-base-scale-ena-{test_type}"
-# algorithm: "plot_ndrpdr_box_name"
-# output-file: "{DIR[STATIC,VPP]}/3n-aws-nitro50g-64b-{core}-ip4routing-base-scale-{test_type}"
-# data: "vpp-3n-aws-curr-iter"
-# core: ["2t1c", 4t2c]
-# include:
-# - "Tests.Vpp.Perf.Ip4.50ge1p1ENA-ethip4-ip4base-ndrpdr.64B-{core}-ethip4-ip4base-ndrpdr"
-# - "Tests.Vpp.Perf.Ip4.50ge1p1ENA-ethip4-ip4scale20k-ndrpdr.64B-{core}-ethip4-ip4scale20k-ndrpdr"
-# - "Tests.Vpp.Perf.Ip4.50ge1p1ENA-ethip4-ip4scale20k-rnd-ndrpdr.64B-{core}-ethip4-ip4scale20k-rnd-ndrpdr"
-# layout:
-# title: "3n-aws-nitro50g-64b-{core}-ip4routing-base-scale-ena-{test_type}"
-# layout: "plot-throughput"
-
-# - type: "plot"
-# title: "Throughput: 3n-aws-nitro50g-1518b-{core}-ip4routing-base-scale-ena-{test_type}"
-# algorithm: "plot_ndrpdr_box_name"
-# output-file: "{DIR[STATIC,VPP]}/3n-aws-nitro50g-1518b-{core}-ip4routing-base-scale-{test_type}"
-# data: "vpp-3n-aws-curr-iter"
-# core: ["2t1c", 4t2c]
-# include:
-# - "Tests.Vpp.Perf.Ip4.50ge1p1ENA-ethip4-ip4base-ndrpdr.1518b-{core}-ethip4-ip4base-ndrpdr"
-# - "Tests.Vpp.Perf.Ip4.50ge1p1ENA-ethip4-ip4scale20k-ndrpdr.1518b-{core}-ethip4-ip4scale20k-ndrpdr"
-# - "Tests.Vpp.Perf.Ip4.50ge1p1ENA-ethip4-ip4scale20k-rnd-ndrpdr.1518b-{core}-ethip4-ip4scale20k-rnd-ndrpdr"
-# layout:
-# title: "3n-aws-nitro50g-1518b-{core}-ip4routing-base-scale-ena-{test_type}"
-# layout: "plot-throughput"
-
-# - type: "plot"
-# title: "Throughput: 3n-aws-nitro50g-1518b-{core}-ipsec-ip4routing-scale-ena-{test_type}"
-# algorithm: "plot_ndrpdr_box_name"
-# output-file: "{DIR[STATIC,VPP]}/3n-aws-nitro50g-1518b-{core}-ipsec-ip4routing-scale-{test_type}"
-# data: "vpp-3n-aws-curr-iter"
-# core: ["2t1c", 4t2c]
-# include:
-# - "Tests.Vpp.Perf.Crypto.50ge1p1ENA-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-ndrpdr.1518B-{core}-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-ndrpdr"
-# layout:
-# title: "3n-aws-nitro50g-1518b-{core}-ipsec-ip4routing-scale-ena-{test_type}"
-# layout: "plot-throughput"
-
-# - type: "plot"
-# title: "Throughput: 3n-aws-nitro50g-imix-{core}-ipsec-ip4routing-scale-ena-{test_type}"
-# algorithm: "plot_ndrpdr_box_name"
-# output-file: "{DIR[STATIC,VPP]}/3n-aws-nitro50g-imix-{core}-ipsec-ip4routing-scale-{test_type}"
-# data: "vpp-3n-aws-curr-iter"
-# core: ["2t1c", 4t2c]
-# include:
-# - "Tests.Vpp.Perf.Crypto.50ge1p1ENA-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-ndrpdr.imix-{core}-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-ndrpdr"
-# layout:
-# title: "3n-aws-nitro50g-imix-{core}-ipsec-ip4routing-scale-ena-{test_type}"
-# layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-{core}-ip4tunnel-base-[avf,dpdk]-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-{core}-ip4tunnel-base-{test_type}"
- data: "vpp-3n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-{core}-avf-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-{core}-avf-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Gtpusw-Ip4Base-Ndrpdr.64B-{core}-avf-ethip4gtpusw-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-{core}-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-{core}-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Gtpusw-Ip4Base-Ndrpdr.64B-{core}-ethip4gtpusw-ip4base-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-{core}-ip4tunnel-base-[avf,dpdk]-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-64b-{core}-ip4tunnel-base-ixgbe-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-{core}-ip4tunnel-base-ixgbe-{test_type}"
- data: "vpp-3n-tsh-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-{core}-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-{core}-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-{core}-ip4tunnel-base-ixgbe-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-64b-{core}-ip4tunnel-base-ixgbe-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-{core}-ip4tunnel-base-ixgbe-{test_type}"
- data: "vpp-3n-dnv-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-{core}-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-{core}-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-{core}-ip4tunnel-base-ixgbe-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-x710-78b-{core}-ip6routing-base-scale-[avf,dpdk,af_xdp]-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-x710-78b-{core}-ip6routing-base-scale-[avf,dpdk,af_xdp]-{test_type}"
- data: "vpp-2n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-{core}-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-{core}-avf-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-{core}-avf-ethip6-ip6scale2m-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-{core}-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-af-xdp-Ethip6-Ip6Base-Ndrpdr.78B-{core}-af-xdp-ethip6-ip6base-ndrpdr"
- layout:
- title: "2n-skx-x710-78b-{core}-ip6routing-base-scale-[avf,dpdk,af_xdp]-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-78b-{core}-ip6routing-base-scale-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-78b-{core}-ip6routing-base-scale-dpdk-{test_type}"
- data: "vpp-2n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Dot1Q-Ip6Base-Ndrpdr.78B-{core}-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-{core}-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-{core}-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-rnd-Ndrpdr.78B-{core}-ethip6-ip6scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-{core}-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-rnd-Ndrpdr.78B-{core}-ethip6-ip6scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-{core}-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-{core}-ethip6-ip6scale2m-rnd-ndrpdr"
- layout:
- title: "2n-skx-xxv710-78b-{core}-ip6routing-base-scale-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-78b-{core}-ip6routing-base-scale-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-78b-{core}-ip6routing-base-scale-avf-{test_type}"
- data: "vpp-2n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-{core}-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-{core}-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-rnd-Ndrpdr.78B-{core}-avf-ethip6-ip6scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-{core}-avf-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-rnd-Ndrpdr.78B-{core}-avf-ethip6-ip6scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-{core}-avf-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-{core}-avf-ethip6-ip6scale2m-rnd-ndrpdr"
- layout:
- title: "2n-skx-xxv710-78b-{core}-ip6routing-base-scale-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-78b-{core}-ip6routing-base-scale-af_xdp-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-78b-{core}-ip6routing-base-scale-af_xdp-{test_type}"
- data: "vpp-2n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Base-Ndrpdr.78B-{core}-af-xdp-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale20K-Ndrpdr.78B-{core}-af-xdp-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale20K-rnd-Ndrpdr.78B-{core}-af-xdp-ethip6-ip6scale20k-rnd-ndrpdr"
- layout:
- title: "2n-skx-xxv710-78b-{core}-ip6routing-base-scale-af_xdp-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-x710-78b-{core}-ip6routing-base-scale-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-x710-78b-{core}-ip6routing-base-scale-avf-{test_type}"
- data: "vpp-3n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Dot1Q-Ip6Base-Ndrpdr.78B-{core}-avf-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-{core}-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-{core}-avf-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "3n-skx-x710-78b-{core}-ip6routing-base-scale-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-78b-{core}-ip6routing-base-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-78b-{core}-ip6routing-base-{test_type}"
- data: "vpp-3n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-{core}-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-{core}-avf-ethip6-ip6base-ndrpdr"
- layout:
- title: "3n-skx-xxv710-78b-{core}-ip6routing-base-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-78b-{core}-ip6routing-base-ixgbe-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-78b-{core}-ip6routing-base-ixgbe-{test_type}"
- data: "vpp-3n-tsh-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Base-Ndrpdr.78B-{core}-ethip6-ip6base-ndrpdr"
- layout:
- title: "3n-tsh-x520-78b-{core}-ip6routing-base-ixgbe-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-dnv-x553-78b-{core}-ip6routing-base-scale-[ixgbe,af_xdp]-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-78b-{core}-ip6routing-base-scale-[ixgbe,af_xdp]-{test_type}"
- data: "vpp-2n-dnv-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Base-Ndrpdr.78B-{core}-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale20K-Ndrpdr.78B-{core}-ethip6-ip6scale20k-ndrpdr"
- layout:
- title: "2n-dnv-x553-78b-{core}-ip6routing-base-scale-ixgbe-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-78b-{core}-ip6routing-base-scale-ixgbe-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-78b-{core}-ip6routing-base-scale-ixgbe-{test_type}"
- data: "vpp-3n-dnv-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Dot1Q-Ip6Base-Ndrpdr.78B-{core}-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Base-Ndrpdr.78B-{core}-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale20K-Ndrpdr.78B-{core}-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale200K-Ndrpdr.78B-{core}-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale2M-Ndrpdr.78B-{core}-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "3n-dnv-x553-78b-{core}-ip6routing-base-scale-ixgbe-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-imix-{core}-ipsec-ip4routing-base-scale-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-imix-{core}-ipsec-ip4routing-base-scale-avf-{test_type}"
- data: "vpp-3n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-{core}-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-{core}-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-{core}-avf-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-{core}-avf-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-{core}-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-{core}-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-{core}-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-{core}-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-skx-xxv710-imix-{core}-ipsec-ip4routing-base-scale-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-1518b-{core}-ipsec-ip4routing-base-scale-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-1518b-{core}-ipsec-ip4routing-base-scale-avf-{test_type}"
- data: "vpp-3n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518b-{core}-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.1518b-{core}-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518b-{core}-avf-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.1518b-{core}-avf-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518b-{core}-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.1518b-{core}-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518b-{core}-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.1518b-{core}-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-skx-xxv710-1518b-{core}-ipsec-ip4routing-base-scale-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-1518b-{core}-ipsec-ip4routing-base-scale-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-1518b-{core}-ipsec-ip4routing-base-scale-dpdk-{test_type}"
- data: "vpp-3n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518B-{core}-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.1518B-{core}-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518B-{core}-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518B-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.1518B-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518B-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.1518B-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-skx-xxv710-1518b-{core}-ipsec-ip4routing-base-scale-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-imix-{core}-ipsec-ip4routing-base-scale-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-imix-{core}-ipsec-ip4routing-base-scale-dpdk-{test_type}"
- data: "vpp-3n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-{core}-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-{core}-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-{core}-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-skx-xxv710-imix-{core}-ipsec-ip4routing-base-scale-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-imix-{core}-ipsec-ip4routing-base-scale-sw-ixgbe-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-imix-{core}-ipsec-ip4routing-base-scale-sw-ixgbe-{test_type}"
- data: "vpp-3n-tsh-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-{core}-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-{core}-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-tsh-x520-imix-{core}-ipsec-ip4routing-base-scale-sw-ixgbe-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-imix-{core}-ipsec-ip4routing-base-scale-sw-ixgbe-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-imix-{core}-ipsec-ip4routing-base-scale-sw-ixgbe-{test_type}"
- data: "vpp-3n-dnv-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-{core}-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-{core}-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-dnv-x553-imix-{core}-ipsec-ip4routing-base-scale-sw-ixgbe-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-x710-64b-{core}-l2switching-base-scale-[avf,dpdk]-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-x710-64b-{core}-l2switching-base-scale-[avf,dpdk]-{test_type}"
- data: "vpp-2n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-{core}-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-{core}-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-skx-x710-64b-{core}-l2switching-base-scale-[avf,dpdk]-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-{core}-l2switching-base-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-{core}-l2switching-base-avf-{test_type}"
- data: "vpp-2n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Ndrpdr.64B-{core}-avf-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-{core}-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-{core}-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-{core}-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-{core}-l2switching-base-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-{core}-l2switching-base-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-{core}-l2switching-base-dpdk-{test_type}"
- data: "vpp-2n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Ndrpdr.64B-{core}-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-{core}-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-{core}-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-{core}-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-{core}-l2switching-base-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-{core}-l2switching-base-scale-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-{core}-l2switching-base-scale-avf-{test_type}"
- data: "vpp-2n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-{core}-l2switching-base-scale-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-{core}-l2switching-base-scale-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-{core}-l2switching-base-scale-dpdk-{test_type}"
- data: "vpp-2n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-{core}-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-{core}-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-{core}-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-{core}-l2switching-base-scale-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-x710-64b-{core}-l2switching-base-scale-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-x710-64b-{core}-l2switching-base-scale-avf-{test_type}"
- data: "vpp-3n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Patch-Ndrpdr.64B-{core}-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-{core}-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-skx-x710-64b-{core}-l2switching-base-scale-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-64b-{core}-l2switching-base-[avf,dpdk]-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-{core}-l2switching-base-{test_type}"
- data: "vpp-3n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Ndrpdr.64B-{core}-avf-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-{core}-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-{core}-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-{core}-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-{core}-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-{core}-l2switching-base-[avf,dpdk]-{test_type}"
- layout: "plot-throughput"
-
-# - type: "plot"
-# title: "Throughput: 3n-skx-xxv710-64b-{core}-features-l2switching-base-avf-{test_type}"
-# algorithm: "plot_ndrpdr_box_name"
-# output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-{core}-features-l2switching-base-avf-{test_type}"
-# data: "vpp-3n-skx-curr-iter"
-# core: ["2t1c", ]
-# include:
-# - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-ndrpdr"
-# - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr"
-# - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr"
-# - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr"
-# - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr"
-# - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr"
-# layout:
-# title: "3n-skx-xxv710-64b-{core}-features-l2switching-base-avf-{test_type}"
-# layout: "plot-throughput"
-
-# - type: "plot"
-# title: "Throughput: 3n-skx-xxv710-64b-{core}-features-l2switching-base-dpdk-{test_type}"
-# algorithm: "plot_ndrpdr_box_name"
-# output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-{core}-features-l2switching-base-dpdk-{test_type}"
-# data: "vpp-3n-skx-curr-iter"
-# core: ["2t1c", ]
-# include:
-# - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-ndrpdr"
-# - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr"
-# - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr"
-# - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr"
-# - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr"
-# - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr"
-# layout:
-# title: "3n-skx-xxv710-64b-{core}-features-l2switching-base-dpdk-{test_type}"
-# layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-64b-{core}-l2switching-base-ixgbe-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-{core}-l2switching-base-ixgbe-{test_type}"
- data: "vpp-3n-tsh-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Patch-Ndrpdr.64B-{core}-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Dot1Q-L2Xcbase-Ndrpdr.64B-{core}-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Xcbase-Ndrpdr.64B-{core}-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-{core}-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-{core}-l2switching-base-ixgbe-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-64b-{core}-features-l2switching-base-ixgbe-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-{core}-features-l2switching-base-ixgbe-{test_type}"
- data: "vpp-3n-tsh-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-{core}-features-l2switching-base-ixgbe-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-dnv-x553-64b-{core}-l2switching-base-ixgbe-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-64b-{core}-l2switching-base-ixgbe-{test_type}"
- data: "vpp-2n-dnv-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Dot1Q-L2Xcbase-Ndrpdr.64B-{core}-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-{core}-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-{core}-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-dnv-x553-64b-{core}-l2switching-base-ixgbe-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-dnv-x553-64b-{core}-l2switching-base-scale-ixgbe-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-64b-{core}-l2switching-base-scale-ixgbe-{test_type}"
- data: "vpp-2n-dnv-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Patch-Ndrpdr.64B-{core}-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-{core}-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-{core}-eth-l2bdscale10kmaclrn-ndrpdr"
- layout:
- title: "2n-dnv-x553-64b-{core}-l2switching-base-scale-ixgbe-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-64b-{core}-l2switching-base-ixgbe-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-{core}-l2switching-base-ixgbe-{test_type}"
- data: "vpp-3n-dnv-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Dot1Q-L2Xcbase-Ndrpdr.64B-{core}-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-{core}-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-{core}-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-{core}-l2switching-base-ixgbe-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-64b-{core}-l2switching-base-scale-ixgbe-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-{core}-l2switching-base-scale-ixgbe-{test_type}"
- data: "vpp-3n-dnv-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Patch-Ndrpdr.64B-{core}-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-{core}-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-{core}-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-{core}-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-{core}-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-{core}-l2switching-base-scale-ixgbe-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-dnv-x553-64b-{core}-features-l2switching-base-ixgbe-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-{core}-features-l2switching-base-ixgbe-{test_type}"
- data: "vpp-3n-dnv-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Xcbase-Ndrpdr.64B-{core}-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-{core}-features-l2switching-base-ixgbe-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-skx-xxv710-78b-{core}-srv6-ip6routing-base-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-78b-{core}-srv6-ip6routing-base-avf-{test_type}"
- data: "vpp-3n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Ndrpdr.78B-{core}-avf-ethip6ip6-ip6base-srv6enc1sid-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Ndrpdr.78B-{core}-avf-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Ndrpdr.78B-{core}-avf-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-Ndrpdr.78B-{core}-avf-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-Ndrpdr.78B-{core}-avf-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-Ndrpdr.78B-{core}-avf-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr"
- layout:
- title: "3n-skx-xxv710-78b-{core}-srv6-ip6routing-base-avf-{test_type}"
- layout: "plot-throughput"
-
-# - type: "plot"
-# title: "Throughput: 3n-skx-xxv710-78b-{core}-srv6-ip6routing-base-dpdk-{test_type}"
-# algorithm: "plot_ndrpdr_box_name"
-# output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-78b-{core}-srv6-ip6routing-base-dpdk-{test_type}"
-# data: "vpp-3n-skx-curr-iter"
-# core: ["2t1c", ]
-# include:
-# - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Ndrpdr.78B-{core}-ethip6ip6-ip6base-srv6enc1sid-ndrpdr"
-# - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Ndrpdr.78B-{core}-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr"
-# - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Ndrpdr.78B-{core}-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr"
-# - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-Ndrpdr.78B-{core}-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr"
-# - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-Ndrpdr.78B-{core}-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr"
-# - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-Ndrpdr.78B-{core}-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr"
-# layout:
-# title: "3n-skx-xxv710-78b-{core}-srv6-ip6routing-base-dpdk-{test_type}"
-# layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-78b-{core}-srv6-ip6routing-base-ixgbe-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-78b-{core}-srv6-ip6routing-base-ixgbe-{test_type}"
- data: "vpp-3n-tsh-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Ndrpdr.78B-{core}-ethip6ip6-ip6base-srv6enc1sid-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Ndrpdr.78B-{core}-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Ndrpdr.78B-{core}-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-Ndrpdr.78B-{core}-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-Ndrpdr.78B-{core}-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-Ndrpdr.78B-{core}-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr"
- layout:
- title: "3n-tsh-x520-78b-{core}-srv6-ip6routing-base-ixgbe-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-{core}-vhost-base-[avf,dpdk]-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-{core}-vhost-base-{test_type}"
- data: "vpp-2n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-{core}-vhost-base-[avf,dpdk]-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-xxv710-64b-{core}-vhost-base-[avf,dpdk]-vpp-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-{core}-vhost-base-vpp-{test_type}"
- data: "vpp-2n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-{core}-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-{core}-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-{core}-vhost-base-[avf,dpdk]-vpp-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-64b-{core}-vhost-base-ixgbe-vppl2xc-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-{core}-vhost-base-ixgbe-vppl2xc-{test_type}"
- data: "vpp-3n-tsh-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-vppl2xc-Ndrpdr.64B-{core}-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-vppl2xc-Ndrpdr.64B-{core}-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-vppl2xc-Ndrpdr.64B-{core}-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-vppl2xc-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-vppl2xc-Ndrpdr.64B-{core}-ethip4-ip4base-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-{core}-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-{core}-vhost-base-ixgbe-vppl2xc-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-tsh-x520-64b-{core}-vhost-base-ixgbe-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-{core}-vhost-base-ixgbe-{test_type}"
- data: "vpp-3n-tsh-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-{core}-vhost-base-ixgbe-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-tx2-xl710-64b-{core}-ipsec-base-scale-sw-policy-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-{core}-ipsec-base-scale-sw-policy-dpdk-{test_type}"
- data: "vpp-2n-tx2-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1Tnlsw-Ip4Base-Policy-Aes256Gcm-Udir-ndrpdr.64B-{core}-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1Tnlsw-Ip4Base-Policy-Aes128Cbc-Hmac512Sha-Udir-ndrpdr.64B-{core}-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec40Tnlsw-Ip4Base-Policy-Aes256Gcm-Udir-ndrpdr.64B-{core}-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec40Tnlsw-Ip4Base-Policy-Aes128Cbc-Hmac512Sha-Udir-ndrpdr.64B-{core}-ethip4ipsec40tnlsw-ip4base-policy-aes128cbc-hmac512sha-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Policy-Aes256Gcm-Udir-ndrpdr.64B-{core}-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Policy-Aes128Cbc-Hmac512Sha-Udir-ndrpdr.64B-{core}-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha-udir-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-{core}-ipsec-base-scale-sw-policy-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-tx2-xl710-64b-{core}-ipsec-spe-base-scale-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-{core}-ipsec-spe-base-scale-dpdk-{test_type}"
- data: "vpp-2n-tx2-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1Spe-Ip4Base-Policy-Outbound-Nocrypto-ndrpdr.64B-{core}-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1Spe-Cache-Ip4Base-Policy-Outbound-Nocrypto-ndrpdr.64B-{core}-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec100Spe-Ip4Base-Policy-Outbound-Nocrypto-ndrpdr.64B-{core}-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec100Spe-Cache-Ip4Base-Policy-Outbound-Nocrypto-ndrpdr.64B-{core}-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1000Spe-Ip4Base-Policy-Outbound-Nocrypto-ndrpdr.64B-{core}-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1000Spe-Cache-Ip4Base-Policy-Outbound-Nocrypto-ndrpdr.64B-{core}-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-{core}-ipsec-spe-base-scale-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-tx2-xl710-1518b-{core}-ipsec-base-scale-sw-cbc-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-1518b-{core}-ipsec-base-scale-sw-cbc-dpdk-{test_type}"
- data: "vpp-2n-tx2-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Udir-ndrpdr.1518B-{core}-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Udir-ndrpdr.1518B-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Udir-ndrpdr.1518B-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr"
- layout:
- title: "2n-tx2-xl710-1518b-{core}-ipsec-base-scale-sw-cbc-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-tx2-xl710-imix-{core}-ipsec-base-scale-sw-cbc-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-imix-{core}-ipsec-base-scale-sw-cbc-dpdk-{test_type}"
- data: "vpp-2n-tx2-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Udir-ndrpdr.imix-{core}-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Udir-ndrpdr.imix-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Udir-ndrpdr.imix-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr"
- layout:
- title: "2n-tx2-xl710-imix-{core}-ipsec-base-scale-sw-cbc-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-tx2-xl710-1518b-{core}-ipsec-base-scale-sw-gcm-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-1518b-{core}-ipsec-base-scale-sw-gcm-dpdk-{test_type}"
- data: "vpp-2n-tx2-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Gcm-Udir-ndrpdr.1518B-{core}-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Udir-ndrpdr.1518B-{core}-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Gcm-Udir-ndrpdr.1518B-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Udir-ndrpdr.1518B-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Gcm-Udir-ndrpdr.1518B-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Udir-ndrpdr.1518B-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr"
- layout:
- title: "2n-tx2-xl710-1518b-{core}-ipsec-base-scale-sw-gcm-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-tx2-xl710-imix-{core}-ipsec-base-scale-sw-gcm-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-imix-{core}-ipsec-base-scale-sw-gcm-dpdk-{test_type}"
- data: "vpp-2n-tx2-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Gcm-Udir-ndrpdr.imix-{core}-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Udir-ndrpdr.imix-{core}-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Gcm-Udir-ndrpdr.imix-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Udir-ndrpdr.imix-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Gcm-Udir-ndrpdr.imix-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Udir-ndrpdr.imix-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr"
- layout:
- title: "2n-tx2-xl710-imix-{core}-ipsec-base-scale-sw-gcm-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-tx2-xl710-64b-{core}-ip4routing-base-scale-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-{core}-ip4routing-base-scale-dpdk-{test_type}"
- data: "vpp-2n-tx2-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4-Ip4Base-Ndrpdr.64B-{core}-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4-Ip4Scale20K-Ndrpdr.64B-{core}-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4-Ip4Scale200K-Ndrpdr.64B-{core}-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4-Ip4Scale2M-Ndrpdr.64B-{core}-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-{core}-ip4routing-base-scale-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-tx2-xl710-64b-{core}-ip4routing-base-scale-af_xdp-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-{core}-ip4routing-base-scale-af_xdp-{test_type}"
- data: "vpp-2n-tx2-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-af-xdp-Ethip4-Ip4Base-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-af-xdp-Ethip4-Ip4Scale20K-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-af-xdp-Ethip4-Ip4Scale200K-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-af-xdp-Ethip4-Ip4Scale2M-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-{core}-ip4routing-base-scale-af_xdp-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-tx2-xl710-64b-{core}-features-ip4routing-base-scale-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-{core}-features-ip4routing-base-scale-dpdk-{test_type}"
- data: "vpp-2n-tx2-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4-Ip4Base-Iacldstbase-Ndrpdr.64B-{core}-ethip4-ip4base-iacldstbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-{core}-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-{core}-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-{core}-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-{core}-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-{core}-ip4routing-features-base-scale-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-tx2-xl710-78b-{core}-ip6routing-base-scale-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-78b-{core}-ip6routing-base-scale-dpdk-{test_type}"
- data: "vpp-2n-tx2-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Ethip6-Ip6Base-Ndrpdr.78B-{core}-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Ethip6-Ip6Scale20K-Ndrpdr.78B-{core}-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Ethip6-Ip6Scale200K-Ndrpdr.78B-{core}-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Ethip6-Ip6Scale2M-Ndrpdr.78B-{core}-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Ethip6-Ip6Base-Iacldstbase-Ndrpdr.78B-{core}-ethip6-ip6base-iacldstbase-ndrpdr"
- layout:
- title: "2n-tx2-xl710-78b-{core}-ip6routing-base-scale-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-tx2-xl710-78b-{core}-ip6routing-base-scale-af_xdp-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-78b-{core}-ip6routing-base-scale-af_xdp-{test_type}"
- data: "vpp-2n-tx2-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-af-xdp-Ethip6-Ip6Base-Ndrpdr.78B-{core}-af-xdp-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-af-xdp-Ethip6-Ip6Scale20K-Ndrpdr.78B-{core}-af-xdp-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-af-xdp-Ethip6-Ip6Scale200K-Ndrpdr.78B-{core}-af-xdp-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-af-xdp-Ethip6-Ip6Scale2M-Ndrpdr.78B-{core}-af-xdp-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-tx2-xl710-78b-{core}-ip6routing-base-scale-af_xdp-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-tx2-xl710-64b-{core}-l2switching-base-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-{core}-l2switching-base-dpdk-{test_type}"
- data: "vpp-2n-tx2-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Dot1Q-L2Xcbase-Ndrpdr.64B-{core}-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-{core}-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Patch-Ndrpdr.64B-{core}-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Xcbase-Ndrpdr.64B-{core}-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-{core}-l2switching-base-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-tx2-xl710-64b-{core}-l2switching-scale-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-{core}-l2switching-scale-dpdk-{test_type}"
- data: "vpp-2n-tx2-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-{core}-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-{core}-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-{core}-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-{core}-l2switching-scale-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-tx2-xl710-64b-{core}-l2switching-scale-af_xdp-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-{core}-l2switching-scale-af_xdp-{test_type}"
- data: "vpp-2n-tx2-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-af-xdp-Eth-L2Patch-Ndrpdr.64B-{core}-af-xdp-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-af-xdp-Eth-L2Xcbase-Ndrpdr.64B-{core}-af-xdp-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-af-xdp-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-af-xdp-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-af-xdp-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-{core}-af-xdp-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-af-xdp-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-{core}-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-af-xdp-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-{core}-af-xdp-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-{core}-l2switching-scale-af_xdp-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-tx2-xl710-64b-{core}-features-l2switching-base-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-{core}-features-l2switching-base-dpdk-{test_type}"
- data: "vpp-2n-tx2-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-{core}-features-l2switching-base-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-tx2-xl710-64b-{core}-memif-base-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-{core}-memif-base-dpdk-{test_type}"
- data: "vpp-2n-tx2-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-40Ge2P1Xl710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-40Ge2P1Xl710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-{core}-memif-base-{test_type}"
- layout: "plot-throughput"
-
-# 3n-alt
-
-- type: "plot"
- title: "Throughput: 3n-alt-xl710-1518b-{core}-ipsec-aes128cbc-ip4routing-scale-sw-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-alt-xl710-1518b-{core}-ipsec-aes128cbc-ip4routing-scale-sw-{test_type}"
- data: "vpp-3n-alt-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.1518B-{core}-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Gcm-ndrpdr.1518B-{core}-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.1518B-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Gcm-ndrpdr.1518B-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.1518B-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Gcm-ndrpdr.1518B-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-ndrpdr"
- layout:
- title: "3n-alt-xl710-1518b-{core}-ipsec-aes128cbc-ip4routing-scale-sw-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-alt-xl710-1518b-{core}-ipsec-aes256gcm-ip4routing-scale-sw-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-alt-xl710-1518b-{core}-ipsec-aes256gcm-ip4routing-scale-sw-{test_type}"
- data: "vpp-3n-alt-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-{core}-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- layout:
- title: "3n-alt-xl710-1518b-{core}-ipsec-aes256gcm-ip4routing-scale-sw-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-alt-xl710-imix-{core}-ipsec-aes128cbc-ip4routing-scale-sw-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-alt-xl710-imix-{core}-ipsec-aes128cbc-ip4routing-scale-sw-{test_type}"
- data: "vpp-3n-alt-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.imix-{core}-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Gcm-ndrpdr.imix-{core}-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.imix-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Gcm-ndrpdr.imix-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.imix-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Gcm-ndrpdr.imix-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-ndrpdr"
- layout:
- title: "3n-alt-xl710-imix-{core}-ipsec-aes128cbc-ip4routing-scale-sw-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-alt-xl710-imix-{core}-ipsec-aes256gcm-ip4routing-scale-sw-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-alt-xl710-imix-{core}-ipsec-aes256gcm-ip4routing-scale-sw-{test_type}"
- data: "vpp-3n-alt-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-{core}-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- layout:
- title: "3n-alt-xl710-imix-{core}-ipsec-aes256gcm-ip4routing-scale-sw-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-alt-xl710-64b-{core}-ipsec-ip4base-policy-outbound-nocrypto-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-alt-xl710-64b-{core}-ipsec-ip4base-policy-outbound-nocrypto-{test_type}"
- data: "vpp-3n-alt-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1Spe-Cache-Ip4Base-Policy-Outbound-Nocrypto-ndrpdr.64B-{core}-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1Spe-Ip4Base-Policy-Outbound-Nocrypto-ndrpdr.64B-{core}-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec100Spe-Cache-Ip4Base-Policy-Outbound-Nocrypto-ndrpdr.64B-{core}-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec100Spe-Ip4Base-Policy-Outbound-Nocrypto-ndrpdr.64B-{core}-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Spe-Cache-Ip4Base-Policy-Outbound-Nocrypto-ndrpdr.64B-{core}-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Spe-Ip4Base-Policy-Outbound-Nocrypto-ndrpdr.64B-{core}-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr"
- layout:
- title: "3n-alt-xl710-64b-{core}-ipsec-ip4base-policy-outbound-nocrypto-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-alt-xl710-64b-{core}-ipsec-ip4base-policy-aes256gcm-sw-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-alt-xl710-64b-{core}-ipsec-ip4base-policy-aes256gcm-sw-{test_type}"
- data: "vpp-3n-alt-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1Tnlsw-Ip4Base-Policy-Aes256Gcm-ndrpdr.64B-{core}-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec40Tnlsw-Ip4Base-Policy-Aes256Gcm-ndrpdr.64B-{core}-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Policy-Aes256Gcm-ndrpdr.64B-{core}-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-ndrpdr"
- layout:
- title: "3n-alt-xl710-64b-{core}-ipsec-ip4base-policy-aes256gcm-sw-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-alt-xl710-64b-{core}-ip4-base-scale-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-alt-xl710-64b-{core}-ip4-base-scale-{test_type}"
- data: "vpp-3n-alt-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Base-ndrpdr.64B-{core}-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Scale20K-ndrpdr.64B-{core}-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Scale200K-ndrpdr.64B-{core}-ethip4-ip4scale200k-ndrpdr"
- layout:
- title: "3n-alt-xl710-64b-{core}-ip4-base-scale-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-alt-xl710-64b-{core}-ip4-feature-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-alt-xl710-64b-{core}-ip4-feature-{test_type}"
- data: "vpp-3n-alt-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Base-Iacldstbase-ndrpdr.64B-{core}-ethip4-ip4base-iacldstbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-ndrpdr.64B-{core}-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-ndrpdr.64B-{core}-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-ndrpdr.64B-{core}-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-ndrpdr.64B-{core}-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-alt-xl710-64b-{core}-ip4-feature-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-alt-xl710-64b-{core}-ip4-tunnels-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-alt-xl710-64b-{core}-ip4-tunnels-{test_type}"
- data: "vpp-3n-alt-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.40Ge2P1Xl710-Ethip4Vxlan-L2Xcbase-ndrpdr.64B-{core}-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.40Ge2P1Xl710-Ethip4Vxlan-L2Bdbasemaclrn-ndrpdr.64B-{core}-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-alt-xl710-64b-{core}-ip4-tunnels-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-alt-xl710-78b-{core}-ip6-base-scale-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-alt-xl710-78b-{core}-ip6-base-scale-{test_type}"
- data: "vpp-3n-alt-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Base-ndrpdr.78B-{core}-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Scale20K-ndrpdr.78B-{core}-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Scale200K-ndrpdr.78B-{core}-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Base-Iacldstbase-ndrpdr.78B-{core}-ethip6-ip6base-iacldstbase-ndrpdr"
- layout:
- title: "3n-alt-xl710-78b-{core}-ip6-base-scale-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-alt-xl710-64b-{core}-l2-base-scale-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-alt-xl710-64b-{core}-l2-base-scale-{test_type}"
- data: "vpp-3n-alt-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-ndrpdr.64B-{core}-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Xcbase-ndrpdr.64B-{core}-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Patch-ndrpdr.64B-{core}-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-ndrpdr.64B-{core}-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdscale10Kmaclrn-ndrpdr.64B-{core}-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdscale100Kmaclrn-ndrpdr.64B-{core}-eth-l2bdscale100kmaclrn-ndrpdr"
- layout:
- title: "3n-alt-xl710-64b-{core}-l2-base-scale-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-alt-xl710-64b-{core}-l2-feature-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-alt-xl710-64b-{core}-l2-feature-{test_type}"
- data: "vpp-3n-alt-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-ndrpdr.64B-{core}-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-ndrpdr.64B-{core}-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-ndrpdr.64B-{core}-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-ndrpdr.64B-{core}-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-ndrpdr.64B-{core}-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-alt-xl710-64b-{core}-l2-feature-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-alt-xl710-64b-{core}-vhost-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-alt-xl710-64b-{core}-vhost-{test_type}"
- data: "vpp-3n-alt-curr-iter"
- core: ["1t1c", ]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-ndrpdr.64B-{core}-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-ndrpdr.64B-{core}-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- layout:
- title: "3n-alt-xl710-64b-{core}-vhost-{test_type}"
- layout: "plot-throughput"
-
-################################################################################
-
-# Packet Speedup
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-memif-base-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-memif-base-avf-{test_type}-tsa"
- data: "vpp-2n-skx-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-memif-base-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-memif-base-dpdk-{test_type}-tsa"
- data: "vpp-2n-skx-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-x710-64b-ip4routing-base-scale-[avf,dpdk,af_xdp]-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-x710-64b-ip4routing-base-scale-[avf,dpdk,af_xdp]-{test_type}-tsa"
- data: "vpp-2n-skx-curr-iter"
- 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-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-af-xdp-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-af-xdp-ethip4-ip4base-ndrpdr"
- layout:
- title: "2n-skx-x710-64b-ip4routing-base-scale-[avf,dpdk,af_xdp]-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-ip4routing-base-scale-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-ip4routing-base-scale-avf-{test_type}-tsa"
- data: "vpp-2n-skx-curr-iter"
- 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-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale20k-rnd-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-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-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-base-scale-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-ip4routing-base-scale-af_xdp-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-ip4routing-base-scale-af_xdp-{test_type}-tsa"
- data: "vpp-2n-skx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-af-xdp-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-af-xdp-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-af-xdp-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-af-xdp-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-af-xdp-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-af-xdp-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-af-xdp-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-ip4routing-base-scale-af_xdp-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-ip4routing-base-scale-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-ip4routing-base-scale-dpdk-{test_type}-tsa"
- data: "vpp-2n-skx-curr-iter"
- 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-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-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-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-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-base-scale-dpdk-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-features-ip4routing-base-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-features-ip4routing-base-avf-{test_type}-tsa"
- data: "vpp-2n-skx-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-{test_type}-tsa"
- data: "vpp-2n-skx-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-{test_type}-tsa"
- data: "vpp-2n-skx-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-{test_type}-tsa"
- data: "vpp-2n-skx-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis-cps"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-{test_type}-tsa"
- data: "vpp-2n-skx-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis-cps"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-100b-nat44ed-ip4routing-tcp-tput-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-100b-nat44ed-ip4routing-tcp-tput-avf-{test_type}-tsa"
- data: "vpp-2n-skx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Ip4Base-H1024-P63-S64512-Tput-Ndrpdr.100B-.t.c-avf-ethip4tcp-ip4base-h1024-p63-s64512-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Ip4Base-H16384-P63-S1032192-Tput-Ndrpdr.100B-.t.c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Ip4Base-H65536-P63-S4128768-Tput-Ndrpdr.100B-.t.c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H1024-P63-S64512-Tput-Ndrpdr.100B-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H16384-P63-S1032192-Tput-Ndrpdr.100B-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H65536-P63-S4128768-Tput-Ndrpdr.100B-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr"
- layout:
- title: "2n-skx-xxv710-100b-nat44ed-ip4routing-tcp-tput-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-100b-nat44ed-ip4routing-udp-tput-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-100b-nat44ed-ip4routing-udp-tput-avf-{test_type}-tsa"
- data: "vpp-2n-skx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H1024-P63-S64512-Tput-Ndrpdr.100B-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H16384-P63-S1032192-Tput-Ndrpdr.100B-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H65536-P63-S4128768-Tput-Ndrpdr.100B-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr"
- layout:
- title: "2n-skx-xxv710-100B-nat44ed-ip4routing-udp-tput-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-ethip4--ethip4udpgeneve-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-ethip4--ethip4udpgeneve-avf-{test_type}-tsa"
- data: "vpp-2n-skx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-1Tun-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4--ethip4udpgeneve-1tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-4Tun-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4--ethip4udpgeneve-4tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-16Tun-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4--ethip4udpgeneve-16tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-64Tun-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4--ethip4udpgeneve-64tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-256Tun-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4--ethip4udpgeneve-256tun-ip4base-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-ethip4--ethip4udpgeneve-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-x710-64b-ip4routing-base-scale-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-x710-64b-ip4routing-base-scale-avf-{test_type}-tsa"
- data: "vpp-3n-skx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4-ip4base-ndrpdr"
- layout:
- title: "3n-skx-x710-64b-ip4routing-base-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-ip4routing-base-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-ip4routing-base-{test_type}-tsa"
- data: "vpp-3n-skx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-avf-eth-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-ip4routing-base-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-# - type: "plot"
-# title: "Speedup: 3n-skx-xxv710-64b-features-ip4routing-base-avf-{test_type}-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-features-ip4routing-base-avf-{test_type}-tsa"
-# data: "vpp-3n-skx-curr-iter"
-# 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-{test_type}"
-# layout: "plot-throughput-speedup-analysis"
-
-# - type: "plot"
-# title: "Speedup: 3n-skx-xxv710-64b-features-ip4routing-base-dpdk-{test_type}-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-features-ip4routing-base-dpdk-{test_type}-tsa"
-# data: "vpp-3n-skx-curr-iter"
-# 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-{test_type}"
-# layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-ip4tunnel-base-[avf,dpdk]-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-ip4tunnel-base-{test_type}-tsa"
- data: "vpp-3n-skx-curr-iter"
- 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-Ethip4Gtpusw-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4gtpusw-ip4base-ndrpdr"
- - "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-Ethip4Gtpusw-Ip4Base-Ndrpdr.64B-.t.c-ethip4gtpusw-ip4base-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-ip4tunnel-base-[avf,dpdk]-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-x710-78b-ip6routing-base-scale-[avf,dpdk,af_xdp]-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-x710-78b-ip6routing-base-scale-[avf,dpdk,af_xdp]-{test_type}-tsa"
- data: "vpp-2n-skx-curr-iter"
- include:
- - "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-Avf-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale2m-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-af-xdp-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-af-xdp-ethip6-ip6base-ndrpdr"
- layout:
- title: "2n-skx-x710-78b-ip6routing-base-scale-[avf,dpdk,af_xdp]-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-78b-ip6routing-base-scale-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-78b-ip6routing-base-scale-dpdk-{test_type}-tsa"
- data: "vpp-2n-skx-curr-iter"
- 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-Ip6Scale20K-rnd-Ndrpdr.78B-.t.c-ethip6-ip6scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-rnd-Ndrpdr.78B-.t.c-ethip6-ip6scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-rnd-ndrpdr"
- layout:
- title: "2n-skx-xxv710-78b-ip6routing-base-scale-dpdk-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-78b-ip6routing-base-scale-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-78b-ip6routing-base-scale-avf-{test_type}-tsa"
- data: "vpp-2n-skx-curr-iter"
- include:
- - "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-Ip6Scale20K-rnd-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale20k-rnd-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-Ip6Scale200K-rnd-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale2m-rnd-ndrpdr"
- layout:
- title: "2n-skx-xxv710-78b-ip6routing-base-scale-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-78b-ip6routing-base-scale-af_xdp-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-78b-ip6routing-base-scale-af_xdp-{test_type}-tsa"
- data: "vpp-2n-skx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-af-xdp-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-af-xdp-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale20K-rnd-Ndrpdr.78B-.t.c-af-xdp-ethip6-ip6scale20k-rnd-ndrpdr"
- layout:
- title: "2n-skx-xxv710-78b-ip6routing-base-scale-af_xdp-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-x710-78b-ip6routing-base-scale-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-x710-78b-ip6routing-base-scale-avf-{test_type}-tsa"
- data: "vpp-3n-skx-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-78b-ip6routing-base-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-78b-ip6routing-base-{test_type}-tsa"
- data: "vpp-3n-skx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-avf-ethip6-ip6base-ndrpdr"
- layout:
- title: "3n-skx-xxv710-78b-ip6routing-base-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-imix-ipsec-ip4routing-base-scale-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-imix-ipsec-ip4routing-base-scale-avf-{test_type}-tsa"
- data: "vpp-3n-skx-curr-iter"
- 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-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-avf-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-.t.c-avf-ethip4ipsec40tnlsw-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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-1518b-ipsec-ip4routing-base-scale-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-1518b-ipsec-ip4routing-base-scale-avf-{test_type}-tsa"
- data: "vpp-3n-skx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518b-.t.c-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.1518b-.t.c-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518b-.t.c-avf-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.1518b-.t.c-avf-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518b-.t.c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.1518b-.t.c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518b-.t.c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.1518b-.t.c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-skx-xxv710-1518b-ipsec-ip4routing-base-scale-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-imix-ipsec-ip4routing-base-scale-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-imix-ipsec-ip4routing-base-scale-dpdk-{test_type}-tsa"
- data: "vpp-3n-skx-curr-iter"
- 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-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-.t.c-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-x710-64b-l2switching-base-scale-[avf,dpdk]-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-x710-64b-l2switching-base-scale-[avf,dpdk]-{test_type}-tsa"
- data: "vpp-2n-skx-curr-iter"
- 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-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-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"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-af-xdp-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-af-xdp-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-skx-x710-64b-l2switching-base-scale-[avf,dpdk]-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-l2switching-base-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-l2switching-base-avf-{test_type}-tsa"
- data: "vpp-2n-skx-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-l2switching-base-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-l2switching-base-dpdk-{test_type}-tsa"
- data: "vpp-2n-skx-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-l2switching-base-scale-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-l2switching-base-scale-avf-{test_type}-tsa"
- data: "vpp-2n-skx-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-l2switching-base-scale-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-l2switching-base-scale-dpdk-{test_type}-tsa"
- data: "vpp-2n-skx-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-x710-64b-l2switching-base-scale-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-x710-64b-l2switching-base-scale-avf-{test_type}-tsa"
- data: "vpp-3n-skx-curr-iter"
- include:
- - "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"
- layout:
- title: "3n-skx-x710-64b-l2switching-base-scale-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-l2switching-base-[avf,dpdk]-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-l2switching-base-{test_type}-tsa"
- data: "vpp-3n-skx-curr-iter"
- 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"
- - "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"
- layout:
- title: "3n-skx-xxv710-64b-l2switching-base-[avf,dpdk]-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-# - type: "plot"
-# title: "Speedup: 3n-skx-xxv710-64b-features-l2switching-base-avf-{test_type}-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-64b-features-l2switching-base-avf-{test_type}-tsa"
-# data: "vpp-3n-skx-curr-iter"
-# 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-{test_type}"
-# layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-78b-srv6-ip6routing-base-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-skx-xxv710-78b-srv6-ip6routing-base-avf-{test_type}-tsa"
- data: "vpp-3n-skx-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-vhost-base-[avf,dpdk]-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-vhost-base-{test_type}-tsa"
- data: "vpp-2n-skx-curr-iter"
- include:
- - "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-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"
- layout:
- title: "2n-skx-xxv710-64b-vhost-base-[avf,dpdk]-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-vhost-base-[avf,dpdk]-vpp-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-xxv710-64b-vhost-base-vpp-{test_type}-tsa"
- data: "vpp-2n-skx-curr-iter"
- include:
- - "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-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"
- layout:
- title: "2n-skx-xxv710-64b-vhost-base-[avf,dpdk]-vpp-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-64b-features-ip4routing-base-ixgbe-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-features-ip4routing-base-ixgbe-{test_type}-tsa"
- data: "vpp-3n-tsh-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-64b-ip4tunnel-base-ixgbe-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-ip4tunnel-base-ixgbe-{test_type}-tsa"
- data: "vpp-3n-tsh-curr-iter"
- 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"
- layout:
- title: "3n-tsh-x520-64b-ip4tunnel-base-ixgbe-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-78b-ip6routing-base-ixgbe-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-78b-ip6routing-base-ixgbe-{test_type}-tsa"
- data: "vpp-3n-tsh-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- layout:
- title: "3n-tsh-x520-78b-ip6routing-base-ixgbe-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-imix-ipsec-ip4routing-base-scale-sw-ixgbe-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-imix-ipsec-ip4routing-base-scale-sw-ixgbe-{test_type}-tsa"
- data: "vpp-3n-tsh-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-64b-l2switching-base-ixgbe-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-l2switching-base-ixgbe-{test_type}-tsa"
- data: "vpp-3n-tsh-curr-iter"
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Patch-Ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
- - "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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-64b-features-l2switching-base-ixgbe-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-features-l2switching-base-ixgbe-{test_type}-tsa"
- data: "vpp-3n-tsh-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-78b-srv6-ip6routing-base-ixgbe-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-78b-srv6-ip6routing-base-ixgbe-{test_type}-tsa"
- data: "vpp-3n-tsh-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-64b-vhost-base-ixgbe-vppl2xc-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-vhost-base-ixgbe-vppl2xc-{test_type}-tsa"
- data: "vpp-3n-tsh-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-64b-vhost-base-ixgbe-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-vhost-base-ixgbe-{test_type}-tsa"
- data: "vpp-3n-tsh-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-#- type: "plot"
-# title: "Speedup: 3n-tsh-x520-64b-link-bonding-vhost-base-ixgbe-{test_type}-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/3n-tsh-x520-64b-link-bonding-vhost-base-ixgbe-{test_type}-tsa"
-# data: "vpp-3n-tsh-curr-iter"
-# test-type: ["ndr", "pdr"]
-# 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-{test_type}"
-# layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-alt-xl710-1518b-ipsec-aes128cbc-ip4routing-scale-sw-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-alt-xl710-1518b-ipsec-aes128cbc-ip4routing-scale-sw-{test_type}-tsa"
- data: "vpp-3n-alt-curr-iter"
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.1518B-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Gcm-ndrpdr.1518B-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.1518B-.t.c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Gcm-ndrpdr.1518B-.t.c-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.1518B-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Gcm-ndrpdr.1518B-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-ndrpdr"
- layout:
- title: "3n-alt-xl710-1518b-ipsec-aes128cbc-ip4routing-scale-sw-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-alt-xl710-1518b-ipsec-aes256gcm-ip4routing-scale-sw-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-alt-xl710-1518b-ipsec-aes256gcm-ip4routing-scale-sw-{test_type}-tsa"
- data: "vpp-3n-alt-curr-iter"
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-.t.c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- layout:
- title: "3n-alt-xl710-1518b-ipsec-aes256gcm-ip4routing-scale-sw-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-alt-xl710-imix-ipsec-aes128cbc-ip4routing-scale-sw-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-alt-xl710-imix-ipsec-aes128cbc-ip4routing-scale-sw-{test_type}-tsa"
- data: "vpp-3n-alt-curr-iter"
- include:
- - "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-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Gcm-ndrpdr.imix-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-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-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Gcm-ndrpdr.imix-.t.c-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-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-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Gcm-ndrpdr.imix-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-ndrpdr"
- layout:
- title: "3n-alt-xl710-imix-ipsec-aes128cbc-ip4routing-scale-sw-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-alt-xl710-imix-ipsec-aes256gcm-ip4routing-scale-sw-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-alt-xl710-imix-ipsec-aes256gcm-ip4routing-scale-sw-{test_type}-tsa"
- data: "vpp-3n-alt-curr-iter"
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-.t.c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- layout:
- title: "3n-alt-xl710-imix-ipsec-aes256gcm-ip4routing-scale-sw-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-alt-xl710-64b-ipsec-ip4base-policy-outbound-nocrypto-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-alt-xl710-64b-ipsec-ip4base-policy-outbound-nocrypto-{test_type}-tsa"
- data: "vpp-3n-alt-curr-iter"
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1Spe-Cache-Ip4Base-Policy-Outbound-Nocrypto-ndrpdr.64B-.t.c-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1Spe-Ip4Base-Policy-Outbound-Nocrypto-ndrpdr.64B-.t.c-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec100Spe-Cache-Ip4Base-Policy-Outbound-Nocrypto-ndrpdr.64B-.t.c-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec100Spe-Ip4Base-Policy-Outbound-Nocrypto-ndrpdr.64B-.t.c-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Spe-Cache-Ip4Base-Policy-Outbound-Nocrypto-ndrpdr.64B-.t.c-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Spe-Ip4Base-Policy-Outbound-Nocrypto-ndrpdr.64B-.t.c-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr"
- layout:
- title: "3n-alt-xl710-64b-ipsec-ip4base-policy-outbound-nocrypto-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-alt-xl710-64b-ipsec-ip4base-policy-aes256gcm-sw-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-alt-xl710-64b-ipsec-ip4base-policy-aes256gcm-sw-{test_type}-tsa"
- data: "vpp-3n-alt-curr-iter"
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1Tnlsw-Ip4Base-Policy-Aes256Gcm-ndrpdr.64B-.t.c-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec40Tnlsw-Ip4Base-Policy-Aes256Gcm-ndrpdr.64B-.t.c-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Policy-Aes256Gcm-ndrpdr.64B-.t.c-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-ndrpdr"
- layout:
- title: "3n-alt-xl710-64b-ipsec-ip4base-policy-aes256gcm-sw-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-alt-xl710-64b-ip4-base-scale-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-alt-xl710-64b-ip4-base-scale-{test_type}-tsa"
- data: "vpp-3n-alt-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Base-ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Scale20K-ndrpdr.64B-.t.c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Scale200K-ndrpdr.64B-.t.c-ethip4-ip4scale200k-ndrpdr"
- layout:
- title: "3n-alt-xl710-64b-ip4-base-scale-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-alt-xl710-64b-ip4-feature-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-alt-xl710-64b-ip4-feature-{test_type}-tsa"
- data: "vpp-3n-alt-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Base-Iacldstbase-ndrpdr.64B-.t.c-ethip4-ip4base-iacldstbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-ndrpdr.64B-.t.c-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-ndrpdr.64B-.t.c-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-alt-xl710-64b-ip4-feature-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-alt-xl710-64b-ip4-tunnels-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-alt-xl710-64b-ip4-tunnels-{test_type}-tsa"
- data: "vpp-3n-alt-curr-iter"
- 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-alt-xl710-64b-ip4-tunnels-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-alt-xl710-78b-ip6-base-scale-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-alt-xl710-78b-ip6-base-scale-{test_type}-tsa"
- data: "vpp-3n-alt-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Base-ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Scale20K-ndrpdr.78B-.t.c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Scale200K-ndrpdr.78B-.t.c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Base-Iacldstbase-ndrpdr.78B-.t.c-ethip6-ip6base-iacldstbase-ndrpdr"
- layout:
- title: "3n-alt-xl710-78b-ip6-base-scale-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-alt-xl710-64b-l2-base-scale-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-alt-xl710-64b-l2-base-scale-{test_type}-tsa"
- data: "vpp-3n-alt-curr-iter"
- include:
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Xcbase-ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Patch-ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdscale10Kmaclrn-ndrpdr.64B-.t.c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdscale100Kmaclrn-ndrpdr.64B-.t.c-eth-l2bdscale100kmaclrn-ndrpdr"
- layout:
- title: "3n-alt-xl710-64b-l2-base-scale-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-alt-xl710-64b-l2-feature-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-alt-xl710-64b-l2-feature-{test_type}-tsa"
- data: "vpp-3n-alt-curr-iter"
- include:
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr"
- layout:
- title: "3n-alt-xl710-64b-l2-feature-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-alt-xl710-64b-vhost-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-alt-xl710-64b-vhost-{test_type}-tsa"
- data: "vpp-3n-alt-curr-iter"
- include:
- - "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-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-ndrpdr.64B-.t.c-ethip4-ip4base-eth-2vhostvr1024-1vm-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-alt-xl710-64b-vhost-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-dnv-x553-64b-ip4routing-base-scale-ixgbe-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-64b-ip4routing-base-scale-[ixgbe,af_xdp]-{test_type}-tsa"
- data: "vpp-2n-dnv-curr-iter"
- include:
- - "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-Ip4Scale20K-rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-af-xdp-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-af-xdp-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-af-xdp-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-af-xdp-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-af-xdp-Ethip4-Ip4Scale20K-rnd-Ndrpdr.64B-.t.c-af-xdp-ethip4-ip4scale20k-rnd-ndrpdr"
- layout:
- title: "2n-dnv-x553-64b-ip4routing-base-scale-ixgbe-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-dnv-x553-78b-ip6routing-base-scale-[ixgbe,af_xdp]-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-78b-ip6routing-base-scale-[ixgbe,af_xdp]-{test_type}-tsa"
- data: "vpp-2n-dnv-curr-iter"
- include:
- - "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-af-xdp-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-af-xdp-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-af-xdp-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-af-xdp-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-af-xdp-Ethip6-Ip6Scale20K-rnd-Ndrpdr.78B-.t.c-af-xdp-ethip6-ip6scale20k-rnd-ndrpdr"
- layout:
- title: "2n-dnv-x553-78b-ip6routing-base-scale-[ixgbe,af_xdp]-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-dnv-x553-64b-l2switching-base-ixgbe-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-64b-l2switching-base-ixgbe-{test_type}-tsa"
- data: "vpp-2n-dnv-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-dnv-x553-64b-l2switching-base-scale-ixgbe-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-64b-l2switching-base-scale-ixgbe-{test_type}-tsa"
- data: "vpp-2n-dnv-curr-iter"
- 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"
- layout:
- title: "2n-dnv-x553-64b-l2switching-base-scale-ixgbe-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-dnv-x553-64b-l2switching-base-scale-af_xdp-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-dnv-x553-64b-l2switching-base-scale-ixgbe-{test_type}-tsa"
- data: "vpp-2n-dnv-curr-iter"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-af-xdp-Eth-L2Patch-Ndrpdr.64B-.t.c-af-xdp-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-af-xdp-Eth-L2Xcbase-Ndrpdr.64B-.t.c-af-xdp-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-af-xdp-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-af-xdp-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-af-xdp-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-af-xdp-eth-l2bdscale10kmaclrn-ndrpdr"
- layout:
- title: "2n-dnv-x553-64b-l2switching-base-scale-af_xdp-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-64b-ip4routing-base-scale-ixgbe-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-ip4routing-base-scale-ixgbe-{test_type}-tsa"
- data: "vpp-3n-dnv-curr-iter"
- 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"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale20K-rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-rnd-ndrpdr"
- layout:
- title: "3n-dnv-x553-64b-ip4routing-base-scale-ixgbe-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-64b-ip4tunnel-base-ixgbe-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-ip4tunnel-base-ixgbe-{test_type}-tsa"
- data: "vpp-3n-dnv-curr-iter"
- 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"
- layout:
- title: "3n-dnv-x553-64b-ip4tunnel-base-ixgbe-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-78b-ip6routing-base-scale-ixgbe-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-78b-ip6routing-base-scale-ixgbe-{test_type}-tsa"
- data: "vpp-3n-dnv-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-imix-ipsec-ip4routing-base-scale-sw-ixgbe-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-imix-ipsec-ip4routing-base-scale-sw-ixgbe-{test_type}-tsa"
- data: "vpp-3n-dnv-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-64b-l2switching-base-ixgbe-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-l2switching-base-ixgbe-{test_type}-tsa"
- data: "vpp-3n-dnv-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-64b-l2switching-base-scale-ixgbe-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-l2switching-base-scale-ixgbe-{test_type}-tsa"
- data: "vpp-3n-dnv-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-dnv-x553-64b-features-l2switching-base-ixgbe-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-64b-features-l2switching-base-ixgbe-{test_type}-tsa"
- data: "vpp-3n-dnv-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-#- type: "plot"
-# title: "Speedup: 3n-dnv-x553-78b-srv6-ip6routing-base-ixgbe-{test_type}-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/3n-dnv-x553-78b-srv6-ip6routing-base-ixgbe-{test_type}-tsa"
-# data: "vpp-3n-dnv-curr-iter"
-# test-type: ["ndr", "pdr"]
-# 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-{test_type}"
-# layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-tx2-xl710-64b-ipsec-base-scale-sw-policy-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-ipsec-base-scale-sw-policy-dpdk-{test_type}-tsa"
- data: "vpp-2n-tx2-curr-iter"
- include:
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1Tnlsw-Ip4Base-Policy-Aes256Gcm-Udir-ndrpdr.64B-.t.c-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1Tnlsw-Ip4Base-Policy-Aes128Cbc-Hmac512Sha-Udir-ndrpdr.64B-.t.c-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec40Tnlsw-Ip4Base-Policy-Aes256Gcm-Udir-ndrpdr.64B-.t.c-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec40Tnlsw-Ip4Base-Policy-Aes128Cbc-Hmac512Sha-Udir-ndrpdr.64B-.t.c-ethip4ipsec40tnlsw-ip4base-policy-aes128cbc-hmac512sha-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Policy-Aes256Gcm-Udir-ndrpdr.64B-.t.c-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Policy-Aes128Cbc-Hmac512Sha-Udir-ndrpdr.64B-.t.c-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha-udir-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-ipsec-base-scale-sw-policy-dpdk-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-tx2-xl710-64b-ipsec-spe-base-scale-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-ipsec-spe-base-scale-dpdk-{test_type}-tsa"
- data: "vpp-2n-tx2-curr-iter"
- include:
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1Spe-Ip4Base-Policy-Outbound-Nocrypto-ndrpdr.64B-.t.c-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1Spe-Cache-Ip4Base-Policy-Outbound-Nocrypto-ndrpdr.64B-.t.c-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec100Spe-Ip4Base-Policy-Outbound-Nocrypto-ndrpdr.64B-.t.c-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec100Spe-Cache-Ip4Base-Policy-Outbound-Nocrypto-ndrpdr.64B-.t.c-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1000Spe-Ip4Base-Policy-Outbound-Nocrypto-ndrpdr.64B-.t.c-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1000Spe-Cache-Ip4Base-Policy-Outbound-Nocrypto-ndrpdr.64B-.t.c-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-ipsec-spe-base-scale-dpdk-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-tx2-xl710-1518b-ipsec-base-scale-sw-cbc-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-1518b-ipsec-base-scale-sw-cbc-dpdk-{test_type}-tsa"
- data: "vpp-2n-tx2-curr-iter"
- include:
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Udir-ndrpdr.1518B-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Udir-ndrpdr.1518B-.t.c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Udir-ndrpdr.1518B-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr"
- layout:
- title: "2n-tx2-xl710-1518b-ipsec-base-scale-sw-cbc-dpdk-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-tx2-xl710-imix-ipsec-base-scale-sw-cbc-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-imix-ipsec-base-scale-sw-cbc-dpdk-{test_type}-tsa"
- data: "vpp-2n-tx2-curr-iter"
- include:
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Udir-ndrpdr.imix-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Udir-ndrpdr.imix-.t.c-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Udir-ndrpdr.imix-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-ndrpdr"
- layout:
- title: "2n-tx2-xl710-imix-ipsec-base-scale-sw-cbc-dpdk-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-tx2-xl710-1518b-ipsec-base-scale-sw-gcm-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-1518b-ipsec-base-scale-sw-gcm-dpdk-{test_type}-tsa"
- data: "vpp-2n-tx2-curr-iter"
- include:
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Gcm-Udir-ndrpdr.1518B-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Udir-ndrpdr.1518B-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Gcm-Udir-ndrpdr.1518B-.t.c-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Udir-ndrpdr.1518B-.t.c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Gcm-Udir-ndrpdr.1518B-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Udir-ndrpdr.1518B-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr"
- layout:
- title: "2n-tx2-xl710-1518b-ipsec-base-scale-sw-gcm-dpdk-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-tx2-xl710-imix-ipsec-base-scale-sw-gcm-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-imix-ipsec-base-scale-sw-gcm-dpdk-{test_type}-tsa"
- data: "vpp-2n-tx2-curr-iter"
- include:
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Gcm-Udir-ndrpdr.imix-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Udir-ndrpdr.imix-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Gcm-Udir-ndrpdr.imix-.t.c-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Udir-ndrpdr.imix-.t.c-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Gcm-Udir-ndrpdr.imix-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Udir-ndrpdr.imix-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir-ndrpdr"
- layout:
- title: "2n-tx2-xl710-imix-ipsec-base-scale-sw-gcm-dpdk-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-tx2-xl710-64b-ip4routing-base-scale-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-ip4routing-base-scale-dpdk-{test_type}-tsa"
- data: "vpp-2n-tx2-curr-iter"
- include:
- - "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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-tx2-xl710-64b-ip4routing-base-scale-af_xdp-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-ip4routing-base-scale-af_xdp-{test_type}-tsa"
- data: "vpp-2n-tx2-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-af-xdp-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-af-xdp-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-af-xdp-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-af-xdp-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-af-xdp-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-af-xdp-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-af-xdp-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-af-xdp-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-ip4routing-base-scale-af_xdp-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-tx2-xl710-64b-features-ip4routing-base-scale-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-features-ip4routing-base-scale-dpdk-{test_type}-tsa"
- data: "vpp-2n-tx2-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-tx2-xl710-78b-ip6routing-base-scale-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-78b-ip6routing-base-scale-dpdk-{test_type}-tsa"
- data: "vpp-2n-tx2-curr-iter"
- include:
- - "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-78b-ip6routing-base-scale-dpdk-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-tx2-xl710-78b-ip6routing-base-scale-af_xdp-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-78b-ip6routing-base-scale-af_xdp-{test_type}-tsa"
- data: "vpp-2n-tx2-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-af-xdp-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-af-xdp-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-af-xdp-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-af-xdp-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-af-xdp-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-af-xdp-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-af-xdp-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-af-xdp-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-tx2-xl710-78b-ip6routing-base-scale-af_xdp-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-tx2-xl710-64b-l2switching-base-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-l2switching-base-dpdk-{test_type}-tsa"
- data: "vpp-2n-tx2-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-tx2-xl710-64b-l2switching-scale-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-l2switching-scale-dpdk-{test_type}-tsa"
- data: "vpp-2n-tx2-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-tx2-xl710-64b-l2switching-scale-af_xdp-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-l2switching-scale-af_xdp-{test_type}-tsa"
- data: "vpp-2n-tx2-curr-iter"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-af-xdp-Eth-L2Patch-Ndrpdr.64B-.t.c-af-xdp-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-af-xdp-Eth-L2Xcbase-Ndrpdr.64B-.t.c-af-xdp-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-af-xdp-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-af-xdp-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-af-xdp-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-.t.c-af-xdp-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-af-xdp-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-.t.c-af-xdp-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-af-xdp-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-.t.c-af-xdp-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-l2switching-scale-af_xdp-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-tx2-xl710-64b-features-l2switching-base-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-features-l2switching-base-dpdk-{test_type}-tsa"
- data: "vpp-2n-tx2-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-tx2-xl710-64b-memif-base-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-tx2-xl710-64b-memif-base-dpdk-{test_type}-tsa"
- data: "vpp-2n-tx2-curr-iter"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-40Ge2P1Xl710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-40Ge2P1Xl710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-.t.c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-memif-base-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-################################################################################
-
-# Packet Throughput - DPDK
-
-# 2n-skx
-
-- type: "plot"
- title: "DPDK Throughput: 2n-skx-xxv710-64b-{core}-base-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-skx-xxv710-64b-{core}-base-{test_type}"
- data: "dpdk-2n-skx-curr-iter"
- core: ["2t1c", "4t2c"]
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-{core}-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-{core}-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-{core}-base-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 2n-skx-x710-64b-{core}-base-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-skx-x710-64b-{core}-base-{test_type}"
- data: "dpdk-2n-skx-curr-iter"
- core: ["2t1c", "4t2c"]
- include:
- - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-{core}-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-{core}-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-skx-x710-64b-{core}-base-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Speedup: 2n-skx-xxv710-64b-base-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-skx-xxv710-64b-base-{test_type}-tsa"
- data: "dpdk-2n-skx-curr-iter"
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-.t.c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-.t.c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-skx-xxv710-64b-base-{test_type}-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-skx-x710-64b-base-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-skx-x710-64b-base-{test_type}-tsa"
- data: "dpdk-2n-skx-curr-iter"
- include:
- - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-.t.c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-.t.c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-skx-x710-64b-base-{test_type}-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-# 3n-skx
-
-- type: "plot"
- title: "DPDK Throughput: 3n-skx-xxv710-64b-{core}-base-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,DPDK]}/3n-skx-xxv710-64b-{core}-base-{test_type}"
- data: "dpdk-3n-skx-curr-iter"
- core: ["2t1c", "4t2c"]
- include:
- - "tests.dpdk.perf.25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-{core}-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-{core}-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-{core}-base-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 3n-skx-x710-64b-{core}-base-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,DPDK]}/3n-skx-x710-64b-{core}-base-{test_type}"
- data: "dpdk-3n-skx-curr-iter"
- core: ["2t1c", "4t2c"]
- include:
- - "tests.dpdk.perf.10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-{core}-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-{core}-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "3n-skx-x710-64b-{core}-base-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Speedup: 3n-skx-xxv710-64b-base-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,DPDK]}/3n-skx-xxv710-64b-base-{test_type}-tsa"
- data: "dpdk-3n-skx-curr-iter"
- include:
- - "tests.dpdk.perf.25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-.t.c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-.t.c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "3n-skx-xxv710-64b-base-{test_type}-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-skx-x710-64b-base-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,DPDK]}/3n-skx-x710-64b-base-{test_type}-tsa"
- data: "dpdk-3n-skx-curr-iter"
- include:
- - "tests.dpdk.perf.10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-.t.c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-.t.c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "3n-skx-x710-64b-base-{test_type}-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-# 3n-tsh-x520
-
-- type: "plot"
- title: "DPDK Throughput: 3n-tsh-x520-64b-{core}-base-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,DPDK]}/3n-tsh-x520-64b-{core}-base-{test_type}"
- data: "dpdk-3n-tsh-curr-iter"
- core: ["1t1c", "2t2c"]
- include:
- - "tests.dpdk.perf.10ge2p1x520-eth-l2xcbase-testpmd-ndrpdr.64b-{core}-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.10ge2p1x520-ethip4-ip4base-l3fwd-ndrpdr.64b-{core}-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-{core}-base-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Speedup: 3n-tsh-x520-64b-base-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,DPDK]}/3n-tsh-x520-64b-base-{test_type}-tsa"
- data: "dpdk-3n-tsh-curr-iter"
- include:
- - "tests.dpdk.perf.10ge2p1x520-eth-l2xcbase-testpmd-ndrpdr.64b-.t.c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.10ge2p1x520-ethip4-ip4base-l3fwd-ndrpdr.64b-.t.c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "3n-tsh-x520-64b-base-{test_type}-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-# 3n-alt-xl710
-
-- type: "plot"
- title: "DPDK Throughput: 3n-alt-xl710-64b-{core}-base-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,DPDK]}/3n-alt-xl710-64b-{core}-base-{test_type}"
- data: "dpdk-3n-alt-curr-iter"
- core: ["1t1c", "2t2c"]
- include:
- - "tests.dpdk.perf.40ge2p1xl710-eth-l2xcbase-testpmd-ndrpdr.64b-{core}-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.40ge2p1xl710-ethip4-ip4base-l3fwd-ndrpdr.64b-{core}-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "3n-alt-xl710-64b-{core}-base-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Speedup: 3n-alt-xl710-64b-base-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,DPDK]}/3n-alt-xl710-64b-base-{test_type}-tsa"
- data: "dpdk-3n-alt-curr-iter"
- include:
- - "tests.dpdk.perf.40ge2p1xl710-eth-l2xcbase-testpmd-ndrpdr.64b-.t.c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.40ge2p1xl710-ethip4-ip4base-l3fwd-ndrpdr.64b-.t.c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "3n-alt-xl710-64b-base-{test_type}-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-# 2n-tx2-xl710
-
-- type: "plot"
- title: "DPDK Throughput: 2n-tx2-xl710-64b-{core}-base-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-tx2-xl710-64b-{core}-base-{test_type}"
- data: "dpdk-2n-tx2-curr-iter"
- core: ["1t1c", "2t2c"]
- include:
- - "tests.dpdk.perf.2N1L-40ge2p1xl710-eth-l2xcbase-testpmd-ndrpdr.64b-{core}-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2N1L-40ge2p1xl710-ethip4-ip4base-l3fwd-ndrpdr.64b-{core}-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-{core}-base-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Speedup: 2n-tx2-xl710-64b-base-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-tx2-xl710-64b-base-{test_type}-tsa"
- data: "dpdk-2n-tx2-curr-iter"
- include:
- - "tests.dpdk.perf.2N1L-40ge2p1xl710-eth-l2xcbase-testpmd-ndrpdr.64b-.t.c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2N1L-40ge2p1xl710-ethip4-ip4base-l3fwd-ndrpdr.64b-.t.c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-tx2-xl710-64b-base-{test_type}-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-################################################################################
-### 2n-clx ###
-################################################################################
-
-# Packet Throughput
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-{core}-memif-base-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-{core}-memif-base-avf-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-{core}-memif-base-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-{core}-memif-base-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-{core}-memif-base-dpdk-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-{core}-memif-base-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-{core}-rdma-l2-eth-2memif-1dcr-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-{core}-rdma-l2-eth-2memif-1dcr-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-rdma-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-rdma-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-rdma-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-rdma-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-{core}-rdma-l2-eth-2memif-1dcr-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-x710-64b-{core}-ip4routing-base-scale-[avf,dpdk,af_xdp]-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-64b-{core}-ip4routing-base-scale-[avf,dpdk,af_xdp]-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-{core}-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-{core}-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-{core}-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-{core}-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-af-xdp-Ethip4-Ip4Base-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4base-ndrpdr"
- layout:
- title: "2n-clx-x710-64b-{core}-ip4routing-base-scale-[avf,dpdk,af_xdp]-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-{core}-ip4routing-base-scale-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-{core}-ip4routing-base-scale-avf-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-{core}-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-{core}-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-{core}-avf-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-{core}-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-{core}-avf-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-{core}-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-{core}-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-{core}-ip4routing-base-scale-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-{core}-ip4routing-base-scale-af_xdp-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-{core}-ip4routing-base-scale-af_xdp-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Base-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale20K-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale200K-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale2M-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-{core}-ip4routing-base-scale-af_xdp-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-{core}-ip4routing-base-scale-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-{core}-ip4routing-base-scale-dpdk-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Dot1Q-Ip4Base-Ndrpdr.64B-{core}-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-{core}-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-{core}-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-{core}-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-{core}-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-{core}-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-{core}-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-{core}-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-{core}-ip4routing-base-scale-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-{core}-features-ip4routing-base-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-{core}-features-ip4routing-base-avf-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-{core}-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-{core}-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-{core}-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-{core}-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-{core}-avf-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-{core}-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-{core}-features-ip4routing-base-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-{core}-nat44det-ip4routing-stl-bidir-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-{core}-nat44det-ip4routing-stl-bidir-avf-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.64b-{core}-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.64b-{core}-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.64b-{core}-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.64b-{core}-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.64b-{core}-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-{core}-nat44det-ip4routing-stl-bidir-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-stl-unidir-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-stl-unidir-avf-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-stl-unidir-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-cps-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-cps-avf-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-cps-avf-{test_type}"
- layout: "plot-cps"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-cps-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-cps-avf-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-cps-avf-{test_type}"
- layout: "plot-cps"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-100b-{core}-nat44ed-ip4routing-tcp-tput-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-100b-{core}-nat44ed-ip4routing-tcp-tput-avf-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Ip4Base-H1024-P63-S64512-Tput-Ndrpdr.100B-{core}-avf-ethip4tcp-ip4base-h1024-p63-s64512-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Ip4Base-H16384-P63-S1032192-Tput-Ndrpdr.100B-{core}-avf-ethip4tcp-ip4base-h16384-p63-s1032192-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Ip4Base-H65536-P63-S4128768-Tput-Ndrpdr.100B-{core}-avf-ethip4tcp-ip4base-h65536-p63-s4128768-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H1024-P63-S64512-Tput-Ndrpdr.100B-{core}-avf-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H16384-P63-S1032192-Tput-Ndrpdr.100B-{core}-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H65536-P63-S4128768-Tput-Ndrpdr.100B-{core}-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr"
- layout:
- title: "2n-clx-xxv710-100b-{core}-nat44ed-ip4routing-tcp-tput-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-100b-{core}-nat44ed-ip4routing-udp-tput-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-100b-{core}-nat44ed-ip4routing-udp-tput-avf-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H1024-P63-S64512-Tput-Ndrpdr.100B-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H16384-P63-S1032192-Tput-Ndrpdr.100B-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H65536-P63-S4128768-Tput-Ndrpdr.100B-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr"
- layout:
- title: "2n-clx-xxv710-100b-{core}-nat44ed-ip4routing-udp-tput-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-{core}-rdma-ip4base-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-{core}-rdma-ip4base-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip4Base-Ndrpdr.64B-{core}-rdma-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Ndrpdr.64B-{core}-rdma-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Ndrpdr.64B-{core}-rdma-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-{core}-rdma-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Ndrpdr.64B-{core}-rdma-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-{core}-rdma-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Ndrpdr.64B-{core}-rdma-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-{core}-rdma-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-{core}-rdma-ip4base-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-{core}-rdma-ethip4-features-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-{core}-rdma-ethip4-features-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-{core}-rdma-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-{core}-rdma-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-{core}-rdma-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-{core}-rdma-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-{core}-rdma-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-{core}-rdma-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-{core}-rdma-ethip4-features-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-{core}-ethip4--ethip4udpgeneve-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-{core}-ethip4--ethip4udpgeneve-avf-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-1Tun-Ip4Base-Ndrpdr.64B-{core}-avf-ethip4--ethip4udpgeneve-1tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-4Tun-Ip4Base-Ndrpdr.64B-{core}-avf-ethip4--ethip4udpgeneve-4tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-16Tun-Ip4Base-Ndrpdr.64B-{core}-avf-ethip4--ethip4udpgeneve-16tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-64Tun-Ip4Base-Ndrpdr.64B-{core}-avf-ethip4--ethip4udpgeneve-64tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-256Tun-Ip4Base-Ndrpdr.64B-{core}-avf-ethip4--ethip4udpgeneve-256tun-ip4base-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-{core}-ethip4--ethip4udpgeneve-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-x710-78b-{core}-ip6routing-base-scale-[avf,dpdk,af_xdp]-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-78b-{core}-ip6routing-base-scale-[avf,dpdk,af_xdp]-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-{core}-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-{core}-avf-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-{core}-avf-ethip6-ip6scale2m-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-{core}-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Scale2M-Ndrpdr.78B-{core}-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-af-xdp-Ethip6-Ip6Base-Ndrpdr.78B-{core}-af-xdp-ethip6-ip6base-ndrpdr"
- layout:
- title: "2n-clx-x710-78b-{core}-ip6routing-base-scale-[avf,dpdk,af_xdp]-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-78b-{core}-ip6routing-base-scale-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-78b-{core}-ip6routing-base-scale-avf-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-{core}-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-{core}-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-rnd-Ndrpdr.78B-{core}-avf-ethip6-ip6scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-{core}-avf-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-rnd-Ndrpdr.78B-{core}-avf-ethip6-ip6scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-{core}-avf-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-{core}-avf-ethip6-ip6scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-78b-{core}-ip6routing-base-scale-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-78b-{core}-ip6routing-base-scale-af_xdp-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-78b-{core}-ip6routing-base-scale-af_xdp-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Base-Ndrpdr.78B-{core}-af-xdp-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale20K-Ndrpdr.78B-{core}-af-xdp-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale20K-rnd-Ndrpdr.78B-{core}-af-xdp-ethip6-ip6scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale200K-Ndrpdr.78B-{core}-af-xdp-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale200K-rnd-Ndrpdr.78B-{core}-af-xdp-ethip6-ip6scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale2M-Ndrpdr.78B-{core}-af-xdp-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-{core}-af-xdp-ethip6-ip6scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-78b-{core}-ip6routing-base-scale-af_xdp-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-78b-{core}-ip6routing-base-scale-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-78b-{core}-ip6routing-base-scale-dpdk-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Dot1Q-Ip6Base-Ndrpdr.78B-{core}-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-{core}-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-{core}-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-rnd-Ndrpdr.78B-{core}-ethip6-ip6scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-{core}-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-rnd-Ndrpdr.78B-{core}-ethip6-ip6scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-{core}-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-{core}-ethip6-ip6scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-78b-{core}-ip6routing-base-scale-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-78b-{core}-rdma-ip6routing-base-scale-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-78b-{core}-rdma-ip6routing-base-scale-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip6Base-Ndrpdr.78B-{core}-rdma-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Base-Ndrpdr.78B-{core}-rdma-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale20K-Ndrpdr.78B-{core}-rdma-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale20K-rnd-Ndrpdr.78B-{core}-rdma-ethip6-ip6scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale200K-Ndrpdr.78B-{core}-rdma-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale200K-rnd-Ndrpdr.78B-{core}-rdma-ethip6-ip6scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-Ndrpdr.78B-{core}-rdma-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-{core}-rdma-ethip6-ip6scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-cx556a-78b-{core}-rdma-ip6routing-base-scale-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-x710-64b-{core}-l2switching-base-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-64b-{core}-l2switching-base-avf-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-clx-x710-64b-{core}-l2switching-base-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-{core}-l2switching-base-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-{core}-l2switching-base-avf-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Ndrpdr.64B-{core}-avf-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-{core}-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-{core}-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-{core}-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-{core}-l2switching-base-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-{core}-l2switching-base-scale-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-{core}-l2switching-base-scale-avf-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-{core}-l2switching-base-scale-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-{core}-l2switching-base-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-{core}-l2switching-base-dpdk-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Ndrpdr.64B-{core}-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-{core}-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-{core}-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-{core}-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-{core}-l2switching-base-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-{core}-l2switching-base-scale-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-{core}-l2switching-base-scale-dpdk-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-{core}-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-{core}-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-{core}-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-{core}-l2switching-base-scale-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-{core}-rdma-l2switching-base-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-{core}-rdma-l2switching-base-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Ndrpdr.64B-{core}-rdma-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-{core}-rdma-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Patch-Ndrpdr.64B-{core}-rdma-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Ndrpdr.64B-{core}-rdma-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-rdma-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-{core}-rdma-l2switching-base-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-{core}-rdma-l2switching-scale-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-{core}-rdma-l2switching-scale-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-rdma-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-{core}-rdma-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-{core}-rdma-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-{core}-rdma-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-{core}-rdma-l2switching-scale-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-{core}-vhost-base-[avf,dpdk]-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-{core}-vhost-base-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-{core}-vhost-base-[avf,dpdk]-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-xxv710-64b-{core}-vhost-base-[avf,dpdk]-vpp-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-{core}-vhost-base-vpp-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-{core}-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-{core}-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-{core}-vhost-base-[avf,dpdk]-vpp-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-cx556a-64b-{core}-rdma-l2-vhost-base-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-{core}-rdma-l2-vhost-base-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-{core}-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-{core}-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "2n-clx-cx556a-64b-{core}-rdma-l2-vhost-base-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-e810cq-64b-{core}-memif-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-e810cq-64b-{core}-memif-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-ndrpdr.64B-{core}-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1E810Cq-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-ndrpdr.64B-{core}-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1E810Cq-Eth-L2Xcbase-Eth-2Memif-1Dcr-ndrpdr.64B-{core}-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1E810Cq-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1E810Cq-Ethip4-Ip4Base-Eth-2Memif-1Dcr-ndrpdr.64B-{core}-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-clx-e810cq-64b-{core}-memif-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-e810cq-64b-{core}-ip4-base-scale-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-e810cq-64b-{core}-ip4-base-scale-avf-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Avf-Ethip4-Ip4Base-ndrpdr.64B-{core}-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Avf-Ethip4-Ip4Scale20K-ndrpdr.64B-{core}-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Avf-Ethip4-Ip4Scale20K-Rnd-ndrpdr.64B-{core}-avf-ethip4-ip4scale20k-rnd-ndrpdr"
- layout:
- title: "2n-clx-e810cq-64b-{core}-ip4-base-scale-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-e810cq-64b-{core}-ip4-base-scale-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-e810cq-64b-{core}-ip4-base-scale-dpdk-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Ethip4-Ip4Base-ndrpdr.64B-{core}-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Ethip4-Ip4Scale20K-ndrpdr.64B-{core}-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Ethip4-Ip4Scale20K-Rnd-ndrpdr.64B-{core}-ethip4-ip4scale20k-rnd-ndrpdr"
- layout:
- title: "2n-clx-e810cq-64b-{core}-ip4-base-scale-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-e810cq-64b-{core}-ip4-features-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-e810cq-64b-{core}-ip4-features-avf-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-ndrpdr.64B-{core}-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-ndrpdr.64B-{core}-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-ndrpdr.64B-{core}-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-ndrpdr.64B-{core}-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- layout:
- title: "2n-clx-e810cq-64b-{core}-ip4-features-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-e810cq-78b-{core}-ip6-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-e810cq-78b-{core}-ip6-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1E810Cq-Avf-Ethip6-Ip6Base-ndrpdr.78B-{core}-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1E810Cq-Avf-Ethip6-Ip6Scale20K-ndrpdr.78B-{core}-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1E810Cq-Avf-Ethip6-Ip6Scale20K-Rnd-ndrpdr.78B-{core}-avf-ethip6-ip6scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1E810Cq-Ethip6-Ip6Base-ndrpdr.78B-{core}-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1E810Cq-Ethip6-Ip6Scale20K-ndrpdr.78B-{core}-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1E810Cq-Ethip6-Ip6Scale20K-Rnd-ndrpdr.78B-{core}-ethip6-ip6scale20k-rnd-ndrpdr"
- layout:
- title: "2n-clx-e810cq-78b-{core}-ip6-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-e810cq-64b-{core}-l2-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-e810cq-64b-{core}-l2-avf-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Avf-Dot1Q-L2Bdbasemaclrn-ndrpdr.64B-{core}-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Patch-ndrpdr.64B-{core}-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Xcbase-ndrpdr.64B-{core}-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Bdbasemaclrn-ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Bdscale10Kmaclrn-ndrpdr.64B-{core}-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Bdscale100Kmaclrn-ndrpdr.64B-{core}-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Bdscale1Mmaclrn-ndrpdr.64B-{core}-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-e810cq-64b-{core}-l2-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-e810cq-64b-{core}-l2-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-e810cq-64b-{core}-l2-dpdk-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Dot1Q-L2Bdbasemaclrn-ndrpdr.64B-{core}-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Eth-L2Patch-ndrpdr.64B-{core}-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Eth-L2Xcbase-ndrpdr.64B-{core}-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Eth-L2Bdbasemaclrn-ndrpdr.64B-{core}-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Eth-L2Bdscale10Kmaclrn-ndrpdr.64B-{core}-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Eth-L2Bdscale100Kmaclrn-ndrpdr.64B-{core}-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Eth-L2Bdscale1Mmaclrn-ndrpdr.64B-{core}-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-e810cq-64b-{core}-l2-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-clx-e810cq-64b-{core}-vhost-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-e810cq-64b-{core}-vhost-{test_type}"
- data: "vpp-2n-clx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1E810Cq-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1E810Cq-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "2n-clx-e810cq-64b-{core}-vhost-{test_type}"
- layout: "plot-throughput"
-
-################################################################################
-
-# Packet Speedup
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-memif-base-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-memif-base-avf-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-memif-base-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-memif-base-dpdk-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-l2-eth-2memif-1dcr-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-l2-eth-2memif-1dcr-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-x710-64b-ip4routing-base-scale-[avf,dpdk,af_xdp]-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-64b-ip4routing-base-scale-[avf,dpdk,af_xdp]-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- 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-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-af-xdp-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-af-xdp-ethip4-ip4base-ndrpdr"
- layout:
- title: "2n-clx-x710-64b-ip4routing-base-scale-[avf,dpdk,af_xdp]-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-ip4routing-base-scale-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-ip4routing-base-scale-avf-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- 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-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale20k-rnd-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-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-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-base-scale-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-ip4routing-base-scale-af_xdp-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-ip4routing-base-scale-af_xdp-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-af-xdp-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale20K-Ndrpdr.64B-.t.c-af-xdp-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-af-xdp-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-af-xdp-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-af-xdp-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-af-xdp-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-.t.c-af-xdp-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-ip4routing-base-scale-af_xdp-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-ip4routing-base-scale-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-ip4routing-base-scale-dpdk-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- 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-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-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-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-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-base-scale-dpdk-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-features-ip4routing-base-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-features-ip4routing-base-avf-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis-cps"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis-cps"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-100b-nat44ed-ip4routing-tcp-tput-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-100b-nat44ed-ip4routing-tcp-tput-avf-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Ip4Base-H1024-P63-S64512-Tput-Ndrpdr.100B-.t.c-avf-ethip4tcp-ip4base-h1024-p63-s64512-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Ip4Base-H16384-P63-S1032192-Tput-Ndrpdr.100B-.t.c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Ip4Base-H65536-P63-S4128768-Tput-Ndrpdr.100B-.t.c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H1024-P63-S64512-Tput-Ndrpdr.100B-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H16384-P63-S1032192-Tput-Ndrpdr.100B-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H65536-P63-S4128768-Tput-Ndrpdr.100B-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr"
- layout:
- title: "2n-clx-xxv710-100b-nat44ed-ip4routing-tcp-tput-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-100b-nat44ed-ip4routing-udp-tput-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-100b-nat44ed-ip4routing-udp-tput-avf-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H1024-P63-S64512-Tput-Ndrpdr.100B-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H16384-P63-S1032192-Tput-Ndrpdr.100B-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H65536-P63-S4128768-Tput-Ndrpdr.100B-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr"
- layout:
- title: "2n-clx-xxv710-100b-nat44ed-ip4routing-udp-tput-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-ip4base-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-ip4base-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- 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"
- - "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-ip4base-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-ethip4-features-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-ethip4-features-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-ethip4--ethip4udpgeneve-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-ethip4--ethip4udpgeneve-avf-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-1Tun-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4--ethip4udpgeneve-1tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-4Tun-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4--ethip4udpgeneve-4tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-16Tun-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4--ethip4udpgeneve-16tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-64Tun-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4--ethip4udpgeneve-64tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-256Tun-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4--ethip4udpgeneve-256tun-ip4base-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-ethip4--ethip4udpgeneve-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-x710-78b-ip6routing-base-scale-[avf,dpdk,af_xdp]-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-78b-ip6routing-base-scale-[avf,dpdk,af_xdp]-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- include:
- - "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-Avf-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale2m-rnd-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"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-af-xdp-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-af-xdp-ethip6-ip6base-ndrpdr"
- layout:
- title: "2n-clx-x710-78b-ip6routing-base-scale-[avf,dpdk,af_xdp]-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-78b-ip6routing-base-scale-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-78b-ip6routing-base-scale-avf-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- include:
- - "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-Ip6Scale20K-rnd-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale20k-rnd-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-Ip6Scale200K-rnd-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-78b-ip6routing-base-scale-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-78b-ip6routing-base-scale-af_xdp-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-78b-ip6routing-base-scale-af_xdp-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-af-xdp-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale20K-Ndrpdr.78B-.t.c-af-xdp-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale20K-rnd-Ndrpdr.78B-.t.c-af-xdp-ethip6-ip6scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-af-xdp-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale200K-rnd-Ndrpdr.78B-.t.c-af-xdp-ethip6-ip6scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-af-xdp-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-.t.c-af-xdp-ethip6-ip6scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-78b-ip6routing-base-scale-af_xdp-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-78b-ip6routing-base-scale-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-78b-ip6routing-base-scale-dpdk-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- 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-Ip6Scale20K-rnd-Ndrpdr.78B-.t.c-ethip6-ip6scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-rnd-Ndrpdr.78B-.t.c-ethip6-ip6scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-78b-ip6routing-base-scale-dpdk-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-78b-rdma-ip6routing-base-scale-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-78b-rdma-ip6routing-base-scale-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- 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-Ip6Scale20K-rnd-Ndrpdr.78B-.t.c-rdma-ethip6-ip6scale20k-rnd-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-Ip6Scale200K-rnd-Ndrpdr.78B-.t.c-rdma-ethip6-ip6scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-rdma-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-.t.c-rdma-ethip6-ip6scale2m-rnd-ndrpdr"
- layout:
- title: "2n-clx-cx556a-78b-rdma-ip6routing-base-scale-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-x710-64b-l2switching-base-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-x710-64b-l2switching-base-avf-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-clx-x710-64b-l2switching-base-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-l2switching-base-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-l2switching-base-avf-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-l2switching-base-scale-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-l2switching-base-scale-avf-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-l2switching-base-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-l2switching-base-dpdk-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-l2switching-base-scale-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-l2switching-base-scale-dpdk-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-l2switching-base-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-l2switching-base-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-l2switching-scale-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-l2switching-scale-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-vhost-base-[avf,dpdk]-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-vhost-base-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- include:
- - "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-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"
- layout:
- title: "2n-clx-xxv710-64b-vhost-base-[avf,dpdk]-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-vhost-base-[avf,dpdk]-vpp-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-xxv710-64b-vhost-base-vpp-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- include:
- - "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-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"
- layout:
- title: "2n-clx-xxv710-64b-vhost-base-[avf,dpdk]-vpp-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-cx556a-64b-rdma-l2-vhost-base-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-cx556a-64b-rdma-l2-vhost-base-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- include:
- - "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"
- - "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-base-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-e810cq-64b-memif-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-e810cq-64b-memif-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-ndrpdr.64B-.t.c-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1E810Cq-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-ndrpdr.64B-.t.c-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1E810Cq-Eth-L2Xcbase-Eth-2Memif-1Dcr-ndrpdr.64B-.t.c-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1E810Cq-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1E810Cq-Ethip4-Ip4Base-Eth-2Memif-1Dcr-ndrpdr.64B-.t.c-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-clx-e810cq-64b-memif-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-e810cq-64b-ip4-base-scale-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-e810cq-64b-ip4-base-scale-avf-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Avf-Ethip4-Ip4Base-ndrpdr.64B-.t.c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Avf-Ethip4-Ip4Scale20K-ndrpdr.64B-.t.c-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Avf-Ethip4-Ip4Scale20K-Rnd-ndrpdr.64B-.t.c-avf-ethip4-ip4scale20k-rnd-ndrpdr"
- layout:
- title: "2n-clx-e810cq-64b-ip4-base-scale-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-e810cq-64b-ip4-base-scale-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-e810cq-64b-ip4-base-scale-dpdk-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Ethip4-Ip4Base-ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Ethip4-Ip4Scale20K-ndrpdr.64B-.t.c-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Ethip4-Ip4Scale20K-Rnd-ndrpdr.64B-.t.c-ethip4-ip4scale20k-rnd-ndrpdr"
- layout:
- title: "2n-clx-e810cq-64b-ip4-base-scale-dpdk-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-e810cq-64b-ip4-features-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-e810cq-64b-ip4-features-avf-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-ndrpdr.64B-.t.c-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- layout:
- title: "2n-clx-e810cq-64b-ip4-features-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-e810cq-78b-ip6-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-e810cq-78b-ip6-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1E810Cq-Avf-Ethip6-Ip6Base-ndrpdr.78B-.t.c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1E810Cq-Avf-Ethip6-Ip6Scale20K-ndrpdr.78B-.t.c-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1E810Cq-Avf-Ethip6-Ip6Scale20K-Rnd-ndrpdr.78B-.t.c-avf-ethip6-ip6scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1E810Cq-Ethip6-Ip6Base-ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1E810Cq-Ethip6-Ip6Scale20K-ndrpdr.78B-.t.c-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1E810Cq-Ethip6-Ip6Scale20K-Rnd-ndrpdr.78B-.t.c-ethip6-ip6scale20k-rnd-ndrpdr"
- layout:
- title: "2n-clx-e810cq-78b-ip6-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-e810cq-64b-l2-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-e810cq-64b-l2-avf-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Avf-Dot1Q-L2Bdbasemaclrn-ndrpdr.64B-.t.c-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Patch-ndrpdr.64B-.t.c-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Xcbase-ndrpdr.64B-.t.c-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Bdbasemaclrn-ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Bdscale10Kmaclrn-ndrpdr.64B-.t.c-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Bdscale100Kmaclrn-ndrpdr.64B-.t.c-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Bdscale1Mmaclrn-ndrpdr.64B-.t.c-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-e810cq-64b-l2-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-e810cq-64b-l2-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-e810cq-64b-l2-dpdk-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Dot1Q-L2Bdbasemaclrn-ndrpdr.64B-.t.c-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Eth-L2Patch-ndrpdr.64B-.t.c-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Eth-L2Xcbase-ndrpdr.64B-.t.c-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Eth-L2Bdbasemaclrn-ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Eth-L2Bdscale10Kmaclrn-ndrpdr.64B-.t.c-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Eth-L2Bdscale100Kmaclrn-ndrpdr.64B-.t.c-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Eth-L2Bdscale1Mmaclrn-ndrpdr.64B-.t.c-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-clx-e810cq-64b-l2-dpdk-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-e810cq-64b-vhost-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-e810cq-64b-vhost-{test_type}-tsa"
- data: "vpp-2n-clx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1E810Cq-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-100Ge2P1E810Cq-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1E810Cq-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "2n-clx-e810cq-64b-vhost-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-# 2n-icx
-
-- type: "plot"
- title: "Throughput: 2n-icx-xxv710-64b-{core}-memif-base-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-64b-{core}-memif-base-{test_type}"
- data: "vpp-2n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-ndrpdr.64B-{core}-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-ndrpdr.64B-{core}-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-ndrpdr.64B-{core}-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-ndrpdr.64B-{core}-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-icx-xxv710-64b-{core}-memif-base-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-icx-xxv710-64b-{core}-ip4routing-base-scale-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-64b-{core}-ip4routing-base-scale-avf-{test_type}"
- data: "vpp-2n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-ndrpdr.64B-{core}-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-ndrpdr.64B-{core}-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-ndrpdr.64B-{core}-avf-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-ndrpdr.64B-{core}-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-ndrpdr.64B-{core}-avf-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-ndrpdr.64B-{core}-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-ndrpdr.64B-{core}-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-icx-xxv710-64b-{core}-ip4routing-base-scale-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-icx-xxv710-64b-{core}-ip4routing-base-scale-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-64b-{core}-ip4routing-base-scale-dpdk-{test_type}"
- data: "vpp-2n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-ndrpdr.64B-{core}-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-ndrpdr.64B-{core}-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-ndrpdr.64B-{core}-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-ndrpdr.64B-{core}-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-ndrpdr.64B-{core}-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-ndrpdr.64B-{core}-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-ndrpdr.64B-{core}-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-icx-xxv710-64b-{core}-ip4routing-base-scale-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-icx-xxv710-64b-{core}-ip4routing-base-scale-af_xdp-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-64b-{core}-ip4routing-base-scale-af_xdp-{test_type}"
- data: "vpp-2n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Af-Xdp-Ethip4-Ip4Base-ndrpdr.64B-{core}-af-xdp-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Af-Xdp-Ethip4-Ip4Scale20K-ndrpdr.64B-{core}-af-xdp-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Af-Xdp-Ethip4-Ip4Scale20K-Rnd-ndrpdr.64B-{core}-af-xdp-ethip4-ip4scale20k-rnd-ndrpdr"
- layout:
- title: "2n-icx-xxv710-64b-{core}-ip4routing-base-scale-af_xdp-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-icx-xxv710-64b-{core}-features-ip4routing-base-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-64b-{core}-features-ip4routing-base-avf-{test_type}"
- data: "vpp-2n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-ndrpdr.64B-{core}-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-ndrpdr.64B-{core}-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-ndrpdr.64B-{core}-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-ndrpdr.64B-{core}-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- layout:
- title: "2n-icx-xxv710-64b-{core}-features-ip4routing-base-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-icx-xxv710-64b-{core}-nat44det-ip4routing-stl-bidir-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-64b-{core}-nat44det-ip4routing-stl-bidir-avf-{test_type}"
- data: "vpp-2n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Det-H1024-P63-S64512-ndrpdr.64B-{core}-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Det-H16384-P63-S1032192-ndrpdr.64B-{core}-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Det-H65536-P63-S4128758-ndrpdr.64B-{core}-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr"
- layout:
- title: "2n-icx-xxv710-64b-{core}-nat44det-ip4routing-stl-bidir-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-icx-xxv710-64b-{core}-nat44ed-ip4routing-stl-unidir-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-64b-{core}-nat44ed-ip4routing-stl-unidir-avf-{test_type}"
- data: "vpp-2n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H1024-P63-S64512-Udir-ndrpdr.64B-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr"
- layout:
- title: "2n-icx-xxv710-64b-{core}-nat44ed-ip4routing-stl-unidir-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-icx-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-cps-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-cps-avf-{test_type}"
- data: "vpp-2n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-H1024-P63-S64512-Cps-ndrpdr.64B-{core}-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-H16384-P63-S1032192-Cps-ndrpdr.64B-{core}-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-H65536-P63-S4128768-Cps-ndrpdr.64B-{core}-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H1024-P63-S64512-Cps-ndrpdr.64B-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H16384-P63-S1032192-Cps-ndrpdr.64B-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H65536-P63-S4128768-Cps-ndrpdr.64B-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- layout:
- title: "2n-icx-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-cps-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-icx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-cps-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-cps-avf-{test_type}"
- data: "vpp-2n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Ip4Base-H1024-P63-S64512-Cps-ndrpdr.64B-{core}-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Ip4Base-H16384-P63-S1032192-Cps-ndrpdr.64B-{core}-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Ip4Base-H65536-P63-S4128768-Cps-ndrpdr.64B-{core}-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H1024-P63-S64512-Cps-ndrpdr.64B-{core}-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H16384-P63-S1032192-Cps-ndrpdr.64B-{core}-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H65536-P63-S4128768-Cps-ndrpdr.64B-{core}-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- layout:
- title: "2n-icx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-cps-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-icx-xxv710-100b-{core}-nat44ed-ip4routing-udp-tput-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-100b-{core}-nat44ed-ip4routing-udp-tput-avf-{test_type}"
- data: "vpp-2n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H1024-P63-S64512-Tput-ndrpdr.100B-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H16384-P63-S1032192-Tput-ndrpdr.100B-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H65536-P63-S4128768-Tput-ndrpdr.100B-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr"
- layout:
- title: "2n-icx-xxv710-100b-{core}-nat44ed-ip4routing-udp-tput-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-icx-xxv710-100b-{core}-nat44ed-ip4routing-tcp-tput-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-100b-{core}-nat44ed-ip4routing-tcp-tput-avf-{test_type}"
- data: "vpp-2n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Ip4Base-H1024-P63-S64512-Tput-Ndrpdr.100B-{core}-avf-ethip4tcp-ip4base-h1024-p63-s64512-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Ip4Base-H16384-P63-S1032192-Tput-Ndrpdr.100B-{core}-avf-ethip4tcp-ip4base-h16384-p63-s1032192-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Ip4Base-H65536-P63-S4128768-Tput-Ndrpdr.100B-{core}-avf-ethip4tcp-ip4base-h65536-p63-s4128768-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H1024-P63-S64512-Tput-Ndrpdr.100B-{core}-avf-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H16384-P63-S1032192-Tput-Ndrpdr.100B-{core}-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H65536-P63-S4128768-Tput-Ndrpdr.100B-{core}-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr"
- layout:
- title: "2n-icx-xxv710-100b-{core}-nat44ed-ip4routing-tcp-tput-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-icx-xxv710-64b-{core}-ethip4--ethip4udpgeneve-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-64b-{core}-ethip4--ethip4udpgeneve-avf-{test_type}"
- data: "vpp-2n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-1Tun-Ip4Base-ndrpdr.64B-{core}-avf-ethip4--ethip4udpgeneve-1tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-4Tun-Ip4Base-ndrpdr.64B-{core}-avf-ethip4--ethip4udpgeneve-4tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-16Tun-Ip4Base-ndrpdr.64B-{core}-avf-ethip4--ethip4udpgeneve-16tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-64Tun-Ip4Base-ndrpdr.64B-{core}-avf-ethip4--ethip4udpgeneve-64tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-256Tun-Ip4Base-ndrpdr.64B-{core}-avf-ethip4--ethip4udpgeneve-256tun-ip4base-ndrpdr"
- layout:
- title: "2n-icx-xxv710-64b-{core}-ethip4--ethip4udpgeneve-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-icx-xxv710-78b-{core}-ip6routing-base-scale-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-78b-{core}-ip6routing-base-scale-avf-{test_type}"
- data: "vpp-2n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-ndrpdr.78B-{core}-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-ndrpdr.78B-{core}-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Rnd-ndrpdr.78B-{core}-avf-ethip6-ip6scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-ndrpdr.78B-{core}-avf-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Rnd-ndrpdr.78B-{core}-avf-ethip6-ip6scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-ndrpdr.78B-{core}-avf-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Rnd-ndrpdr.78B-{core}-avf-ethip6-ip6scale2m-rnd-ndrpdr"
- layout:
- title: "2n-icx-xxv710-78b-{core}-ip6routing-base-scale-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-icx-xxv710-78b-{core}-ip6routing-base-scale-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-78b-{core}-ip6routing-base-scale-dpdk-{test_type}"
- data: "vpp-2n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-ndrpdr.78B-{core}-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-ndrpdr.78B-{core}-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Rnd-ndrpdr.78B-{core}-ethip6-ip6scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-ndrpdr.78B-{core}-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Rnd-ndrpdr.78B-{core}-ethip6-ip6scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-ndrpdr.78B-{core}-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Rnd-ndrpdr.78B-{core}-ethip6-ip6scale2m-rnd-ndrpdr"
- layout:
- title: "2n-icx-xxv710-78b-{core}-ip6routing-base-scale-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-icx-xxv710-78b-{core}-ip6routing-base-scale-af_xdp-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-78b-{core}-ip6routing-base-scale-af_xdp-{test_type}"
- data: "vpp-2n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Af-Xdp-Ethip6-Ip6Base-ndrpdr.78B-{core}-af-xdp-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Af-Xdp-Ethip6-Ip6Scale20K-ndrpdr.78B-{core}-af-xdp-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Af-Xdp-Ethip6-Ip6Scale20K-Rnd-ndrpdr.78B-{core}-af-xdp-ethip6-ip6scale20k-rnd-ndrpdr"
- layout:
- title: "2n-icx-xxv710-78b-{core}-ip6routing-base-scale-af_xdp-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-icx-xxv710-64b-{core}-l2switching-base-scale-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-64b-{core}-l2switching-base-scale-avf-{test_type}"
- data: "vpp-2n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-ndrpdr.64B-{core}-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-ndrpdr.64B-{core}-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-ndrpdr.64B-{core}-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-ndrpdr.64B-{core}-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-ndrpdr.64B-{core}-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-ndrpdr.64B-{core}-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-icx-xxv710-64b-{core}-l2switching-base-scale-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-icx-xxv710-64b-{core}-l2switching-base-scale-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-64b-{core}-l2switching-base-scale-dpdk-{test_type}"
- data: "vpp-2n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-ndrpdr.64B-{core}-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-ndrpdr.64B-{core}-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-ndrpdr.64B-{core}-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-ndrpdr.64B-{core}-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-ndrpdr.64B-{core}-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-ndrpdr.64B-{core}-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-icx-xxv710-64b-{core}-l2switching-base-scale-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-icx-xxv710-64b-{core}-vhost-base-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-64b-{core}-vhost-base-{test_type}"
- data: "vpp-2n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-ndrpdr.64B-{core}-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-ndrpdr.64B-{core}-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "2n-icx-xxv710-64b-{core}-vhost-base-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Speedup: 2n-icx-xxv710-64b-memif-base-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-64b-memif-base-{test_type}-tsa"
- data: "vpp-2n-icx-curr-iter"
- 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-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"
- - "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-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-icx-xxv710-64b-memif-base-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-icx-xxv710-64b-ip4routing-base-scale-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-64b-ip4routing-base-scale-avf-{test_type}-tsa"
- data: "vpp-2n-icx-curr-iter"
- 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-Ip4Scale20K-Rnd-ndrpdr.64B-.t.c-avf-ethip4-ip4scale20k-rnd-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-Ip4Scale200K-Rnd-ndrpdr.64B-.t.c-avf-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-icx-xxv710-64b-ip4routing-base-scale-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-icx-xxv710-64b-ip4routing-base-scale-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-64b-ip4routing-base-scale-dpdk-{test_type}-tsa"
- data: "vpp-2n-icx-curr-iter"
- include:
- - "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-Ip4Scale20K-Rnd-ndrpdr.64B-.t.c-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-ndrpdr.64B-.t.c-ethip4-ip4scale200k-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-ndrpdr.64B-.t.c-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-ndrpdr.64B-.t.c-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-icx-xxv710-64b-ip4routing-base-scale-dpdk-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-icx-xxv710-64b-ip4routing-base-scale-af_xdp-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-64b-ip4routing-base-scale-af_xdp-{test_type}-tsa"
- data: "vpp-2n-icx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Af-Xdp-Ethip4-Ip4Base-ndrpdr.64B-.t.c-af-xdp-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Af-Xdp-Ethip4-Ip4Scale20K-ndrpdr.64B-.t.c-af-xdp-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Af-Xdp-Ethip4-Ip4Scale20K-Rnd-ndrpdr.64B-.t.c-af-xdp-ethip4-ip4scale20k-rnd-ndrpdr"
- layout:
- title: "2n-icx-xxv710-64b-ip4routing-base-scale-af_xdp-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-icx-xxv710-64b-features-ip4routing-base-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-64b-features-ip4routing-base-avf-{test_type}-tsa"
- data: "vpp-2n-icx-curr-iter"
- 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"
- layout:
- title: "2n-icx-xxv710-64b-features-ip4routing-base-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-icx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-{test_type}-tsa"
- data: "vpp-2n-icx-curr-iter"
- 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-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"
- layout:
- title: "2n-icx-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-icx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-{test_type}-tsa"
- data: "vpp-2n-icx-curr-iter"
- 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"
- layout:
- title: "2n-icx-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-icx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-{test_type}-tsa"
- data: "vpp-2n-icx-curr-iter"
- include:
- - "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-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-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-H1024-P63-S64512-Cps-ndrpdr.64B-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-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-Nat44Ed-H65536-P63-S4128768-Cps-ndrpdr.64B-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- layout:
- title: "2n-icx-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-icx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-{test_type}-tsa"
- data: "vpp-2n-icx-curr-iter"
- include:
- - "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-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-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-H1024-P63-S64512-Cps-ndrpdr.64B-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-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-Nat44Ed-H65536-P63-S4128768-Cps-ndrpdr.64B-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- layout:
- title: "2n-icx-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-icx-xxv710-100b-nat44ed-ip4routing-tcp-tput-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-100b-nat44ed-ip4routing-tcp-tput-avf-{test_type}-tsa"
- data: "vpp-2n-skx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Ip4Base-H1024-P63-S64512-Tput-Ndrpdr.100B-.t.c-avf-ethip4tcp-ip4base-h1024-p63-s64512-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Ip4Base-H16384-P63-S1032192-Tput-Ndrpdr.100B-.t.c-avf-ethip4tcp-ip4base-h16384-p63-s1032192-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Ip4Base-H65536-P63-S4128768-Tput-Ndrpdr.100B-.t.c-avf-ethip4tcp-ip4base-h65536-p63-s4128768-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H1024-P63-S64512-Tput-Ndrpdr.100B-.t.c-avf-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H16384-P63-S1032192-Tput-Ndrpdr.100B-.t.c-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H65536-P63-S4128768-Tput-Ndrpdr.100B-.t.c-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr"
- layout:
- title: "2n-icx-xxv710-100b-nat44ed-ip4routing-tcp-tput-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-icx-xxv710-100b-nat44ed-ip4routing-tcp-udp-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-100b-nat44ed-ip4routing-udp-tput-avf-{test_type}-tsa"
- data: "vpp-2n-icx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-Nat44Ed-H1024-P63-S64512-Tput-ndrpdr.100B-.t.c-avf-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-Nat44Ed-H16384-P63-S1032192-Tput-ndrpdr.100B-.t.c-avf-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-Nat44Ed-H65536-P63-S4128768-Tput-ndrpdr.100B-.t.c-avf-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr"
- layout:
- title: "2n-icx-xxv710-100b-nat44ed-ip4routing-udp-tput-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-icx-xxv710-64b-ethip4--ethip4udpgeneve-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-64b-ethip4--ethip4udpgeneve-avf-{test_type}-tsa"
- data: "vpp-2n-icx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-1Tun-Ip4Base-ndrpdr.64B-.t.c-avf-ethip4--ethip4udpgeneve-1tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-4Tun-Ip4Base-ndrpdr.64B-.t.c-avf-ethip4--ethip4udpgeneve-4tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-16Tun-Ip4Base-ndrpdr.64B-.t.c-avf-ethip4--ethip4udpgeneve-16tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-64Tun-Ip4Base-ndrpdr.64B-.t.c-avf-ethip4--ethip4udpgeneve-64tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-256Tun-Ip4Base-ndrpdr.64B-.t.c-avf-ethip4--ethip4udpgeneve-256tun-ip4base-ndrpdr"
- layout:
- title: "2n-icx-xxv710-64b-ethip4--ethip4udpgeneve-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-icx-xxv710-78b-ip6routing-base-scale-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-78b-ip6routing-base-scale-avf-{test_type}-tsa"
- data: "vpp-2n-icx-curr-iter"
- include:
- - "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-Ip6Scale20K-Rnd-ndrpdr.78B-.t.c-avf-ethip6-ip6scale20k-rnd-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-Ip6Scale200K-Rnd-ndrpdr.78B-.t.c-avf-ethip6-ip6scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-ndrpdr.78B-.t.c-avf-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Rnd-ndrpdr.78B-.t.c-avf-ethip6-ip6scale2m-rnd-ndrpdr"
- layout:
- title: "2n-icx-xxv710-64b-ip6routing-base-scale-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-icx-xxv710-78b-ip6routing-base-scale-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-78b-ip6routing-base-scale-dpdk-{test_type}-tsa"
- data: "vpp-2n-icx-curr-iter"
- include:
- - "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-Ip6Scale20K-Rnd-ndrpdr.78B-.t.c-ethip6-ip6scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-ndrpdr.78B-.t.c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Rnd-ndrpdr.78B-.t.c-ethip6-ip6scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Rnd-ndrpdr.78B-.t.c-ethip6-ip6scale2m-rnd-ndrpdr"
- layout:
- title: "2n-icx-xxv710-64b-ip6routing-base-scale-dpdk-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-icx-xxv710-78b-ip6routing-base-scale-af_xdp-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-78b-ip6routing-base-scale-af_xdp-{test_type}-tsa"
- data: "vpp-2n-icx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Af-Xdp-Ethip6-Ip6Base-ndrpdr.78B-.t.c-af-xdp-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Af-Xdp-Ethip6-Ip6Scale20K-ndrpdr.78B-.t.c-af-xdp-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Af-Xdp-Ethip6-Ip6Scale20K-Rnd-ndrpdr.78B-.t.c-af-xdp-ethip6-ip6scale20k-rnd-ndrpdr"
- layout:
- title: "2n-icx-xxv710-64b-ip6routing-base-scale-af_xdp-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-icx-xxv710-64b-l2switching-base-scale-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-64b-l2switching-base-scale-avf-{test_type}-tsa"
- data: "vpp-2n-icx-curr-iter"
- include:
- - "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"
- - "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-icx-xxv710-64b-l2switching-base-scale-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-icx-xxv710-64b-l2switching-base-scale-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-64b-l2switching-base-scale-dpdk-{test_type}-tsa"
- data: "vpp-2n-icx-curr-iter"
- include:
- - "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"
- - "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-icx-xxv710-64b-l2switching-base-scale-dpdk-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-icx-xxv710-64b-vhost-base-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-xxv710-64b-vhost-base-{test_type}-tsa"
- data: "vpp-2n-icx-curr-iter"
- include:
- - "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-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-ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-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-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-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"
- layout:
- title: "2n-icx-xxv710-64b-vhost-base-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-# Packet Throughput - DPDK
-
-# 2n-icx
-
-- type: "plot"
- title: "DPDK Throughput: 2n-icx-xxv710-64b-{core}-base-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-icx-xxv710-64b-{core}-base-{test_type}"
- data: "dpdk-2n-icx-curr-iter"
- core: ["2t1c", "4t2c"]
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-{core}-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-{core}-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-icx-xxv710-64b-{core}-base-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Speedup: 2n-icx-xxv710-64b-base-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-icx-xxv710-64b-base-{test_type}-tsa"
- data: "dpdk-2n-icx-curr-iter"
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-.t.c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-.t.c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-icx-xxv710-64b-base-{test_type}-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-# 3n-icx
-
-- type: "plot"
- title: "DPDK Throughput: 3n-icx-xxv710-64b-{core}-base-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,DPDK]}/3n-icx-xxv710-64b-{core}-base-{test_type}"
- data: "dpdk-3n-icx-curr-iter"
- core: ["2t1c", "4t2c"]
- include:
- - "tests.dpdk.perf.25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-{core}-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-{core}-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "3n-icx-xxv710-64b-{core}-base-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Speedup: 3n-icx-xxv710-64b-base-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,DPDK]}/3n-icx-xxv710-64b-base-{test_type}-tsa"
- data: "dpdk-3n-icx-curr-iter"
- include:
- - "tests.dpdk.perf.25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-.t.c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-.t.c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "3n-icx-xxv710-64b-base-{test_type}-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-# 2n-clx
-
-- type: "plot"
- title: "DPDK Throughput: 2n-clx-xxv710-64b-{core}-base-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-clx-xxv710-64b-{core}-base-{test_type}"
- data: "dpdk-2n-clx-curr-iter"
- core: ["2t1c", "4t2c"]
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-{core}-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-{core}-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-{core}-base-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 2n-clx-x710-64b-{core}-base-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-clx-x710-64b-{core}-base-{test_type}"
- data: "dpdk-2n-clx-curr-iter"
- core: ["2t1c", "4t2c"]
- include:
- - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-{core}-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-{core}-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-clx-x710-64b-{core}-base-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Speedup: 2n-clx-xxv710-64b-base-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-clx-xxv710-64b-base-{test_type}-tsa"
- data: "dpdk-2n-clx-curr-iter"
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-.t.c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-.t.c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-clx-xxv710-64b-base-{test_type}-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-clx-x710-64b-base-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-clx-x710-64b-base-{test_type}-tsa"
- data: "dpdk-2n-clx-curr-iter"
- include:
- - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-.t.c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-.t.c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-clx-x710-64b-base-{test_type}-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-###############################################################################
-
-# 2n-zn2
-
-# Packet Throughput
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-{core}-memif-base-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-{core}-memif-base-avf-{test_type}"
- data: "vpp-2n-zn2-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-avf-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-{core}-memif-base-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-{core}-memif-base-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-{core}-memif-base-dpdk-{test_type}"
- data: "vpp-2n-zn2-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-{core}-memif-base-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-cx556a-64b-{core}-rdma-l2-eth-2memif-1dcr-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-{core}-rdma-l2-eth-2memif-1dcr-{test_type}"
- data: "vpp-2n-zn2-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-rdma-dot1q-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-rdma-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-rdma-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-rdma-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-{core}-rdma-l2-eth-2memif-1dcr-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-x710-64b-{core}-ip4routing-base-[avf,dpdk]-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-64b-{core}-ip4routing-base-[avf,dpdk]-{test_type}"
- data: "vpp-2n-zn2-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-{core}-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-{core}-ethip4-ip4base-ndrpdr"
- layout:
- title: "2n-zn2-x710-64b-{core}-ip4routing-base-[avf,dpdk]-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-{core}-ip4routing-base-scale-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-{core}-ip4routing-base-scale-avf-{test_type}"
- data: "vpp-2n-zn2-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-{core}-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-{core}-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-{core}-avf-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-{core}-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-{core}-avf-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-{core}-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-{core}-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-{core}-ip4routing-base-scale-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-{core}-ip4routing-base-scale-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-{core}-ip4routing-base-scale-dpdk-{test_type}"
- data: "vpp-2n-zn2-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Dot1Q-Ip4Base-Ndrpdr.64B-{core}-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-{core}-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-{core}-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-{core}-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-{core}-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-{core}-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-{core}-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-{core}-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-{core}-ip4routing-base-scale-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-{core}-features-ip4routing-base-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-{core}-features-ip4routing-base-avf-{test_type}"
- data: "vpp-2n-zn2-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-{core}-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-{core}-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-{core}-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-{core}-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-{core}-avf-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-{core}-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-{core}-features-ip4routing-base-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-{core}-nat44det-ip4routing-stl-bidir-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-{core}-nat44det-ip4routing-stl-bidir-avf-{test_type}"
- data: "vpp-2n-zn2-curr-iter"
- core: ["2t1c", ]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.64b-{core}-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.64b-{core}-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.64b-{core}-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.64b-{core}-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.64b-{core}-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-{core}-nat44det-ip4routing-stl-bidir-avf-{test_type}"
- layout: "plot-throughput"
-
-#- type: "plot"
-# title: "Throughput: 2n-zn2-xxv710-64b-{core}-nat44ed-ip4routing-stl-unidir-avf-{test_type}"
-# algorithm: "plot_ndrpdr_box_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-{core}-nat44ed-ip4routing-stl-unidir-avf-{test_type}"
-# data: "vpp-2n-zn2-curr-iter"
-# core: ["2t1c", ]
-# test-type: ["ndr", "pdr"]
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr"
-# layout:
-# title: "2n-zn2-xxv710-64b-{core}-nat44ed-ip4routing-stl-unidir-avf-{test_type}"
-# layout: "plot-throughput"
-#
-#- type: "plot"
-# title: "Throughput: 2n-zn2-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-cps-avf-{test_type}"
-# algorithm: "plot_ndrpdr_box_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-cps-avf-{test_type}"
-# data: "vpp-2n-zn2-curr-iter"
-# core: ["2t1c", ]
-# test-type: ["ndr", "pdr"]
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
-# layout:
-# title: "2n-zn2-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-cps-avf-{test_type}"
-# layout: "plot-cps"
-#
-#- type: "plot"
-# title: "Throughput: 2n-zn2-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-pps-avf-{test_type}"
-# algorithm: "plot_ndrpdr_box_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-pps-avf-{test_type}"
-# data: "vpp-2n-zn2-curr-iter"
-# core: ["2t1c", ]
-# test-type: ["ndr", "pdr"]
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
-# layout:
-# title: "2n-zn2-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-pps-avf-{test_type}"
-# layout: "plot-throughput"
-#
-#- type: "plot"
-# title: "Throughput: 2n-zn2-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-cps-avf-{test_type}"
-# algorithm: "plot_ndrpdr_box_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-cps-avf-{test_type}"
-# data: "vpp-2n-zn2-curr-iter"
-# core: ["2t1c", ]
-# test-type: ["ndr", "pdr"]
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
-# layout:
-# title: "2n-zn2-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-cps-avf-{test_type}"
-# layout: "plot-cps"
-#
-#- type: "plot"
-# title: "Throughput: 2n-zn2-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-pps-avf-{test_type}"
-# algorithm: "plot_ndrpdr_box_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-pps-avf-{test_type}"
-# data: "vpp-2n-zn2-curr-iter"
-# core: ["2t1c", ]
-# test-type: ["ndr", "pdr"]
-# include:
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
-# - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
-# layout:
-# title: "2n-zn2-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-pps-avf-{test_type}"
-# layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-{core}-nat44det-ip4routing-stl-bidir-avf-pdr"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-{core}-nat44det-ip4routing-stl-bidir-avf-pdr"
- data: "vpp-2n-zn2-curr-iter"
- core: ["2t1c", ]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.64b-{core}-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.64b-{core}-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.64b-{core}-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.64b-{core}-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.64b-{core}-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-{core}-nat44det-ip4routing-stl-bidir-avf-pdr"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-cx556a-64b-{core}-rdma-ip4base-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-{core}-rdma-ip4base-{test_type}"
- data: "vpp-2n-zn2-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip4Base-Ndrpdr.64B-{core}-rdma-dot1q-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Ndrpdr.64B-{core}-rdma-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Ndrpdr.64B-{core}-rdma-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-{core}-rdma-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Ndrpdr.64B-{core}-rdma-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-{core}-rdma-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Ndrpdr.64B-{core}-rdma-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-{core}-rdma-ethip4-ip4scale2m-rnd-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-{core}-rdma-ip4base-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-cx556a-64b-{core}-rdma-ethip4-features-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-{core}-rdma-ethip4-features-{test_type}"
- data: "vpp-2n-zn2-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-{core}-rdma-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-{core}-rdma-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-{core}-rdma-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-{core}-rdma-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-{core}-rdma-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-{core}-rdma-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-{core}-rdma-ethip4-features-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-{core}-ethip4--ethip4udpgeneve-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-{core}-ethip4--ethip4udpgeneve-avf-{test_type}"
- data: "vpp-2n-zn2-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-1Tun-Ip4Base-Ndrpdr.64B-{core}-avf-ethip4--ethip4udpgeneve-1tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-4Tun-Ip4Base-Ndrpdr.64B-{core}-avf-ethip4--ethip4udpgeneve-4tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-16Tun-Ip4Base-Ndrpdr.64B-{core}-avf-ethip4--ethip4udpgeneve-16tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-64Tun-Ip4Base-Ndrpdr.64B-{core}-avf-ethip4--ethip4udpgeneve-64tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-256Tun-Ip4Base-Ndrpdr.64B-{core}-avf-ethip4--ethip4udpgeneve-256tun-ip4base-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-{core}-ethip4--ethip4udpgeneve-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-x710-78b-{core}-ip6routing-base-[avf,dpdk]-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-78b-{core}-ip6routing-base-[avf,dpdk]-{test_type}"
- data: "vpp-2n-zn2-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-{core}-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-{core}-ethip6-ip6base-ndrpdr"
- layout:
- title: "2n-zn2-x710-78b-{core}-ip6routing-base-[avf,dpdk]-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-78b-{core}-ip6routing-base-scale-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-78b-{core}-ip6routing-base-scale-avf-{test_type}"
- data: "vpp-2n-zn2-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-{core}-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-{core}-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-rnd-Ndrpdr.78B-{core}-avf-ethip6-ip6scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-{core}-avf-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-rnd-Ndrpdr.78B-{core}-avf-ethip6-ip6scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-{core}-avf-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-{core}-avf-ethip6-ip6scale2m-rnd-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-78b-{core}-ip6routing-base-scale-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-78b-{core}-ip6routing-base-scale-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-78b-{core}-ip6routing-base-scale-dpdk-{test_type}"
- data: "vpp-2n-zn2-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Dot1Q-Ip6Base-Ndrpdr.78B-{core}-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-{core}-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-{core}-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-rnd-Ndrpdr.78B-{core}-ethip6-ip6scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-{core}-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-rnd-Ndrpdr.78B-{core}-ethip6-ip6scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-{core}-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-{core}-ethip6-ip6scale2m-rnd-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-78b-{core}-ip6routing-base-scale-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-cx556a-78b-{core}-rdma-ip6routing-base-scale-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-78b-{core}-rdma-ip6routing-base-scale-{test_type}"
- data: "vpp-2n-zn2-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-Ip6Base-Ndrpdr.78B-{core}-rdma-dot1q-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Base-Ndrpdr.78B-{core}-rdma-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale20K-Ndrpdr.78B-{core}-rdma-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale200K-Ndrpdr.78B-{core}-rdma-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-Ndrpdr.78B-{core}-rdma-ethip6-ip6scale2m-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-78b-{core}-rdma-ip6routing-base-scale-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-x710-64b-{core}-l2switching-base-[avf,dpdk]-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-64b-{core}-l2switching-base-{test_type}"
- data: "vpp-2n-zn2-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-zn2-x710-64b-{core}-l2switching-base-[avf,dpdk]-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-{core}-l2switching-base-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-{core}-l2switching-base-avf-{test_type}"
- data: "vpp-2n-zn2-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Xcbase-Ndrpdr.64B-{core}-avf-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-{core}-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Gbp-Ndrpdr.64B-{core}-avf-dot1q-l2bdbasemaclrn-gbp-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-{core}-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-{core}-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-{core}-l2switching-base-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-{core}-l2switching-base-scale-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-{core}-l2switching-base-scale-avf-{test_type}"
- data: "vpp-2n-zn2-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-{core}-l2switching-base-scale-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-{core}-l2switching-base-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-{core}-l2switching-base-dpdk-{test_type}"
- data: "vpp-2n-zn2-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Xcbase-Ndrpdr.64B-{core}-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-{core}-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Dot1Q-L2Bdbasemaclrn-Gbp-Ndrpdr.64B-{core}-dot1q-l2bdbasemaclrn-gbp-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-{core}-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-{core}-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-{core}-l2switching-base-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-{core}-l2switching-base-scale-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-{core}-l2switching-base-scale-dpdk-{test_type}"
- data: "vpp-2n-zn2-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-{core}-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-{core}-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-{core}-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-{core}-l2switching-base-scale-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-cx556a-64b-{core}-rdma-l2switching-base-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-{core}-rdma-l2switching-base-{test_type}"
- data: "vpp-2n-zn2-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Xcbase-Ndrpdr.64B-{core}-rdma-dot1q-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-{core}-rdma-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Gbp-Ndrpdr.64B-{core}-rdma-dot1q-l2bdbasemaclrn-gbp-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Patch-Ndrpdr.64B-{core}-rdma-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Ndrpdr.64B-{core}-rdma-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-rdma-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-{core}-rdma-l2switching-base-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-cx556a-64b-{core}-rdma-l2switching-scale-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-{core}-rdma-l2switching-scale-{test_type}"
- data: "vpp-2n-zn2-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-rdma-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-{core}-rdma-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-{core}-rdma-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-{core}-rdma-eth-l2bdscale1mmaclrn-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-{core}-rdma-l2switching-scale-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-{core}-vhost-base-[avf,dpdk]-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-{core}-vhost-base-{test_type}"
- data: "vpp-2n-zn2-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-{core}-vhost-base-[avf,dpdk]-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-xxv710-64b-{core}-vhost-base-[avf,dpdk]-vpp-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-{core}-vhost-base-vpp-{test_type}"
- data: "vpp-2n-zn2-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-{core}-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-{core}-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-{core}-vhost-base-[avf,dpdk]-vpp-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-cx556a-64b-{core}-rdma-l2-vhost-base-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-{core}-rdma-l2-vhost-base-{test_type}"
- data: "vpp-2n-zn2-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-{core}-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-{core}-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout:
- title: "2n-zn2-cx556a-64b-{core}-rdma-l2-vhost-base-{test_type}"
- layout: "plot-throughput"
-
-################################################################################
-
-# Packet Speedup
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-memif-base-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-memif-base-avf-{test_type}-tsa"
- data: "vpp-2n-zn2-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-memif-base-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-memif-base-dpdk-{test_type}-tsa"
- data: "vpp-2n-zn2-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-cx556a-64b-rdma-l2-eth-2memif-1dcr-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-l2-eth-2memif-1dcr-{test_type}-tsa"
- data: "vpp-2n-zn2-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-x710-64b-ip4routing-base-[avf,dpdk]-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-64b-ip4routing-base-[avf,dpdk]-{test_type}-tsa"
- data: "vpp-2n-zn2-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4-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-[avf,dpdk]-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-ip4routing-base-scale-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-ip4routing-base-scale-avf-{test_type}-tsa"
- data: "vpp-2n-zn2-curr-iter"
- 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-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale20k-rnd-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-Ip4Scale200K-Rnd-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-.t.c-avf-ethip4-ip4scale2m-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-base-scale-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-ip4routing-base-scale-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-ip4routing-base-scale-dpdk-{test_type}-tsa"
- data: "vpp-2n-zn2-curr-iter"
- 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-Ip4Scale20K-Rnd-Ndrpdr.64B-.t.c-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-.t.c-ethip4-ip4scale200k-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-Ndrpdr.64B-.t.c-ethip4-ip4scale2m-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-base-scale-dpdk-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-features-ip4routing-base-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-features-ip4routing-base-avf-{test_type}-tsa"
- data: "vpp-2n-zn2-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-nat44det-ip4routing-stl-bidir-avf-{test_type}-tsa"
- data: "vpp-2n-zn2-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-#- type: "plot"
-# title: "Speedup: 2n-zn2-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-{test_type}-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-nat44ed-ip4routing-stl-unidir-avf-{test_type}-tsa"
-# data: "vpp-2n-zn2-curr-iter"
-# 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-{test_type}"
-# layout: "plot-throughput-speedup-analysis"
-#
-#- type: "plot"
-# title: "Speedup: 2n-zn2-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-{test_type}-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-nat44ed-ip4routing-udp-stf-cps-avf-{test_type}-tsa"
-# data: "vpp-2n-zn2-curr-iter"
-# 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-{test_type}"
-# layout: "plot-throughput-speedup-analysis-cps"
-#
-#- type: "plot"
-# title: "Speedup: 2n-zn2-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-{test_type}-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-nat44ed-ip4routing-udp-stf-pps-avf-{test_type}-tsa"
-# data: "vpp-2n-zn2-curr-iter"
-# 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-{test_type}"
-# layout: "plot-throughput-speedup-analysis"
-#
-#- type: "plot"
-# title: "Speedup: 2n-zn2-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-{test_type}-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-nat44ed-ip4routing-tcp-stf-cps-avf-{test_type}-tsa"
-# data: "vpp-2n-zn2-curr-iter"
-# 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-{test_type}"
-# layout: "plot-throughput-speedup-analysis-cps"
-#
-#- type: "plot"
-# title: "Speedup: 2n-zn2-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-{test_type}-tsa"
-# algorithm: "plot_tsa_name"
-# output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-nat44ed-ip4routing-tcp-stf-pps-avf-{test_type}-tsa"
-# data: "vpp-2n-zn2-curr-iter"
-# 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-{test_type}"
-# layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-cx556a-64b-rdma-ip4base-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-ip4base-{test_type}-tsa"
- data: "vpp-2n-zn2-curr-iter"
- 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"
- - "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-ip4base-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-cx556a-64b-rdma-ethip4-features-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-ethip4-features-{test_type}-tsa"
- data: "vpp-2n-zn2-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-ethip4--ethip4udpgeneve-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-ethip4--ethip4udpgeneve-avf-{test_type}-tsa"
- data: "vpp-2n-zn2-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-1Tun-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4--ethip4udpgeneve-1tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-4Tun-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4--ethip4udpgeneve-4tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-16Tun-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4--ethip4udpgeneve-16tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-64Tun-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4--ethip4udpgeneve-64tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-256Tun-Ip4Base-Ndrpdr.64B-.t.c-avf-ethip4--ethip4udpgeneve-256tun-ip4base-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-ethip4--ethip4udpgeneve-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-x710-78b-ip6routing-base-[avf,dpdk]-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-78b-ip6routing-base-[avf,dpdk]-{test_type}-tsa"
- data: "vpp-2n-zn2-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- layout:
- title: "2n-zn2-x710-78b-ip6routing-base-[avf,dpdk]-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-78b-ip6routing-base-scale-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-78b-ip6routing-base-scale-avf-{test_type}-tsa"
- data: "vpp-2n-zn2-curr-iter"
- include:
- - "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-Ip6Scale20K-rnd-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale20k-rnd-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-Ip6Scale200K-rnd-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-.t.c-avf-ethip6-ip6scale2m-rnd-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-78b-ip6routing-base-scale-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-78b-ip6routing-base-scale-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-78b-ip6routing-base-scale-dpdk-{test_type}-tsa"
- data: "vpp-2n-zn2-curr-iter"
- 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-Ip6Scale20K-rnd-Ndrpdr.78B-.t.c-ethip6-ip6scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-.t.c-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-rnd-Ndrpdr.78B-.t.c-ethip6-ip6scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-.t.c-ethip6-ip6scale2m-rnd-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-78b-ip6routing-base-scale-dpdk-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-cx556a-78b-rdma-ip6routing-base-scale-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-78b-rdma-ip6routing-base-scale-{test_type}-tsa"
- data: "vpp-2n-zn2-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-x710-64b-l2switching-base-[avf,dpdk]-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-x710-64b-l2switching-base-{test_type}-tsa"
- data: "vpp-2n-zn2-curr-iter"
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-.t.c-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "2n-zn2-x710-64b-l2switching-base-[avf,dpdk]-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-l2switching-base-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-l2switching-base-avf-{test_type}-tsa"
- data: "vpp-2n-zn2-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-l2switching-base-scale-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-l2switching-base-scale-avf-{test_type}-tsa"
- data: "vpp-2n-zn2-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-l2switching-base-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-l2switching-base-dpdk-{test_type}-tsa"
- data: "vpp-2n-zn2-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-l2switching-base-scale-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-l2switching-base-scale-dpdk-{test_type}-tsa"
- data: "vpp-2n-zn2-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-cx556a-64b-rdma-l2switching-base-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-l2switching-base-{test_type}-tsa"
- data: "vpp-2n-zn2-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-cx556a-64b-rdma-l2switching-scale-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-l2switching-scale-{test_type}-tsa"
- data: "vpp-2n-zn2-curr-iter"
- 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-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-vhost-base-[avf,dpdk]-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-vhost-base-{test_type}-tsa"
- data: "vpp-2n-zn2-curr-iter"
- include:
- - "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-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"
- layout:
- title: "2n-zn2-xxv710-64b-vhost-base-[avf,dpdk]-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-vhost-base-[avf,dpdk]-vpp-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-xxv710-64b-vhost-base-vpp-{test_type}-tsa"
- data: "vpp-2n-zn2-curr-iter"
- include:
- - "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-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"
- layout:
- title: "2n-zn2-xxv710-64b-vhost-base-[avf,dpdk]-vpp-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-cx556a-64b-rdma-l2-vhost-base-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-cx556a-64b-rdma-l2-vhost-base-{test_type}-tsa"
- data: "vpp-2n-zn2-curr-iter"
- include:
- - "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"
- - "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-base-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-# Packet Throughput - DPDK
-
-# 2n-zn2
-
-- type: "plot"
- title: "DPDK Throughput: 2n-zn2-xxv710-64b-{core}-base-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-zn2-xxv710-64b-{core}-base-{test_type}"
- data: "dpdk-2n-zn2-curr-iter"
- core: ["2t1c", "4t2c"]
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-{core}-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-{core}-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-{core}-base-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "DPDK Throughput: 2n-zn2-x710-64b-{core}-base-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-zn2-x710-64b-{core}-base-{test_type}"
- data: "dpdk-2n-zn2-curr-iter"
- core: ["2t1c", "4t2c"]
- include:
- - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-{core}-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-{core}-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-zn2-x710-64b-{core}-base-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-xxv710-64b-base-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-zn2-xxv710-64b-base-{test_type}-tsa"
- data: "dpdk-2n-zn2-curr-iter"
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-ndrpdr.64b-.t.c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-ndrpdr.64b-.t.c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-zn2-xxv710-64b-base-{test_type}-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 2n-zn2-x710-64b-base-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,DPDK]}/2n-zn2-x710-64b-base-{test_type}-tsa"
- data: "dpdk-2n-zn2-curr-iter"
- include:
- - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.64b-.t.c-eth-l2xcbase-testpmd-ndrpdr"
- - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.64b-.t.c-ethip4-ip4base-l3fwd-ndrpdr"
- layout:
- title: "2n-zn2-x710-64b-base-{test_type}-tsa"
- layout: "plot-throughput-speedup-analysis"
-
-################################################################################
-
-# 3n-icx Throughput
-
-- type: "plot"
- title: "Throughput: 3n-icx-xxv710-1518b-{core}-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-xxv710-1518b-{core}-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-{test_type}"
- data: "vpp-3n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.1518B-{core}-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.1518B-{core}-avf-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.1518B-{core}-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.1518B-{core}-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-icx-xxv710-1518b-{core}-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-icx-xxv710-1518b-{core}-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-xxv710-1518b-{core}-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-{test_type}"
- data: "vpp-3n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-{core}-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-{core}-avf-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-{core}-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-{core}-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- layout:
- title: "3n-icx-xxv710-1518b-{core}-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-icx-xxv710-1518b-{core}-ipsec-scheduler-ip4routing-base-scale-sw-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-xxv710-1518b-{core}-ipsec-scheduler-ip4routing-base-scale-sw-avf-{test_type}"
- data: "vpp-3n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1Tnlswasync-Scheduler-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.1518B-{core}-avf-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec8Tnlswasync-Scheduler-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.1518B-{core}-avf-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-{core}-avf-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec8Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-{core}-avf-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr"
- layout:
- title: "3n-icx-xxv710-1518b-{core}-ipsec-scheduler-ip4routing-base-scale-sw-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-icx-xxv710-1518b-{core}-ipsec-ip4routing-base-scale-sw-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-xxv710-1518b-{core}-ipsec-ip4routing-base-scale-sw-dpdk-{test_type}"
- data: "vpp-3n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-{core}-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-{core}-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- layout:
- title: "3n-icx-xxv710-1518b-{core}-ipsec-ip4routing-base-scale-sw-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-icx-xxv710-1518b-{core}-ipsec-scheduler-ip4routing-base-scale-sw-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-xxv710-1518b-{core}-ipsec-scheduler-ip4routing-base-scale-sw-dpdk-{test_type}"
- data: "vpp-3n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec1Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-{core}-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec8Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-{core}-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr"
- layout:
- title: "3n-icx-xxv710-1518b-{core}-ipsec-scheduler-ip4routing-base-scale-sw-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-icx-xxv710-imix-{core}-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-xxv710-imix-{core}-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-{test_type}"
- data: "vpp-3n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.imix-{core}-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.imix-{core}-avf-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.imix-{core}-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.imix-{core}-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-icx-xxv710-imix-{core}-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-icx-xxv710-imix-{core}-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-xxv710-imix-{core}-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-{test_type}"
- data: "vpp-3n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-{core}-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-{core}-avf-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-{core}-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-{core}-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- layout:
- title: "3n-icx-xxv710-imix-{core}-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-icx-xxv710-imix-{core}-ipsec-scheduler-ip4routing-base-scale-sw-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-xxv710-imix-{core}-ipsec-scheduler-ip4routing-base-scale-sw-avf-{test_type}"
- data: "vpp-3n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1Tnlswasync-Scheduler-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.imix-{core}-avf-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec8Tnlswasync-Scheduler-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.imix-{core}-avf-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-{core}-avf-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec8Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-{core}-avf-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr"
- layout:
- title: "3n-icx-xxv710-imix-{core}-ipsec-scheduler-ip4routing-base-scale-sw-avf-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-icx-xxv710-imix-{core}-ipsec-ip4routing-base-scale-sw-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-xxv710-imix-{core}-ipsec-ip4routing-base-scale-sw-dpdk-{test_type}"
- data: "vpp-3n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-{core}-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-{core}-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- layout:
- title: "3n-icx-xxv710-imix-{core}-ipsec-ip4routing-base-scale-sw-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-icx-xxv710-imix-{core}-ipsec-scheduler-ip4routing-base-scale-sw-dpdk-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-xxv710-imix-{core}-ipsec-scheduler-ip4routing-base-scale-sw-dpdk-{test_type}"
- data: "vpp-3n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec1Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-{core}-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec8Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-{core}-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr"
- layout:
- title: "3n-icx-xxv710-imix-{core}-ipsec-scheduler-ip4routing-base-scale-sw-dpdk-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-icx-xxv710-64b-{core}-ip4routing-base-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-xxv710-64b-{core}-ip4routing-base-{test_type}"
- data: "vpp-3n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-ndrpdr.64B-{core}-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Base-ndrpdr.64B-{core}-ethip4-ip4base-ndrpdr"
- layout:
- title: "3n-icx-xxv710-64b-{core}-ip4routing-base-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-icx-xxv710-64b-{core}-ip4tunnel-base-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-xxv710-64b-{core}-ip4tunnel-base-{test_type}"
- data: "vpp-3n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Gtpusw-Ip4Base-ndrpdr.64B-{core}-avf-ethip4gtpusw-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-ndrpdr.64B-{core}-avf-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Xcbase-ndrpdr.64B-{core}-avf-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Gtpusw-Ip4Base-ndrpdr.64B-{core}-ethip4gtpusw-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-ndrpdr.64B-{core}-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Xcbase-ndrpdr.64B-{core}-ethip4vxlan-l2xcbase-ndrpdr"
- layout:
- title: "3n-icx-xxv710-64b-{core}-ip4tunnel-base-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-icx-e810xxv-64b-{core}-ip4tunnel-gtpu-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-e810xxv-64b-{core}-ip4tunnel-gtpu-{test_type}"
- data: "vpp-3n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1E810Xxv-Ethip4Gtpuhw-Ip4Base-Ndrpdr.64B-{core}-ethip4gtpuhw-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1E810Xxv-Ethip4Gtpusw-Ip4Base-Ndrpdr.64B-{core}-ethip4gtpusw-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1E810Xxv-Ethip4Udpwireguard1Tnlsw-Ip4Base-Ndrpdr.64B-{core}-ethip4udpwireguard1tnlsw-ip4base-ndrpdr"
- layout:
- title: "3n-icx-e810xxv-64b-{core}-ip4tunnel-gtpu-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-icx-xxv710-78b-{core}-ip6routing-base-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-xxv710-78b-{core}-ip6routing-base-{test_type}"
- data: "vpp-3n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-ndrpdr.78B-{core}-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Base-ndrpdr.78B-{core}-ethip6-ip6base-ndrpdr"
- layout:
- title: "3n-icx-xxv710-78b-{core}-ip6routing-base-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-icx-xxv710-64b-{core}-l2switching-base-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-xxv710-64b-{core}-l2switching-base-{test_type}"
- data: "vpp-3n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-ndrpdr.64B-{core}-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Patch-ndrpdr.64B-{core}-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-ndrpdr.64B-{core}-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Patch-ndrpdr.64B-{core}-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Xcbase-ndrpdr.64B-{core}-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-ndrpdr.64B-{core}-eth-l2bdbasemaclrn-ndrpdr"
- layout:
- title: "3n-icx-xxv710-64b-{core}-l2switching-base-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-icx-xxv710-78b-{core}-srv6-ip6routing-base-avf-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-xxv710-78b-{core}-srv6-ip6routing-base-avf-{test_type}"
- data: "vpp-3n-icx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-ndrpdr.78B-{core}-avf-ethip6ip6-ip6base-srv6enc1sid-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-ndrpdr.78B-{core}-avf-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-ndrpdr.78B-{core}-avf-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-ndrpdr.78B-{core}-avf-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-ndrpdr.78B-{core}-avf-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-ndrpdr.78B-{core}-avf-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr"
- layout:
- title: "3n-icx-xxv710-78b-{core}-srv6-ip6routing-base-avf-{test_type}"
- layout: "plot-throughput"
-
-# 3n-icx Speedup
-
-- type: "plot"
- title: "Speedup: 3n-icx-xxv710-1518b-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-xxv710-1518b-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-{test_type}-tsa"
- data: "vpp-3n-icx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.1518B-.t.c-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.1518B-.t.c-avf-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.1518B-.t.c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.1518B-.t.c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-icx-xxv710-1518b-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-icx-xxv710-1518b-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-xxv710-1518b-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-{test_type}-tsa"
- data: "vpp-3n-icx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-.t.c-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-.t.c-avf-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-.t.c-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-.t.c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- layout:
- title: "3n-icx-xxv710-1518b-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-icx-xxv710-1518b-ipsec-scheduler-ip4routing-base-scale-sw-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-xxv710-1518b-ipsec-scheduler-ip4routing-base-scale-sw-avf-{test_type}-tsa"
- data: "vpp-3n-icx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1Tnlswasync-Scheduler-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.1518B-.t.c-avf-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec8Tnlswasync-Scheduler-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.1518B-.t.c-avf-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-.t.c-avf-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec8Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-.t.c-avf-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr"
- layout:
- title: "3n-icx-xxv710-1518b-ipsec-scheduler-ip4routing-base-scale-sw-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-icx-xxv710-1518b-ipsec-ip4routing-base-scale-sw-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-xxv710-1518b-ipsec-ip4routing-base-scale-sw-dpdk-{test_type}-tsa"
- data: "vpp-3n-icx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-.t.c-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- layout:
- title: "3n-icx-xxv710-1518b-ipsec-ip4routing-base-scale-sw-dpdk-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-icx-xxv710-1518b-ipsec-scheduler-ip4routing-base-scale-sw-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-xxv710-1518b-ipsec-scheduler-ip4routing-base-scale-sw-dpdk-{test_type}-tsa"
- data: "vpp-3n-icx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec1Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-.t.c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec8Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-.t.c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr"
- layout:
- title: "3n-icx-xxv710-1518b-ipsec-scheduler-ip4routing-base-scale-sw-dpdk-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-icx-xxv710-imix-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-xxv710-imix-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-{test_type}-tsa"
- data: "vpp-3n-icx-curr-iter"
- include:
- - "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-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.imix-.t.c-avf-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-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-Aes128Cbc-Hmac512Sha-ndrpdr.imix-.t.c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout:
- title: "3n-icx-xxv710-imix-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-icx-xxv710-imix-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-xxv710-imix-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-{test_type}-tsa"
- data: "vpp-3n-icx-curr-iter"
- 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-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-.t.c-avf-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-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-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-.t.c-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- layout:
- title: "3n-icx-xxv710-imix-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-icx-xxv710-imix-ipsec-scheduler-ip4routing-base-scale-sw-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-xxv710-imix-ipsec-scheduler-ip4routing-base-scale-sw-avf-{test_type}-tsa"
- data: "vpp-3n-icx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1Tnlswasync-Scheduler-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.imix-.t.c-avf-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec8Tnlswasync-Scheduler-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.imix-.t.c-avf-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-.t.c-avf-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec8Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-.t.c-avf-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr"
- layout:
- title: "3n-icx-xxv710-imix-ipsec-scheduler-ip4routing-base-scale-sw-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-icx-xxv710-imix-ipsec-ip4routing-base-scale-sw-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-xxv710-imix-ipsec-ip4routing-base-scale-sw-dpdk-{test_type}-tsa"
- data: "vpp-3n-icx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-.t.c-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-.t.c-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-.t.c-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- layout:
- title: "3n-icx-xxv710-imix-ipsec-ip4routing-base-scale-sw-dpdk-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-icx-xxv710-imix-ipsec-scheduler-ip4routing-base-scale-sw-dpdk-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-xxv710-imix-ipsec-scheduler-ip4routing-base-scale-sw-dpdk-{test_type}-tsa"
- data: "vpp-3n-icx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec1Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-.t.c-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec8Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-.t.c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr"
- layout:
- title: "3n-icx-xxv710-imix-ipsec-scheduler-ip4routing-base-scale-sw-dpdk-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-icx-xxv710-64b-ip4routing-base-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-xxv710-64b-ip4routing-base-{test_type}-tsa"
- data: "vpp-3n-icx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-ndrpdr.64B-.t.c-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Base-ndrpdr.64B-.t.c-ethip4-ip4base-ndrpdr"
- layout:
- title: "3n-icx-xxv710-64b-ip4routing-base-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-icx-xxv710-64b-ip4tunnel-base-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-xxv710-64b-ip4tunnel-base-{test_type}-tsa"
- data: "vpp-3n-icx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Gtpusw-Ip4Base-ndrpdr.64B-.t.c-avf-ethip4gtpusw-ip4base-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-Ethip4Vxlan-L2Xcbase-ndrpdr.64B-.t.c-avf-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Gtpusw-Ip4Base-ndrpdr.64B-.t.c-ethip4gtpusw-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-ndrpdr.64B-.t.c-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Xcbase-ndrpdr.64B-.t.c-ethip4vxlan-l2xcbase-ndrpdr"
- layout:
- title: "3n-icx-xxv710-64b-ip4tunnel-base-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-icx-e810xxv-64b-ip4tunnel-gtpu-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-e810xxv-64b-ip4tunnel-gtpu-{test_type}-tsa"
- data: "vpp-3n-icx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1E810Xxv-Ethip4Gtpuhw-Ip4Base-Ndrpdr.64B-.t.c-ethip4gtpuhw-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1E810Xxv-Ethip4Gtpusw-Ip4Base-Ndrpdr.64B-.t.c-ethip4gtpusw-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1E810Xxv-Ethip4Udpwireguard1Tnlsw-Ip4Base-Ndrpdr.64B-.t.c-ethip4udpwireguard1tnlsw-ip4base-ndrpdr"
- layout:
- title: "3n-icx-e810xxv-64b-ip4tunnel-gtpu-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-icx-xxv710-78b-ip6routing-base-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-xxv710-78b-ip6routing-base-{test_type}-tsa"
- data: "vpp-3n-icx-curr-iter"
- include:
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-ndrpdr.78B-.t.c-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Base-ndrpdr.78B-.t.c-ethip6-ip6base-ndrpdr"
- layout:
- title: "3n-icx-xxv710-78b-ip6routing-base-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-icx-xxv710-64b-l2switching-base-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-xxv710-64b-l2switching-base-{test_type}-tsa"
- data: "vpp-3n-icx-curr-iter"
- include:
- - "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"
- - "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"
- layout:
- title: "3n-icx-xxv710-64b-l2switching-base-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-- type: "plot"
- title: "Speedup: 3n-icx-xxv710-78b-srv6-ip6routing-base-avf-{test_type}-tsa"
- algorithm: "plot_tsa_name"
- output-file: "{DIR[STATIC,VPP]}/3n-icx-xxv710-78b-srv6-ip6routing-base-avf-{test_type}-tsa"
- data: "vpp-3n-icx-curr-iter"
- 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-icx-xxv710-78b-srv6-ip6routing-base-avf-{test_type}"
- layout: "plot-throughput-speedup-analysis"
-
-################################################################################
-
-- 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: "vpp-2n-skx-curr-iter-best"
- filter: "'2T1C' and 'NIC_Intel-XXV710'"
- layout:
- layout: "plot-hdrh-latency-percentile-x-log"
-
-- type: "plot"
- title: "Latency by percentile: TRex 2n-skx"
- algorithm: "plot_hdrh_lat_by_percentile_x_log"
- output-file: "{DIR[STATIC,TREX]}/hdrh-lat-percentile-2n-skx"
- output-file-links: "{DIR[LAT,TREX]}/2n_skx.rst"
- target-links: "../../_static/trex"
- data: "trex-2n-skx-curr-iter-best"
- filter: "'NIC_Intel-X710'"
- 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: "vpp-2n-zn2-curr-iter-best"
- 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: "vpp-3n-skx-curr-iter-best"
- 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: "vpp-2n-clx-curr-iter-best"
- 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: "vpp-2n-clx-curr-iter-best"
- filter: "'2T1C' and 'NIC_Mellanox-CX556A'"
- 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: "vpp-2n-clx-curr-iter-best"
- filter: "'2T1C' and 'NIC_Intel-E810CQ'"
- layout:
- layout: "plot-hdrh-latency-percentile-x-log"
-
-- type: "plot"
- title: "Latency by percentile: 2n-icx"
- algorithm: "plot_hdrh_lat_by_percentile_x_log"
- output-file: "{DIR[STATIC,VPP]}/hdrh-lat-percentile-2n-icx"
- output-file-links: "{DIR[LAT,VPP]}/2n_icx.rst"
- target-links: "../../_static/vpp"
- data: "vpp-2n-icx-curr-iter-best"
- filter: "'2T1C' and 'NIC_Intel-XXV710' and 'NDRPDR'"
- layout:
- layout: "plot-hdrh-latency-percentile-x-log"
-
-- type: "plot"
- title: "Latency by percentile: 3n-icx"
- algorithm: "plot_hdrh_lat_by_percentile_x_log"
- output-file: "{DIR[STATIC,VPP]}/hdrh-lat-percentile-3n-icx"
- output-file-links: "{DIR[LAT,VPP]}/3n_icx.rst"
- target-links: "../../_static/vpp"
- data: "vpp-3n-icx-curr-iter-best"
- filter: "'2T1C' and 'NIC_Intel-XXV710' and 'NDRPDR'"
- 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: "vpp-3n-tsh-curr-iter-best"
- filter: "'1T1C' and 'NIC_Intel-X520-DA2'"
- layout:
- layout: "plot-hdrh-latency-percentile-x-log"
-
-- type: "plot"
- title: "Latency by percentile: 3n-alt"
- algorithm: "plot_hdrh_lat_by_percentile_x_log"
- output-file: "{DIR[STATIC,VPP]}/hdrh-lat-percentile-3n-alt"
- output-file-links: "{DIR[LAT,VPP]}/3n_alt.rst"
- target-links: "../../_static/vpp"
- data: "vpp-3n-alt-curr-iter-best"
- filter: "'1T1C' and 'NIC_Intel-XL710'"
- 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: "vpp-2n-tx2-curr-iter"
- filter: "'1T1C' and 'NIC_Intel-XL710'"
- layout:
- layout: "plot-hdrh-latency-percentile-x-log"
-
-- type: "plot"
- title: "Latency by percentile: 2n-aws"
- algorithm: "plot_hdrh_lat_by_percentile_x_log"
- output-file: "{DIR[STATIC,VPP]}/hdrh-lat-percentile-2n-aws"
- output-file-links: "{DIR[LAT,VPP]}/2n_aws.rst"
- target-links: "../../_static/vpp"
- data: "vpp-2n-aws-curr-iter-best"
- filter: "'2T1C'"
- layout:
- layout: "plot-hdrh-latency-percentile-x-log"
-
-# - type: "plot"
-# title: "Latency by percentile: 3n-aws"
-# algorithm: "plot_hdrh_lat_by_percentile_x_log"
-# output-file: "{DIR[STATIC,VPP]}/hdrh-lat-percentile-3n-aws"
-# output-file-links: "{DIR[LAT,VPP]}/3n_aws.rst"
-# target-links: "../../_static/vpp"
-# data: "vpp-3n-aws-curr-iter-best"
-# filter: "'2T1C'"
-# layout:
-# layout: "plot-hdrh-latency-percentile-x-log"
-
-- type: "plot"
- title: "Latency by percentile: DPDK 2n-icx"
- algorithm: "plot_hdrh_lat_by_percentile_x_log"
- output-file: "{DIR[STATIC,DPDK]}/hdrh-lat-percentile-2n-icx"
- output-file-links: "{DIR[LAT,DPDK]}/2n_icx.rst"
- target-links: "../../_static/dpdk"
- data: "dpdk-2n-icx-curr-iter-best"
- filter: "'2T1C' and 'NIC_Intel-XXV710'"
- layout:
- layout: "plot-hdrh-latency-percentile-x-log"
-
-- type: "plot"
- title: "Latency by percentile: DPDK 3n-icx"
- algorithm: "plot_hdrh_lat_by_percentile_x_log"
- output-file: "{DIR[STATIC,DPDK]}/hdrh-lat-percentile-3n-icx"
- output-file-links: "{DIR[LAT,DPDK]}/3n_icx.rst"
- target-links: "../../_static/dpdk"
- data: "dpdk-3n-icx-curr-iter-best"
- filter: "'2T1C' and 'NIC_Intel-XXV710'"
- 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: "dpdk-2n-skx-curr-iter-best"
- 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: "dpdk-3n-skx-curr-iter-best"
- 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: "dpdk-2n-clx-curr-iter-best"
- 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: "dpdk-2n-zn2-curr-iter-best"
- filter: "'2T1C' and 'NIC_Intel-XXV710'"
- 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: "dpdk-3n-tsh-curr-iter-best"
- filter: "'1T1C' and 'NIC_Intel-X520-DA2'"
- layout:
- layout: "plot-hdrh-latency-percentile-x-log"
-
-- type: "plot"
- title: "Latency by percentile: DPDK 3n-alt"
- algorithm: "plot_hdrh_lat_by_percentile_x_log"
- output-file: "{DIR[STATIC,DPDK]}/hdrh-lat-percentile-3n-alt"
- output-file-links: "{DIR[LAT,DPDK]}/3n_alt.rst"
- target-links: "../../_static/dpdk"
- data: "dpdk-3n-alt-curr-iter-best"
- filter: "'1T1C' and 'NIC_Intel-XL710'"
- 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: "dpdk-2n-tx2-curr-iter-best"
- filter: "'1T1C' and 'NIC_Intel-XL710'"
- layout:
- layout: "plot-hdrh-latency-percentile-x-log"
-
-###############################################################################
-
-# GSO
-
-- type: "plot"
- title: "Throughput: 2n-icx-128kb-{core}-ip4routing-iperf3"
- algorithm: "plot_mrr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-icx-128kb-{core}-ip4routing-iperf3"
- data: "vpp-2n-icx-curr-iter-gso"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Gso.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-2Tap-Gso-Iperf3-Mrr.128KB-{core}-ethip4-ip4base-2tap-gso-iperf3-mrr"
- - "Tests.Vpp.Perf.Gso.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-2Tap-Iperf3-Mrr.128KB-{core}-ethip4-ip4base-2tap-iperf3-mrr"
- - "Tests.Vpp.Perf.Gso.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-2Vhost-Gso-Iperf3-Mrr.128KB-{core}-ethip4-ip4base-2vhost-gso-iperf3-mrr"
- - "Tests.Vpp.Perf.Gso.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-2Vhost-Iperf3-Mrr.128KB-{core}-ethip4-ip4base-2vhost-iperf3-mrr"
- layout:
- title: "2n-icx-128kb-{core}-ip4routing-iperf3"
- layout: "plot-throughput-gbps"
-
-- type: "plot"
- title: "Throughput: 2n-skx-128kb-{core}-ip4routing-iperf3"
- algorithm: "plot_mrr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-skx-128kb-{core}-ip4routing-iperf3"
- data: "vpp-2n-skx-curr-iter-gso"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Gso.2N1L-10Ge2P1X710-Ethip4-Ip4Base-2Tap-Gso-Iperf3-Mrr.128KB-{core}-ethip4-ip4base-2tap-gso-iperf3-mrr"
- - "Tests.Vpp.Perf.Gso.2N1L-10Ge2P1X710-Ethip4-Ip4Base-2Tap-Iperf3-Mrr.128KB-{core}-ethip4-ip4base-2tap-iperf3-mrr"
- - "Tests.Vpp.Perf.Gso.2N1L-10Ge2P1X710-Ethip4-Ip4Base-2Vhost-Gso-Iperf3-Mrr.128KB-{core}-ethip4-ip4base-2vhost-gso-iperf3-mrr"
- - "Tests.Vpp.Perf.Gso.2N1L-10Ge2P1X710-Ethip4-Ip4Base-2Vhost-Iperf3-Mrr.128KB-{core}-ethip4-ip4base-2vhost-iperf3-mrr"
- layout:
- title: "2n-skx-128kb-{core}-ip4routing-iperf3"
- layout: "plot-throughput-gbps"
-
-- type: "plot"
- title: "Throughput: 2n-clx-128kb-{core}-ip4routing-iperf3"
- algorithm: "plot_mrr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-clx-128kb-{core}-ip4routing-iperf3"
- data: "vpp-2n-clx-curr-iter-gso"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Gso.2N1L-10Ge2P1X710-Ethip4-Ip4Base-2Tap-Gso-Iperf3-Mrr.128KB-{core}-ethip4-ip4base-2tap-gso-iperf3-mrr"
- - "Tests.Vpp.Perf.Gso.2N1L-10Ge2P1X710-Ethip4-Ip4Base-2Tap-Iperf3-Mrr.128KB-{core}-ethip4-ip4base-2tap-iperf3-mrr"
- - "Tests.Vpp.Perf.Gso.2N1L-10Ge2P1X710-Ethip4-Ip4Base-2Vhost-Gso-Iperf3-Mrr.128KB-{core}-ethip4-ip4base-2vhost-gso-iperf3-mrr"
- - "Tests.Vpp.Perf.Gso.2N1L-10Ge2P1X710-Ethip4-Ip4Base-2Vhost-Iperf3-Mrr.128KB-{core}-ethip4-ip4base-2vhost-iperf3-mrr"
- layout:
- title: "2n-clx-128kb-{core}-ip4routing-iperf3"
- layout: "plot-throughput-gbps"
-
-- type: "plot"
- title: "Throughput: 2n-zn2-128kb-{core}-ip4routing-iperf3"
- algorithm: "plot_mrr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-zn2-128kb-{core}-ip4routing-iperf3"
- data: "vpp-2n-zn2-curr-iter-gso"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Gso.2N1L-10Ge2P1X710-Ethip4-Ip4Base-2Tap-Gso-Iperf3-Mrr.128KB-{core}-ethip4-ip4base-2tap-gso-iperf3-mrr"
- - "Tests.Vpp.Perf.Gso.2N1L-10Ge2P1X710-Ethip4-Ip4Base-2Tap-Iperf3-Mrr.128KB-{core}-ethip4-ip4base-2tap-iperf3-mrr"
- - "Tests.Vpp.Perf.Gso.2N1L-10Ge2P1X710-Ethip4-Ip4Base-2Vhost-Gso-Iperf3-Mrr.128KB-{core}-ethip4-ip4base-2vhost-gso-iperf3-mrr"
- - "Tests.Vpp.Perf.Gso.2N1L-10Ge2P1X710-Ethip4-Ip4Base-2Vhost-Iperf3-Mrr.128KB-{core}-ethip4-ip4base-2vhost-iperf3-mrr"
- layout:
- title: "2n-zn2-128kb-{core}-ip4routing-iperf3"
- layout: "plot-throughput-gbps"
-
-###############################################################################
-
-# TRex 2n-skx
-
-- type: "plot"
- title: "Throughput: 2n-skx-x710-64b--ip4-base-scale-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,TREX]}/2n-skx-x710-64b--ip4-base-scale-{test_type}"
- data: "trex-2n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Trex.Perf.Ip4.1N1L-10Ge2P1X710-Ethip4-Ip4Base-Tg-Ndrpdr.64B--ethip4-ip4base-tg-ndrpdr"
- - "Tests.Trex.Perf.Ip4.1N1L-10Ge2P1X710-Ethip4-Ip4Scale2M-Tg-Ndrpdr.64B--ethip4-ip4scale2m-tg-ndrpdr"
- layout:
- title: "2n-skx-x710-64b--ip4-base-scale-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-x710-64b--ip4routing-stf-cps-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,TREX]}/2n-skx-x710-64b--ip4routing-stf-cps-{test_type}"
- data: "trex-2n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Trex.Perf.Ip4.1N1L-10Ge2P1X710-Ethip4Tcp-Ip4Base-H1024-P63-S64512-Cps-Tg-Ndrpdr.64B--ethip4tcp-ip4base-h1024-p63-s64512-cps-tg-ndrpdr"
- - "Tests.Trex.Perf.Ip4.1N1L-10Ge2P1X710-Ethip4Tcp-Ip4Base-H262144-P63-S16515072-Cps-Tg-Ndrpdr.64B--ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg-ndrpdr"
- - "Tests.Trex.Perf.Ip4.1N1L-10Ge2P1X710-Ethip4Udp-Ip4Base-H1024-P63-S64512-Cps-Tg-Ndrpdr.64B--ethip4udp-ip4base-h1024-p63-s64512-cps-tg-ndrpdr"
- - "Tests.Trex.Perf.Ip4.1N1L-10Ge2P1X710-Ethip4Udp-Ip4Base-H262144-P63-S16515072-Cps-Tg-Ndrpdr.64B--ethip4udp-ip4base-h262144-p63-s16515072-cps-tg-ndrpdr"
- layout:
- title: "2n-skx-x710-64b--ip4routing-stf-cps-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-x710-64b--ip4routing-stf-pps-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,TREX]}/2n-skx-x710-64b--ip4routing-stf-pps-{test_type}"
- data: "trex-2n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Trex.Perf.Ip4.1N1L-10Ge2P1X710-Ethip4Tcp-Ip4Base-H1024-P63-S64512-pps-Tg-Ndrpdr.100B--ethip4tcp-ip4base-h1024-p63-s64512-pps-tg-ndrpdr"
- - "Tests.Trex.Perf.Ip4.1N1L-10Ge2P1X710-Ethip4Tcp-Ip4Base-H262144-P63-S16515072-pps-Tg-Ndrpdr.100B--ethip4tcp-ip4base-h262144-p63-s16515072-pps-tg-ndrpdr"
- - "Tests.Trex.Perf.Ip4.1N1L-10Ge2P1X710-Ethip4Udp-Ip4Base-H1024-P63-S64512-pps-Tg-Ndrpdr.100B--ethip4udp-ip4base-h1024-p63-s64512-pps-tg-ndrpdr"
- - "Tests.Trex.Perf.Ip4.1N1L-10Ge2P1X710-Ethip4Udp-Ip4Base-H262144-P63-S16515072-pps-Tg-Ndrpdr.100B--ethip4udp-ip4base-h262144-p63-s16515072-pps-tg-ndrpdr"
- layout:
- title: "2n-skx-x710-64b--ip4routing-stf-pps-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-x710-78b--ip6-base-scale-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,TREX]}/2n-skx-x710-78b--ip6-base-scale-{test_type}"
- data: "trex-2n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Trex.Perf.Ip6.1N1L-10Ge2P1X710-Ethip6-Ip6Base-Tg-Ndrpdr.78B--ethip6-ip6base-tg-ndrpdr"
- - "Tests.Trex.Perf.Ip6.1N1L-10Ge2P1X710-Ethip6-Ip6Scale2M-Tg-Ndrpdr.78B--ethip6-ip6scale2m-tg-ndrpdr"
- layout:
- title: "2n-skx-x710-78b--ip6-base-scale-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-skx-x710-64b--l2-scale-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,TREX]}/2n-skx-x710-64b--l2-scale-{test_type}"
- data: "trex-2n-skx-curr-iter"
- core: ["2t1c", ]
- include:
- - "Tests.Trex.Perf.L2.1N1L-10Ge2P1X710-Eth-L2Bdscale1Mmaclrn-Tg-Ndrpdr.64B--eth-l2bdscale1mmaclrn-tg-ndrpdr"
- layout:
- title: "2n-skx-x710-64b--l2-scale-{test_type}"
- layout: "plot-throughput"
diff --git a/resources/tools/presentation/specifications/report/environment.yaml b/resources/tools/presentation/specifications/report/environment.yaml
deleted file mode 100644
index f4b05cfc74..0000000000
--- a/resources/tools/presentation/specifications/report/environment.yaml
+++ /dev/null
@@ -1,251 +0,0 @@
-################################################################################
-### E N V I R O N M E N T ###
-################################################################################
-
-- type: "environment"
-
- spec-files:
- - "specifications/report/data_sets.yaml"
- - "specifications/report/layouts.yaml"
- - "specifications/report/elements.yaml"
-
- 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,TREX]: "{DIR[STATIC]}/trex"
- DIR[STATIC,ARCH]: "{DIR[STATIC]}/archive"
-
- # Detailed test results
- DIR[DTR]: "{DIR[WORKING,SRC]}/detailed_test_results"
- DIR[DTR,PERF,DPDK,2N,ICX]: "{DIR[DTR]}/dpdk_performance_results_2n_icx"
- DIR[DTR,PERF,DPDK,3N,ICX]: "{DIR[DTR]}/dpdk_performance_results_3n_icx"
- 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,ALT]: "{DIR[DTR]}/dpdk_performance_results_3n_alt"
- 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,TREX,2N,SKX]: "{DIR[DTR]}/trex_performance_results_2n_skx"
- DIR[DTR,PERF,VPP,ALL]: "{DIR[DTR]}/vpp_performance_results"
- 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,2N,ICX]: "{DIR[DTR]}/vpp_performance_results_2n_icx"
- DIR[DTR,PERF,VPP,3N,ICX]: "{DIR[DTR]}/vpp_performance_results_3n_icx"
- DIR[DTR,PERF,VPP,3N,ALT]: "{DIR[DTR]}/vpp_performance_results_3n_alt"
- 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,PERF,VPP,3N,AWS]: "{DIR[DTR]}/vpp_performance_results_3n_aws"
- DIR[DTR,PERF,VPP,2N,AWS]: "{DIR[DTR]}/vpp_performance_results_2n_aws"
- DIR[DTR,MRR,VPP,ALL]: "{DIR[DTR]}/vpp_mrr_results"
- 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,2N,ICX]: "{DIR[DTR]}/vpp_mrr_results_2n_icx"
- DIR[DTR,MRR,VPP,3N,ICX]: "{DIR[DTR]}/vpp_mrr_results_3n_icx"
- DIR[DTR,MRR,VPP,3N,ALT]: "{DIR[DTR]}/vpp_mrr_results_3n_alt"
- 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,MRR,VPP,3N,AWS]: "{DIR[DTR]}/vpp_mrr_results_3n_aws"
- DIR[DTR,MRR,VPP,2N,AWS]: "{DIR[DTR]}/vpp_mrr_results_2n_aws"
- 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,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,2N,ICX]: "{DIR[DTC]}/vpp_performance_configuration_2n_icx"
- DIR[DTC,PERF,VPP,3N,ICX]: "{DIR[DTC]}/vpp_performance_configuration_3n_icx"
- DIR[DTC,PERF,VPP,3N,ALT]: "{DIR[DTC]}/vpp_performance_configuration_3n_alt"
- 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,PERF,VPP,3N,AWS]: "{DIR[DTC]}/vpp_performance_configuration_3n_aws"
- DIR[DTC,PERF,VPP,2N,AWS]: "{DIR[DTC]}/vpp_performance_configuration_2n_aws"
- DIR[DTC,MRR,VPP,ALL]: "{DIR[DTC]}/vpp_mrr_configuration"
- 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,2N,ICX]: "{DIR[DTC]}/vpp_mrr_configuration_2n_icx"
- DIR[DTC,MRR,VPP,3N,ICX]: "{DIR[DTC]}/vpp_mrr_configuration_3n_icx"
- DIR[DTC,MRR,VPP,3N,ALT]: "{DIR[DTC]}/vpp_mrr_configuration_3n_alt"
- 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,MRR,VPP,3N,AWS]: "{DIR[DTC]}/vpp_mrr_configuration_3n_aws"
- DIR[DTC,MRR,VPP,2N,AWS]: "{DIR[DTC]}/vpp_mrr_configuration_2n_aws"
- 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,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,2N,ICX]: "{DIR[DTO]}/vpp_performance_operational_data_2n_icx"
- DIR[DTO,PERF,VPP,3N,ICX]: "{DIR[DTO]}/vpp_performance_operational_data_3n_icx"
- DIR[DTO,PERF,VPP,3N,ALT]: "{DIR[DTO]}/vpp_performance_operational_data_3n_alt"
- 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"
- DIR[DTO,PERF,VPP,3N,AWS]: "{DIR[DTO]}/vpp_performance_operational_data_3n_aws"
- DIR[DTO,PERF,VPP,2N,AWS]: "{DIR[DTO]}/vpp_performance_operational_data_2n_aws"
-
- # 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"
- DIR[LAT,TREX]: "{DIR[WORKING,SRC]}/trex_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"
-
- # Data sources are used in this order:
- data-sources:
- # XML
- - type: "xml"
- url: "https://s3-logs.fd.io/vex-yul-rot-jenkins-1"
- path: "{job}/{build}/{filename}"
- file-name: "output_info.xml.gz"
- file-format: ".gz"
- enabled: True
- # XML from S3 docs
- - type: "xml-docs"
- url: "https://s3-docs.fd.io/csit"
- path: "report/_static/archive"
- file-name: "output_info.xml.gz"
- file-format: ".gz"
- enabled: True
- - type: "xml-docs"
- url: "https://s3-docs.fd.io/csit"
- path: "report/_static/archive"
- file-name: "output.xml.gz"
- file-format: ".gz"
- enabled: True
-
- archive-inputs: False
-
- mapping-file: ""
-
- ignore-list: ""
-
- 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,TREX]"
- - "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]"
-
- reverse-input: False # Needed for trending, not important for the report
-
- limits:
- nic:
- x520: 29761904
- x553: 29761904
- x710: 29761904
- xxv710: 37500000
- xl710: 37500000
- cx556a: 148809523
- e810cq: 117000000
- e810xxv: 58000000
-
- link:
- 10ge: 14880952
- 25ge: 37202380
- 40ge: 59523809
- 100ge: 148809523
-
- pci:
- pci-g3-x8: 74404761
- pci-g3-x16: 148809523
-
- frequency: # [GHz]
- 2n-aws: 1.000
- 2n-dnv: 2.000
- 2n-clx: 2.300
- 2n-icx: 2.600
- 2n-skx: 2.500
- 2n-tx2: 2.500
- 2n-zn2: 2.900
- 3n-alt: 3.000
- 3n-aws: 1.000
- 3n-dnv: 2.000
- 3n-icx: 2.600
- 3n-skx: 2.500
- 3n-tsh: 2.200
-
-################################################################################
-### S T A T I C ###
-################################################################################
-
-- type: "static"
- src-path: "{DIR[RST]}"
- dst-path: "{DIR[WORKING,SRC]}"
-
-################################################################################
-### O U T P U T ###
-################################################################################
-
-- type: "output"
- arch-file-format:
- - ".gz"
- - ".zip"
- output: "report"
- format:
- html:
- - full
- pdf:
- - minimal
diff --git a/resources/tools/presentation/specifications/report/layouts.yaml b/resources/tools/presentation/specifications/report/layouts.yaml
deleted file mode 100644
index ac6d29a094..0000000000
--- a/resources/tools/presentation/specifications/report/layouts.yaml
+++ /dev/null
@@ -1,875 +0,0 @@
-################################################################################
-### L A Y O U T S ###
-################################################################################
-
-- type: "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: "array"
- 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: "array"
- 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: "array"
- 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: "array"
- tickfont:
- size: 14
- zeroline: False
- yaxis:
- title: "<b>Data 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: "array"
- 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: 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]
- 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"
-
- plot-scatter-error-bars-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>Data 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
diff --git a/resources/tools/presentation/specifications/report_local/data_sets.yaml b/resources/tools/presentation/specifications/report_local/data_sets.yaml
deleted file mode 100644
index c756a4667e..0000000000
--- a/resources/tools/presentation/specifications/report_local/data_sets.yaml
+++ /dev/null
@@ -1,51 +0,0 @@
-################################################################################
-### D A T A S E T S ###
-################################################################################
-
-- type: "data-sets"
-
- plot-vpp-throughput-tsa-3n-aws:
- 3n-aws-iter:
- - 1
- - 2
- - 3
- - 4
- - 5
- - 6
- - 7
- - 8
-
- vpp-perf-results-3n-aws:
- 3n-aws-iter:
- - 1
- - 2
-
- plot-vpp-latency-3n-aws:
- 3n-aws-iter:
- - 1
- - 2
-
- plot-vpp-throughput-tsa-2n-aws:
- 2n-aws-iter:
- - 1
- - 2
- - 3
- - 4
- - 5
- - 6
- - 7
- - 8
- - 9
- - 10
-
- vpp-perf-results-2n-aws:
- 2n-aws-iter:
- - 1
- - 2
- - 9
-
- plot-vpp-latency-2n-aws:
- 2n-aws-iter:
- - 1
- - 2
- - 9
diff --git a/resources/tools/presentation/specifications/report_local/elements.yaml b/resources/tools/presentation/specifications/report_local/elements.yaml
deleted file mode 100644
index 87ee409266..0000000000
--- a/resources/tools/presentation/specifications/report_local/elements.yaml
+++ /dev/null
@@ -1,322 +0,0 @@
-# Tables:
-
-# Detailed Test Results - VPP Performance Results 3n-aws
-- type: "table"
- title: "Detailed Test Results - VPP Performance Results 3n-aws"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,PERF,VPP,3N,AWS]}/"
- 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-aws"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Test configuration - VPP Performance Test Configs 3n-aws
-- type: "table"
- title: "Test configuration - VPP Performance Test Configs 3n-aws"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTC,PERF,VPP,3N,AWS]}/"
- 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-aws"
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# Test Operational Data - VPP Performance Operational Data 3n-aws
-- type: "table"
- title: "Test Operational Data - VPP Performance Operational Data 3n-aws"
- algorithm: "table_oper_data_html"
- output-file: "{DIR[DTO,PERF,VPP,3N,AWS]}/"
- data: "vpp-perf-results-3n-aws"
- filter: "all"
-
-# Detailed Test Results - VPP Performance Results 2n-aws
-- type: "table"
- title: "Detailed Test Results - VPP Performance Results 2n-aws"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTR,PERF,VPP,2N,AWS]}/"
- 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-aws"
- filter: "all"
- parameters:
- - "name"
- - "parent"
- - "msg"
-
-# Test configuration - VPP Performance Test Configs 2n-aws
-- type: "table"
- title: "Test configuration - VPP Performance Test Configs 2n-aws"
- algorithm: "table_merged_details"
- output-file: "{DIR[DTC,PERF,VPP,2N,AWS]}/"
- 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-aws"
- filter: "all"
- parameters:
- - "parent"
- - "name"
- - "conf-history"
-
-# Test Operational Data - VPP Performance Operational Data 2n-aws
-- type: "table"
- title: "Test Operational Data - VPP Performance Operational Data 2n-aws"
- algorithm: "table_oper_data_html"
- output-file: "{DIR[DTO,PERF,VPP,2N,AWS]}/"
- data: "vpp-perf-results-2n-aws"
- 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,AWS]}"
- - "{DIR[DTR,PERF,VPP,3N,AWS]}"
- data:
- - "vpp-perf-results-2n-aws"
- - "vpp-perf-results-3n-aws"
- 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"
- - "2n-aws"
- - "3n-aws"
- level-3:
- - "xl710"
- - "x520"
- - "xxv710"
- - "x710"
- - "x553"
- - "cx556a"
- - "vic1227"
- - "vic1385"
- - "ena"
-
-# 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,AWS]}"
- - "{DIR[DTC,PERF,VPP,3N,AWS]}"
- data:
- - "vpp-perf-results-2n-aws"
- - "vpp-perf-results-3n-aws"
- 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"
- - "2n-aws"
- - "3n-aws"
- level-3:
- - "xl710"
- - "x520"
- - "xxv710"
- - "x710"
- - "x553"
- - "cx556a"
- - "vic1227"
- - "vic1385"
- - "ena"
-
-# 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,AWS]}"
- - "{DIR[DTO,PERF,VPP,3N,AWS]}"
- data:
- - "vpp-perf-results-2n-aws"
- - "vpp-perf-results-3n-aws"
- 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"
- - "2n-aws"
- - "3n-aws"
- level-3:
- - "xl710"
- - "x520"
- - "xxv710"
- - "x710"
- - "x553"
- - "cx556a"
- - "vic1227"
- - "vic1385"
- - "ena"
-
-# Plots:
-
-- type: "plot"
- title: "Throughput: 2n-aws-nitro50g-64b-{core}-ip4routing-base-scale-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-aws-nitro50g-64b-{core}-ip4routing-base-scale-{test_type}"
- data: "plot-vpp-throughput-tsa-2n-aws"
- core: ["2t1c", "4t2c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2n1l-50ge1p1ENA-ethip4-ip4base-ndrpdr.64B-{core}-ethip4-ip4base-ndrpdr"
-# - "Tests.Vpp.Perf.Ip4.2n1l-50ge1p1ENA-ethip4-ip4scale2m-ndrpdr.64B-{core}-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-aws-nitro50g-64b-{core}-ip4routing-base-scale-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-aws-nitro50g-1518b-{core}-ip4routing-base-scale-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-aws-nitro50g-1518b-{core}-ip4routing-base-scale-{test_type}"
- data: "plot-vpp-throughput-tsa-2n-aws"
- core: ["2t1c", "4t2c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2n1l-50ge1p1ENA-ethip4-ip4base-ndrpdr.1518B-{core}-ethip4-ip4base-ndrpdr"
-# - "Tests.Vpp.Perf.Ip4.2n1l-50ge1p1ENA-ethip4-ip4scale2m-ndrpdr.1518B-{core}-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-aws-nitro50g-1518b-{core}-ip4routing-base-scale-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 2n-aws-nitro50g-imix-{core}-ip4routing-base-scale-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/2n-aws-nitro50g-imix-{core}-ip4routing-base-scale-{test_type}"
- data: "plot-vpp-throughput-tsa-2n-aws"
- core: ["2t1c", "4t2c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2n1l-50ge1p1ENA-ethip4-ip4scale2m-ndrpdr.IMIX-{core}-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "2n-aws-nitro50g-imix-{core}-ip4routing-base-scale-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-aws-nitro50g-64b-{core}-ip4routing-base-scale-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-aws-nitro50g-64b-{core}-ip4routing-base-scale-{test_type}"
- data: "plot-vpp-throughput-tsa-3n-aws"
- core: ["2t1c", "4t2c"]
- include:
- - "Tests.Vpp.Perf.Ip4.50ge1p1ENA-ethip4-ip4base-ndrpdr.64B-{core}-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.50ge1p1ENA-ethip4-ip4scale2m-ndrpdr.64B-{core}-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "3n-aws-nitro50g-64b-{core}-ip4routing-base-scale-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Throughput: 3n-aws-nitro50g-1518b-{core}-ip4routing-base-scale-{test_type}"
- algorithm: "plot_ndrpdr_box_name"
- output-file: "{DIR[STATIC,VPP]}/3n-aws-nitro50g-1518b-{core}-ip4routing-base-scale-{test_type}"
- data: "plot-vpp-throughput-tsa-3n-aws"
- core: ["2t1c", "4t2c"]
- include:
- - "Tests.Vpp.Perf.Ip4.50ge1p1ENA-ethip4-ip4base-ndrpdr.1518B-{core}-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.50ge1p1ENA-ethip4-ip4scale2m-ndrpdr.1518B-{core}-ethip4-ip4scale2m-ndrpdr"
- layout:
- title: "3n-aws-nitro50g-1518b-{core}-ip4routing-base-scale-{test_type}"
- layout: "plot-throughput"
-
-- type: "plot"
- title: "Latency by percentile: 2n-aws"
- algorithm: "plot_hdrh_lat_by_percentile_x_log"
- output-file: "{DIR[STATIC,VPP]}/hdrh-lat-percentile-2n-aws"
- output-file-links: "{DIR[LAT,VPP]}/2n_aws.rst"
- target-links: "../../_static/vpp"
- data: "plot-vpp-latency-2n-aws"
- filter: "'2T1C'"
- layout:
- layout: "plot-hdrh-latency-percentile-x-log"
-
-- type: "plot"
- title: "Latency by percentile: 3n-aws"
- algorithm: "plot_hdrh_lat_by_percentile_x_log"
- output-file: "{DIR[STATIC,VPP]}/hdrh-lat-percentile-3n-aws"
- output-file-links: "{DIR[LAT,VPP]}/3n_aws.rst"
- target-links: "../../_static/vpp"
- data: "plot-vpp-latency-3n-aws"
- filter: "'2T1C'"
- layout:
- layout: "plot-hdrh-latency-percentile-x-log"
diff --git a/resources/tools/presentation/specifications/report_local/environment.yaml b/resources/tools/presentation/specifications/report_local/environment.yaml
deleted file mode 100644
index cdbce03155..0000000000
--- a/resources/tools/presentation/specifications/report_local/environment.yaml
+++ /dev/null
@@ -1,265 +0,0 @@
-################################################################################
-### E N V I R O N M E N T ###
-################################################################################
-
-- type: "environment"
-
- spec-files:
- - "specifications/report_local/data_sets.yaml"
- - "specifications/report_local/layouts.yaml"
- - "specifications/report_local/elements.yaml"
-
- 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,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,PERF,VPP,3N,AWS]: "{DIR[DTR]}/vpp_performance_results_3n_aws"
- DIR[DTR,PERF,VPP,2N,AWS]: "{DIR[DTR]}/vpp_performance_results_2n_aws"
- 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,PERF,VPP,3N,AWS]: "{DIR[DTC]}/vpp_performance_configuration_3n_aws"
- DIR[DTC,PERF,VPP,2N,AWS]: "{DIR[DTC]}/vpp_performance_configuration_2n_aws"
- 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"
- DIR[DTO,PERF,VPP,3N,AWS]: "{DIR[DTO]}/vpp_performance_operational_data_3n_aws"
- DIR[DTO,PERF,VPP,2N,AWS]: "{DIR[DTO]}/vpp_performance_operational_data_2n_aws"
-
- # 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"
-
- # Data sources are used in this order:
- data-sources:
- # JSON from S3
- - type: "json"
- url: "https://logs.nginx.service.consul/vex-yul-rot-jenkins-1"
- path: "{job}/{build}/{filename}"
- file-name: "output.json.gz"
- file-format: ".gz"
- enabled: False
- # XML from S3
- - type: "xml"
- url: "https://logs.nginx.service.consul/vex-yul-rot-jenkins-1"
- path: "{job}/{build}/archives/{filename}"
- file-name: "output_info.xml.gz"
- file-format: ".gz"
- enabled: False
- - type: "xml"
- url: "https://logs.nginx.service.consul/vex-yul-rot-jenkins-1"
- path: "{job}/{build}/{filename}"
- file-name: "output_info.xml.gz"
- file-format: ".gz"
- enabled: False
- - type: "xml"
- url: "https://logs.fd.io/production/vex-yul-rot-jenkins-1"
- path: "{job}/{build}/archives/{filename}"
- file-name: "output_info.xml.gz"
- file-format: ".gz"
- enabled: True
- - type: "xml"
- url: "https://s3-logs.fd.io/logs/production/vex-yul-rot-jenkins-1"
- path: "{job}/{build}/{filename}"
- file-name: "output_info.xml.gz"
- file-format: ".gz"
- enabled: True
- - type: "xml"
- url: "https://logs.fd.io/production/vex-yul-rot-jenkins-1"
- path: "{job}/{build}/archives/{filename}"
- file-name: "output.xml.gz"
- file-format: ".gz"
- enabled: True
- - type: "xml"
- url: "https://logs.nginx.service.consul/vex-yul-rot-jenkins-1"
- path: "{job}/{build}/archives/{filename}"
- file-name: "output.xml.gz"
- file-format: ".gz"
- enabled: False
- - type: "xml"
- url: "https://logs.nginx.service.consul/vex-yul-rot-jenkins-1"
- path: "{job}/{build}/{filename}"
- file-name: "output.xml.gz"
- file-format: ".gz"
- enabled: False
- - type: "xml"
- url: "https://logs.fd.io/production/vex-yul-rot-jenkins-1"
- path: "{job}/{build}/{filename}"
- file-name: "output_info.xml.gz"
- file-format: ".gz"
- enabled: True
- - type: "xml"
- url: "https://logs.fd.io/production/vex-yul-rot-jenkins-1"
- path: "{job}/{build}/{filename}"
- file-name: "output.xml.gz"
- file-format: ".gz"
- enabled: True
- # XML from docs.nexus
- - type: "xml-docs"
- url: "https://docs.fd.io/csit"
- path: "report/_static/archive"
- file-name: "output_info.xml.gz"
- file-format: ".gz"
- enabled: True
- - type: "xml-docs"
- url: "https://docs.fd.io/csit"
- path: "report/_static/archive"
- file-name: "output.xml.gz"
- file-format: ".gz"
- enabled: True
- - type: "xml-docs"
- url: "https://docs.fd.io/csit"
- path: "report/_static/archive"
- file-name: "robot-plugin.zip"
- file-format: ".zip"
- enabled: True
-
- archive-inputs: True
-
- mapping-file: ""
-
- ignore-list: ""
-
- 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]"
-
- reverse-input: False # Needed for trending, not important for the report
-
- # TODO: Change in code needed, it was in type: "configuration"
- limits:
- nic:
- x520: 24460000
- x553: 29761905
- x710: 35800000
- xxv710: 35800000
- xl710: 35800000
- cx556a: 148809523.81
- e810cq: 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
-
-################################################################################
-### S T A T I C ###
-################################################################################
-
-- type: "static"
- src-path: "{DIR[RST]}"
- dst-path: "{DIR[WORKING,SRC]}"
-
-################################################################################
-### O U T P U T ###
-################################################################################
-
-- type: "output"
- arch-file-format: # moved from input, TODO: change it in the code
- - ".gz"
- - ".zip"
- output: "report"
- format:
- html:
- - full
-# pdf:
-# - minimal
diff --git a/resources/tools/presentation/specifications/report_local/layouts.yaml b/resources/tools/presentation/specifications/report_local/layouts.yaml
deleted file mode 100644
index 0f5b4a5220..0000000000
--- a/resources/tools/presentation/specifications/report_local/layouts.yaml
+++ /dev/null
@@ -1,875 +0,0 @@
-################################################################################
-### L A Y O U T S ###
-################################################################################
-
-- type: "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>Data 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: 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]
- 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"
-
- plot-scatter-error-bars-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>Data 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
diff --git a/resources/tools/presentation/specifications/trending/data_sets.yaml b/resources/tools/presentation/specifications/trending/data_sets.yaml
deleted file mode 100644
index c0ef28e477..0000000000
--- a/resources/tools/presentation/specifications/trending/data_sets.yaml
+++ /dev/null
@@ -1,331 +0,0 @@
-################################################################################
-### D A T A S E T S ###
-################################################################################
-
-- type: "data-sets"
-
- # Compressed failed tests (last builds)
- table-last-failed-tests-3n-alt:
- csit-vpp-perf-mrr-daily-master-3n-alt:
- - "lastCompletedBuild"
- table-last-failed-tests-2n-icx:
- csit-vpp-perf-mrr-daily-master-2n-icx:
- - "lastCompletedBuild"
- table-last-failed-tests-3n-icx:
- csit-vpp-perf-mrr-daily-master-3n-icx:
- - "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-2n-tx2:
- csit-vpp-perf-mrr-daily-master-2n-tx2:
- - "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-2n-aws:
- csit-vpp-perf-mrr-weekly-master-2n-aws:
- - "lastCompletedBuild"
- table-last-failed-tests-2n-icx-ndrpdr:
- csit-vpp-perf-ndrpdr-weekly-master-2n-icx:
- - "lastCompletedBuild"
- table-last-failed-tests-3n-icx-ndrpdr:
- csit-vpp-perf-ndrpdr-weekly-master-3n-icx:
- - "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-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"
- table-last-failed-tests-dpdk-2n-tx2:
- csit-dpdk-perf-mrr-weekly-master-2n-tx2:
- - "lastCompletedBuild"
- table-last-failed-tests-trex-2n-skx-ndrpdr:
- csit-trex-perf-ndrpdr-weekly-master-2n-skx:
- - "lastCompletedBuild"
-
- # 3n-alt
- plot-performance-trending-vpp-3n-alt:
- csit-vpp-perf-mrr-daily-master-3n-alt:
- start: 2
- end: "lastCompletedBuild"
- max-builds: 180
-
- # 2n-icx
- plot-performance-trending-vpp-2n-icx:
- csit-vpp-perf-mrr-daily-master-2n-icx:
- start: 6
- end: "lastCompletedBuild"
- max-builds: 180
-
- plot-performance-trending-vpp-nfv-2n-icx:
- csit-vpp-perf-mrr-weekly-master-2n-icx:
- start: 1
- end: "lastCompletedBuild"
- max-builds: 26
-
- plot-performance-trending-dpdk-2n-icx:
- csit-dpdk-perf-mrr-weekly-master-2n-icx:
- start: 1
- end: "lastCompletedBuild"
- max-builds: 26
-
- # 3n-icx
- plot-performance-trending-vpp-3n-icx:
- csit-vpp-perf-mrr-daily-master-3n-icx:
- start: 1
- end: "lastCompletedBuild"
- max-builds: 180
-
- plot-performance-trending-dpdk-3n-icx:
- csit-dpdk-perf-mrr-weekly-master-3n-icx:
- start: 1
- 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"
- max-builds: 180
-
- 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
-
- plot-ndrpdr-trending-trex-2n-skx:
- csit-trex-perf-ndrpdr-weekly-master-2n-skx:
- start: 3
- end: "lastCompletedBuild"
- max-builds: 26
-
- # 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
-
- 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"
- max-builds: 180
-
- plot-performance-trending-dpdk-3n-tsh:
- csit-dpdk-perf-mrr-weekly-master-3n-tsh:
- start: 4
- end: "lastCompletedBuild"
- max-builds: 26
-
- # 2n-tx2
- plot-performance-trending-vpp-2n-tx2:
- csit-vpp-perf-mrr-daily-master-2n-tx2:
- start: 1
- end: "lastCompletedBuild"
- max-builds: 180
-
- plot-performance-trending-dpdk-2n-tx2:
- csit-dpdk-perf-mrr-weekly-master-2n-tx2:
- start: 1
- end: "lastCompletedBuild"
- max-builds: 26
-
- # 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
-
- # 3n-aws
- plot-performance-trending-vpp-3n-aws:
- csit-vpp-perf-mrr-weekly-master-3n-aws:
- start: 5
- end: 45
- max-builds: 26
-
- # 2n-aws
- plot-performance-trending-vpp-2n-aws:
- csit-vpp-perf-mrr-weekly-master-2n-aws:
- start: 4
- end: "lastCompletedBuild"
- max-builds: 26
-
- # NDRPDR
- plot-ndrpdr-comparison-2n-icx:
- csit-vpp-perf-ndrpdr-weekly-master-2n-icx:
- start: 1
- end: "lastCompletedBuild"
- max-builds: 26
-
- plot-ndrpdr-comparison-3n-icx:
- csit-vpp-perf-ndrpdr-weekly-master-3n-icx:
- start: 1
- end: "lastCompletedBuild"
- max-builds: 26
-
- 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
-
- plot-ndrpdr-comparison-2n-clx:
- csit-vpp-perf-ndrpdr-weekly-master-2n-clx:
- start: 21
- end: "lastCompletedBuild"
- max-builds: 26
-
- table-ndrpdr-comparison-2n-icx:
- csit-vpp-perf-ndrpdr-weekly-master-2n-icx:
- start: 1
- end: "lastCompletedBuild"
- max-builds: 26
- reverse: True # Must be reversed
-
- table-ndrpdr-comparison-3n-icx:
- csit-vpp-perf-ndrpdr-weekly-master-3n-icx:
- start: 1
- end: "lastCompletedBuild"
- max-builds: 26
- reverse: True # Must be reversed
-
- 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
-
- 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
diff --git a/resources/tools/presentation/specifications/trending/elements.yaml b/resources/tools/presentation/specifications/trending/elements.yaml
deleted file mode 100644
index a780be92c3..0000000000
--- a/resources/tools/presentation/specifications/trending/elements.yaml
+++ /dev/null
@@ -1,7090 +0,0 @@
-################################################################################
-### P L O T S ###
-################################################################################
-
-- type: "plot"
- title: "Statistics: 3n-alt mrr"
- algorithm: "plot_statistics"
- output-file: "{DIR[STATIC,VPP]}/stats-3n-alt-mrr"
- data: "plot-performance-trending-vpp-3n-alt"
- layout:
- layout: "plot-statistics"
-
-- type: "plot"
- title: "Statistics: 2n-icx mrr"
- algorithm: "plot_statistics"
- output-file: "{DIR[STATIC,VPP]}/stats-2n-icx-mrr"
- data: "plot-performance-trending-vpp-2n-icx"
- layout:
- layout: "plot-statistics"
-
-- type: "plot"
- title: "Statistics: 2n-icx ndrpdr"
- algorithm: "plot_statistics"
- output-file: "{DIR[STATIC,VPP]}/stats-2n-icx-ndrpdr"
- data: "plot-ndrpdr-comparison-2n-icx"
- layout:
- layout: "plot-statistics"
-
-- type: "plot"
- title: "Statistics: DPDK 2n-icx mrr"
- algorithm: "plot_statistics"
- output-file: "{DIR[STATIC,VPP]}/stats-dpdk-2n-icx-mrr"
- data: "plot-performance-trending-dpdk-2n-icx"
- layout:
- layout: "plot-statistics"
-
-- type: "plot"
- title: "Statistics: 3n-icx mrr"
- algorithm: "plot_statistics"
- output-file: "{DIR[STATIC,VPP]}/stats-3n-icx-mrr"
- data: "plot-performance-trending-vpp-3n-icx"
- layout:
- layout: "plot-statistics"
-
-- type: "plot"
- title: "Statistics: 3n-icx ndrpdr"
- algorithm: "plot_statistics"
- output-file: "{DIR[STATIC,VPP]}/stats-3n-icx-ndrpdr"
- data: "plot-ndrpdr-comparison-3n-icx"
- layout:
- layout: "plot-statistics"
-
-- type: "plot"
- title: "Statistics: DPDK 3n-icx mrr"
- algorithm: "plot_statistics"
- output-file: "{DIR[STATIC,VPP]}/stats-dpdk-3n-icx-mrr"
- data: "plot-performance-trending-dpdk-3n-icx"
- layout:
- layout: "plot-statistics"
-
-- type: "plot"
- title: "Statistics: 3n-skx mrr"
- algorithm: "plot_statistics"
- output-file: "{DIR[STATIC,VPP]}/stats-3n-skx-mrr"
- data: "plot-performance-trending-vpp-3n-skx"
- layout:
- layout: "plot-statistics"
-
-- type: "plot"
- title: "Statistics: 3n-skx ndrpdr"
- algorithm: "plot_statistics"
- output-file: "{DIR[STATIC,VPP]}/stats-3n-skx-ndrpdr"
- data: "plot-ndrpdr-comparison-3n-skx"
- layout:
- layout: "plot-statistics"
-
-- type: "plot"
- title: "Statistics: DPDK 3n-skx mrr"
- algorithm: "plot_statistics"
- output-file: "{DIR[STATIC,VPP]}/stats-dpdk-3n-skx-mrr"
- data: "plot-performance-trending-dpdk-3n-skx"
- layout:
- layout: "plot-statistics"
-
-- type: "plot"
- title: "Statistics: 2n-skx mrr"
- algorithm: "plot_statistics"
- output-file: "{DIR[STATIC,VPP]}/stats-2n-skx-mrr"
- data: "plot-performance-trending-vpp-2n-skx"
- layout:
- layout: "plot-statistics"
-
-- type: "plot"
- title: "Statistics: 2n-skx ndrpdr"
- algorithm: "plot_statistics"
- output-file: "{DIR[STATIC,VPP]}/stats-2n-skx-ndrpdr"
- data: "plot-ndrpdr-comparison-2n-skx"
- layout:
- layout: "plot-statistics"
-
-- type: "plot"
- title: "Statistics: DPDK 2n-skx mrr"
- algorithm: "plot_statistics"
- output-file: "{DIR[STATIC,VPP]}/stats-dpdk-2n-skx-mrr"
- data: "plot-performance-trending-dpdk-2n-skx"
- layout:
- layout: "plot-statistics"
-
-- type: "plot"
- title: "Statistics: TRex 2n-skx ndrpdr"
- algorithm: "plot_statistics"
- output-file: "{DIR[STATIC,VPP]}/stats-trex-2n-skx-ndrpdr"
- data: "plot-ndrpdr-trending-trex-2n-skx"
- layout:
- layout: "plot-statistics"
-
-- type: "plot"
- title: "Statistics: 2n-clx mrr"
- algorithm: "plot_statistics"
- output-file: "{DIR[STATIC,VPP]}/stats-2n-clx-mrr"
- data: "plot-performance-trending-vpp-2n-clx"
- layout:
- layout: "plot-statistics"
-
-- type: "plot"
- title: "Statistics: 2n-clx ndrpdr"
- algorithm: "plot_statistics"
- output-file: "{DIR[STATIC,VPP]}/stats-2n-clx-ndrpdr"
- data: "plot-ndrpdr-comparison-2n-clx"
- layout:
- layout: "plot-statistics"
-
-- type: "plot"
- title: "Statistics: DPDK 2n-clx mrr"
- algorithm: "plot_statistics"
- output-file: "{DIR[STATIC,VPP]}/stats-dpdk-2n-clx-mrr"
- data: "plot-performance-trending-dpdk-2n-clx"
- layout:
- layout: "plot-statistics"
-
-- type: "plot"
- title: "Statistics: 2n-zn2 mrr"
- algorithm: "plot_statistics"
- output-file: "{DIR[STATIC,VPP]}/stats-2n-zn2-mrr"
- data: "plot-performance-trending-vpp-2n-zn2"
- layout:
- layout: "plot-statistics"
-
-- type: "plot"
- title: "Statistics: DPDK 2n-zn2 mrr"
- algorithm: "plot_statistics"
- output-file: "{DIR[STATIC,VPP]}/stats-dpdk-2n-zn2-mrr"
- data: "plot-performance-trending-dpdk-2n-zn2"
- layout:
- layout: "plot-statistics"
-
-- type: "plot"
- title: "Statistics: 3n-tsh mrr"
- algorithm: "plot_statistics"
- output-file: "{DIR[STATIC,VPP]}/stats-3n-tsh-mrr"
- data: "plot-performance-trending-vpp-3n-tsh"
- layout:
- layout: "plot-statistics"
-
-- type: "plot"
- title: "Statistics: DPDK 3n-tsh mrr"
- algorithm: "plot_statistics"
- output-file: "{DIR[STATIC,VPP]}/stats-dpdk-3n-tsh-mrr"
- data: "plot-performance-trending-dpdk-3n-tsh"
- layout:
- layout: "plot-statistics"
-
-- type: "plot"
- title: "Statistics: 2n-tx2 mrr"
- algorithm: "plot_statistics"
- output-file: "{DIR[STATIC,VPP]}/stats-2n-tx2-mrr"
- data: "plot-performance-trending-vpp-2n-tx2"
- layout:
- layout: "plot-statistics"
-
-- type: "plot"
- title: "Statistics: DPDK 2n-tx2 mrr"
- algorithm: "plot_statistics"
- output-file: "{DIR[STATIC,VPP]}/stats-dpdk-2n-tx2-mrr"
- data: "plot-performance-trending-dpdk-2n-tx2"
- layout:
- layout: "plot-statistics"
-
-- type: "plot"
- title: "Statistics: 3n-dnv mrr"
- algorithm: "plot_statistics"
- output-file: "{DIR[STATIC,VPP]}/stats-3n-dnv-mrr"
- data: "plot-performance-trending-vpp-3n-dnv"
- layout:
- layout: "plot-statistics"
-
-- type: "plot"
- title: "Statistics: 2n-dnv mrr"
- algorithm: "plot_statistics"
- output-file: "{DIR[STATIC,VPP]}/stats-2n-dnv-mrr"
- data: "plot-performance-trending-vpp-2n-dnv"
- layout:
- layout: "plot-statistics"
-
-- type: "plot"
- title: "Statistics: 3n-aws mrr"
- algorithm: "plot_statistics"
- output-file: "{DIR[STATIC,VPP]}/stats-3n-aws-mrr"
- data: "plot-performance-trending-vpp-3n-aws"
- layout:
- layout: "plot-statistics"
-
-- type: "plot"
- title: "Statistics: 2n-aws mrr"
- algorithm: "plot_statistics"
- output-file: "{DIR[STATIC,VPP]}/stats-2n-aws-mrr"
- data: "plot-performance-trending-vpp-2n-aws"
- layout:
- layout: "plot-statistics"
-
-################################################################################
-### T A B L E S ###
-################################################################################
-
-# VPP NDRPDR weekly comparison 2n-icx-xxv710 2t1c ndr
-- type: "table"
- title: "VPP NDRPDR weekly comparison 2n-icx-xxv710 2t1c ndr"
- algorithm: "table_weekly_comparison"
- output-file: "{DIR[STATIC,VPP]}/ndrpdr-weekly-comp-2n-icx-2t1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- data: "table-ndrpdr-comparison-2n-icx"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- nr-of-data-columns: 3
- comparisons:
- - reference: -3
- compare: -1
- - reference: -2
- compare: -1
-
-# VPP NDRPDR weekly comparison 2n-icx-xxv710 2t1c pdr
-- type: "table"
- title: "VPP NDRPDR weekly comparison 2n-icx-xxv710 2t1c pdr"
- algorithm: "table_weekly_comparison"
- output-file: "{DIR[STATIC,VPP]}/ndrpdr-weekly-comp-2n-icx-2t1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- data: "table-ndrpdr-comparison-2n-icx"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- nr-of-data-columns: 3
- comparisons:
- - reference: -3
- compare: -1
- - reference: -2
- compare: -1
-
-# VPP NDRPDR weekly comparison 3n-icx-xxv710 2t1c ndr
-- type: "table"
- title: "VPP NDRPDR weekly comparison 3n-icx-xxv710 2t1c ndr"
- algorithm: "table_weekly_comparison"
- output-file: "{DIR[STATIC,VPP]}/ndrpdr-weekly-comp-3n-icx-2t1c-ndr"
- include-tests: "NDR" # "PDR" | "NDR" | "MRR"
- data: "table-ndrpdr-comparison-3n-icx"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- nr-of-data-columns: 3
- comparisons:
- - reference: -3
- compare: -1
- - reference: -2
- compare: -1
-
-# VPP NDRPDR weekly comparison 3n-icx-xxv710 2t1c pdr
-- type: "table"
- title: "VPP NDRPDR weekly comparison 3n-icx-xxv710 2t1c pdr"
- algorithm: "table_weekly_comparison"
- output-file: "{DIR[STATIC,VPP]}/ndrpdr-weekly-comp-3n-icx-2t1c-pdr"
- include-tests: "PDR" # "PDR" | "NDR" | "MRR"
- data: "table-ndrpdr-comparison-3n-icx"
- filter: "'2T1C' and 'NDRPDR' and 'NIC_Intel-XXV710'"
- nr-of-data-columns: 3
- comparisons:
- - reference: -3
- compare: -1
- - reference: -2
- compare: -1
-
-# 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
-
-# Last failed tests
-
-- type: "table"
- title: "Last failed tests (last builds) VPP 3n-alt"
- algorithm: "table_last_failed_tests"
- output-file-ext: ".txt"
- output-file: "{DIR[STATIC,VPP]}/last-failed-tests-vpp-3n-alt-mrr"
- data: "table-last-failed-tests-3n-alt"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
- - "msg"
-
-- type: "table"
- title: "Last failed tests (last builds) VPP 2n-icx"
- algorithm: "table_last_failed_tests"
- output-file-ext: ".txt"
- output-file: "{DIR[STATIC,VPP]}/last-failed-tests-vpp-2n-icx-mrr"
- data: "table-last-failed-tests-2n-icx"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
- - "msg"
-
-- type: "table"
- title: "Last failed tests (last builds) VPP 3n-icx"
- algorithm: "table_last_failed_tests"
- output-file-ext: ".txt"
- output-file: "{DIR[STATIC,VPP]}/last-failed-tests-vpp-3n-icx-mrr"
- data: "table-last-failed-tests-3n-icx"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
- - "msg"
-
-- 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"
- - "msg"
-
-- 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"
- - "msg"
-
-- 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"
- - "msg"
-
-- 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"
- - "msg"
-
-- 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"
- - "msg"
-
-- type: "table"
- title: "Last failed tests (last builds) VPP 2n-tx2"
- algorithm: "table_last_failed_tests"
- output-file-ext: ".txt"
- output-file: "{DIR[STATIC,VPP]}/last-failed-tests-vpp-2n-tx2-mrr"
- data: "table-last-failed-tests-2n-tx2"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
- - "msg"
-
-- 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"
- - "msg"
-
-- 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"
- - "msg"
-
-- type: "table"
- title: "Last failed tests (last builds) VPP 2n-aws"
- algorithm: "table_last_failed_tests"
- output-file-ext: ".txt"
- output-file: "{DIR[STATIC,VPP]}/last-failed-tests-vpp-2n-aws-mrr"
- data: "table-last-failed-tests-2n-aws"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
- - "msg"
-
-- type: "table"
- title: "Last failed tests (last builds) VPP 2n-icx-ndrpdr"
- algorithm: "table_last_failed_tests"
- output-file-ext: ".txt"
- output-file: "{DIR[STATIC,VPP]}/last-failed-tests-vpp-2n-icx-ndrpdr"
- data: "table-last-failed-tests-2n-icx-ndrpdr"
- filter: "'NDRPDR'"
- parameters:
- - "name"
- - "parent"
- - "status"
- - "msg"
-
-- type: "table"
- title: "Last failed tests (last builds) VPP 3n-icx-ndrpdr"
- algorithm: "table_last_failed_tests"
- output-file-ext: ".txt"
- output-file: "{DIR[STATIC,VPP]}/last-failed-tests-vpp-3n-icx-ndrpdr"
- data: "table-last-failed-tests-3n-icx-ndrpdr"
- filter: "'NDRPDR'"
- parameters:
- - "name"
- - "parent"
- - "status"
- - "msg"
-
-- 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"
- - "msg"
-
-- 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"
- - "msg"
-
-- 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"
- - "msg"
-
-- 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"
- - "msg"
-
-- type: "table"
- title: "Last failed tests (last builds) DPDK 2n-tx2"
- algorithm: "table_last_failed_tests"
- output-file-ext: ".txt"
- output-file: "{DIR[STATIC,VPP]}/last-failed-tests-dpdk-2n-tx2-mrr"
- data: "table-last-failed-tests-dpdk-2n-tx2"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
- - "msg"
-
-- 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"
- - "msg"
-
-- 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"
- - "msg"
-
-- 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"
- - "msg"
-
-# 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
-
-###############################################################################
-# 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"
- - "msg"
- 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"
- - "msg"
- 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"
- - "msg"
- 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"
- - "msg"
- 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"
- - "msg"
- 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"
- - "msg"
- 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"
- - "msg"
- 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"
-
-################################################################################
-# 2n-icx
-- type: "table"
- title: "Performance trending dashboard 2t1c-2n-icx"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-2n-icx"
- data: "plot-performance-trending-vpp-2n-icx"
- filter: "'MRR' and '2T1C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
-- type: "table"
- title: "Performance trending dashboard 4t2c-2n-icx"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t2c-2n-icx"
- data: "plot-performance-trending-vpp-2n-icx"
- filter: "'MRR' and '4T2C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
-- type: "table"
- title: "Performance trending dashboard 8t4c-2n-icx"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-8t4c-2n-icx"
- data: "plot-performance-trending-vpp-2n-icx"
- filter: "'MRR' and '8T4C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
-- type: "table"
- title: "HTML performance trending dashboard 2t1c-2n-icx"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-2n-icx.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-2n-icx.rst"
- testbed: "2n-icx"
-
-- type: "table"
- title: "HTML performance trending dashboard 4t2c-2n-icx"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t2c-2n-icx.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t2c-2n-icx.rst"
- testbed: "2n-icx"
-
-- type: "table"
- title: "HTML performance trending dashboard 8t4c-2n-icx"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-8t4c-2n-icx.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-8t4c-2n-icx.rst"
- testbed: "2n-icx"
-
-- type: "table"
- title: "Failed MRR tests 2n-icx"
- algorithm: "table_failed_tests"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-2n-icx"
- data: "plot-performance-trending-vpp-2n-icx"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
- - "msg"
- window: 7 # days
-
-- type: "table"
- title: "HTML Failed MRR tests 2n-icx"
- algorithm: "table_failed_tests_html"
- input-file: "{DIR[STATIC,VPP]}/failed-tests-2n-icx.csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-2n-icx.rst"
- testbed: "2n-icx"
-
-################################################################################
-# 3n-alt
-- type: "table"
- title: "Performance trending dashboard 1t1c-3n-alt"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-1t1c-3n-alt"
- data: "plot-performance-trending-vpp-3n-alt"
- filter: "'MRR' and '1T1C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
-- type: "table"
- title: "Performance trending dashboard 2t2c-3n-alt"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t2c-3n-alt"
- data: "plot-performance-trending-vpp-3n-alt"
- filter: "'MRR' and '2T2C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
-- type: "table"
- title: "Performance trending dashboard 4t4c-3n-alt"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t4c-3n-alt"
- data: "plot-performance-trending-vpp-3n-alt"
- filter: "'MRR' and '4T4C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
-- type: "table"
- title: "HTML performance trending dashboard 1t1c-3n-alt"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-1t1c-3n-alt.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-1t1c-3n-alt.rst"
- testbed: "3n-alt"
-
-- type: "table"
- title: "HTML performance trending dashboard 2t2c-3n-alt"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t2c-3n-alt.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t2c-3n-alt.rst"
- testbed: "3n-alt"
-
-- type: "table"
- title: "HTML performance trending dashboard 4t4c-3n-alt"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t4c-3n-alt.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t4c-3n-alt.rst"
- testbed: "3n-alt"
-
-- type: "table"
- title: "Failed MRR tests 3n-alt"
- algorithm: "table_failed_tests"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-3n-alt"
- data: "plot-performance-trending-vpp-3n-alt"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
- - "msg"
- window: 7 # days
-
-- type: "table"
- title: "HTML Failed MRR tests 3n-alt"
- algorithm: "table_failed_tests_html"
- input-file: "{DIR[STATIC,VPP]}/failed-tests-3n-alt.csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-3n-alt.rst"
- testbed: "3n-alt"
-
-################################################################################
-# 3n-icx
-- type: "table"
- title: "Performance trending dashboard 2t1c-3n-icx"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-3n-icx"
- data: "plot-performance-trending-vpp-3n-icx"
- filter: "'MRR' and '2T1C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
-- type: "table"
- title: "Performance trending dashboard 4t2c-3n-icx"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t2c-3n-icx"
- data: "plot-performance-trending-vpp-3n-icx"
- filter: "'MRR' and '4T2C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
-- type: "table"
- title: "Performance trending dashboard 8t4c-3n-icx"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-8t4c-3n-icx"
- data: "plot-performance-trending-vpp-3n-icx"
- filter: "'MRR' and '8T4C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
-- type: "table"
- title: "HTML performance trending dashboard 2t1c-3n-icx"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-3n-icx.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-3n-icx.rst"
- testbed: "3n-icx"
-
-- type: "table"
- title: "HTML performance trending dashboard 4t2c-3n-icx"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t2c-3n-icx.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t2c-3n-icx.rst"
- testbed: "3n-icx"
-
-- type: "table"
- title: "HTML performance trending dashboard 8t4c-3n-icx"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-8t4c-3n-icx.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-8t4c-3n-icx.rst"
- testbed: "3n-icx"
-
-- type: "table"
- title: "Failed MRR tests 3n-icx"
- algorithm: "table_failed_tests"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-3n-icx"
- data: "plot-performance-trending-vpp-3n-icx"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
- - "msg"
- window: 7 # days
-
-- type: "table"
- title: "HTML Failed MRR tests 3n-icx"
- algorithm: "table_failed_tests_html"
- input-file: "{DIR[STATIC,VPP]}/failed-tests-3n-icx.csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-3n-icx.rst"
- testbed: "3n-icx"
-
-################################################################################
-# 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"
- - "msg"
- 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"
-
-################################################################################
-# 2n-tx2
-- type: "table"
- title: "Performance trending dashboard 1t1c-2n-tx2"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-1t1c-2n-tx2"
- data: "plot-performance-trending-vpp-2n-tx2"
- filter: "'MRR' and '1T1C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
-- type: "table"
- title: "Performance trending dashboard 2t2c-2n-tx2"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t2c-2n-tx2"
- data: "plot-performance-trending-vpp-2n-tx2"
- filter: "'MRR' and '2T2C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
-- type: "table"
- title: "Performance trending dashboard 4t4c-2n-tx2"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t4c-2n-tx2"
- data: "plot-performance-trending-vpp-2n-tx2"
- filter: "'MRR' and '4T4C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 14
- long-trend-window: 180
-
-- type: "table"
- title: "HTML performance trending dashboard 1t1c-2n-tx2"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-1t1c-2n-tx2.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-1t1c-2n-tx2.rst"
- testbed: "2n-tx2"
-
-- type: "table"
- title: "HTML performance trending dashboard 2t2c-2n-tx2"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t2c-2n-tx2.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t2c-2n-tx2.rst"
- testbed: "2n-tx2"
-
-- type: "table"
- title: "HTML performance trending dashboard 4t4c-2n-tx2"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t4c-2n-tx2.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t4c-2n-tx2.rst"
- testbed: "2n-tx2"
-
-- type: "table"
- title: "Failed MRR tests 2n-tx2"
- algorithm: "table_failed_tests"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-2n-tx2"
- data: "plot-performance-trending-vpp-2n-tx2"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
- - "msg"
- window: 7 # days
-
-- type: "table"
- title: "HTML Failed MRR tests 2n-tx2"
- algorithm: "table_failed_tests_html"
- input-file: "{DIR[STATIC,VPP]}/failed-tests-2n-tx2.csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-2n-tx2.rst"
- testbed: "2n-tx2"
-
-################################################################################
-# 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"
- - "msg"
- 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"
- - "msg"
- 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"
-
-
-################################################################################
-# 3n-aws
-- type: "table"
- title: "Performance trending dashboard 2t1c-3n-aws"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-3n-aws"
- data: "plot-performance-trending-vpp-3n-aws"
- filter: "'MRR' and '2T1C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 5
- long-trend-window: 26
-
-- type: "table"
- title: "Performance trending dashboard 4t2c-3n-aws"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t2c-3n-aws"
- data: "plot-performance-trending-vpp-3n-aws"
- filter: "'MRR' and '4T2C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 5
- long-trend-window: 26
-
-- type: "table"
- title: "HTML performance trending dashboard 2t1c-3n-aws"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-3n-aws.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-3n-aws.rst"
- testbed: "3n-aws"
-
-- type: "table"
- title: "HTML performance trending dashboard 4t2c-3n-aws"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t2c-3n-aws.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t2c-3n-aws.rst"
- testbed: "3n-aws"
-
-- type: "table"
- title: "Failed MRR tests 3n-aws"
- algorithm: "table_failed_tests"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-3n-aws"
- data: "plot-performance-trending-vpp-3n-aws"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
- - "msg"
- window: 7 # days
-
-- type: "table"
- title: "HTML Failed MRR tests 3n-aws"
- algorithm: "table_failed_tests_html"
- input-file: "{DIR[STATIC,VPP]}/failed-tests-3n-aws.csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-3n-aws.rst"
- testbed: "3n-aws"
-
-################################################################################
-# 2n-aws
-- type: "table"
- title: "Performance trending dashboard 2t1c-2n-aws"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-2n-aws"
- data: "plot-performance-trending-vpp-2n-aws"
- filter: "'MRR' and '2T1C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 5
- long-trend-window: 26
-
-- type: "table"
- title: "Performance trending dashboard 4t2c-2n-aws"
- algorithm: "table_perf_trending_dash"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t2c-2n-aws"
- data: "plot-performance-trending-vpp-2n-aws"
- filter: "'MRR' and '4T2C'"
- parameters:
- - "name"
- - "parent"
- - "result"
- window: 5
- long-trend-window: 26
-
-- type: "table"
- title: "HTML performance trending dashboard 2t1c-2n-aws"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-2n-aws.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-2t1c-2n-aws.rst"
- testbed: "2n-aws"
-
-- type: "table"
- title: "HTML performance trending dashboard 4t2c-2n-aws"
- algorithm: "table_perf_trending_dash_html"
- input-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t2c-2n-aws.csv"
- output-file: "{DIR[STATIC,VPP]}/performance-trending-dashboard-4t2c-2n-aws.rst"
- testbed: "2n-aws"
-
-- type: "table"
- title: "Failed MRR tests 2n-aws"
- algorithm: "table_failed_tests"
- output-file-ext: ".csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-2n-aws"
- data: "plot-performance-trending-vpp-2n-aws"
- filter: "'MRR'"
- parameters:
- - "name"
- - "parent"
- - "status"
- - "msg"
- window: 7 # days
-
-- type: "table"
- title: "HTML Failed MRR tests 2n-aws"
- algorithm: "table_failed_tests_html"
- input-file: "{DIR[STATIC,VPP]}/failed-tests-2n-aws.csv"
- output-file: "{DIR[STATIC,VPP]}/failed-tests-2n-aws.rst"
- testbed: "2n-aws"
-
-################################################################################
-### C P T A ###
-################################################################################
-
-# Plots VPP Continuous Performance Trending and Analysis
-
-- type: "cpta"
- title: "Continuous Performance Trending and Analysis"
- output-file: "{DIR[STATIC,VPP]}"
-
- plots:
-
-################################################################################
-# NFV
-
-# 2n-icx
-
- - title: "VPP NF Service Density VNFc IMIX MRR Trending 2n-icx"
- output-file-name: "2n-icx-xxv710-imix-{core}-vhost-chains-avf"
- data: "plot-performance-trending-vpp-nfv-2n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-2Vh-1Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-2vh-1vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-4Vh-2Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-4vh-2vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-8Vh-4Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-8vh-4vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-12Vh-6Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-12vh-6vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-4Vh-2Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-4vh-2vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-8Vh-4Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-8vh-4vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-4Ch-8Vh-4Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-4ch-8vh-4vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Ch-12Vh-6Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-6ch-12vh-6vm1t-vppip4-mrr"
- groups:
- - ["1R1C", "1R2C", "1R4C", "1R6C", "1R8C", "1R10C"]
- - ["2R1C", "2R2C", "2R4C", "2R6C", "2R8C", "2R10C"]
- - ["4R1C", "4R2C", "4R4C", "4R6C"]
- - ["6R1C", "6R2C", "6R4C"]
- group-names:
- - "1 Chain"
- - "2 Chains"
- - "4 Chains"
- - "6 Chains"
- layout: "plot-cpta"
-
- - title: "VPP NF Service Density VNFc VXLAN IMIX MRR Trending 2n-icx"
- output-file-name: "2n-icx-xxv710-imix-{core}-vhost-chains-vxlan-avf"
- data: "plot-performance-trending-vpp-nfv-2n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-1Ch-2Vh-1Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-2Ch-4Vh-2Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-4Ch-8Vh-4Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-6Ch-12Vh-6Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd-mrr"
- groups:
- - ["1R1C", ]
- - ["2R1C", ]
- - ["4R1C", ]
- - ["6R1C", ]
- group-names:
- - "1 Chain"
- - "2 Chains"
- - "4 Chains"
- - "6 Chains"
- layout: "plot-cpta"
-
- - title: "VPP NF Service Density CNFc IMIX MRR Trending 2n-icx"
- output-file-name: "2n-icx-xxv710-imix-{core}-memif-chains-avf"
- data: "plot-performance-trending-vpp-nfv-2n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-2Mif-1Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-2mif-1dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-4Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-4mif-2dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-8mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-12Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-12mif-6dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-4Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-4mif-2dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-8mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-4Ch-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-4ch-8mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Ch-12Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-6ch-12mif-6dcr1t-vppip4-mrr"
- groups:
- - ["1R1C", "1R2C", "1R4C", "1R6C", "1R8C", "1R10C"]
- - ["2R1C", "2R2C", "2R4C", "2R6C", "2R8C", "2R10C"]
- - ["4R1C", "4R2C", "4R4C", "4R6C"]
- - ["6R1C", "6R2C", "6R4C"]
- group-names:
- - "1 Chain"
- - "2 Chains"
- - "4 Chains"
- - "6 Chains"
- layout: "plot-cpta"
-
- - title: "VPP NF Service Density CNFp IMIX MRR Trending 2n-icx"
- output-file-name: "2n-icx-xxv710-imix-{core}-memif-pipelines-avf"
- data: "plot-performance-trending-vpp-nfv-2n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-1Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-1dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-2dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-6dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-4Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2pl-4mif-2dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-4Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2pl-4mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2pl-8mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Pl-12Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-6pl-12mif-6dcr1t-vppip4-mrr"
- groups:
- - ["1R1C", "1R2C", "1R4C", "1R6C", "1R8C", "1R10C"]
- - ["2R1C", "2R2C", "2R4C", "2R6C", "2R8C", "2R10C"]
- - ["4R1C", "4R2C", "4R4C", "4R6C"]
- - ["6R1C", "6R2C", "6R4C"]
- group-names:
- - "1 Pipe"
- - "2 Pipes"
- - "4 Pipes"
- - "6 Pipes"
- layout: "plot-cpta"
-
-################################################################################
-
-# 2n-skx
-
- - title: "VPP NF Service Density VNFc IMIX MRR Trending 2n-skx"
- output-file-name: "2n-skx-xxv710-imix-{core}-vhost-chains-avf"
- data: "plot-performance-trending-vpp-nfv-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-2Vh-1Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-2vh-1vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-4Vh-2Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-4vh-2vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-8Vh-4Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-8vh-4vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-12Vh-6Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-12vh-6vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-4Vh-2Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-4vh-2vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-8Vh-4Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-8vh-4vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-4Ch-8Vh-4Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-4ch-8vh-4vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Ch-12Vh-6Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-6ch-12vh-6vm1t-vppip4-mrr"
- groups:
- - ["1R1C", "1R2C", "1R4C", "1R6C", "1R8C", "1R10C"]
- - ["2R1C", "2R2C", "2R4C", "2R6C", "2R8C", "2R10C"]
- - ["4R1C", "4R2C", "4R4C", "4R6C"]
- - ["6R1C", "6R2C", "6R4C"]
- group-names:
- - "1 Chain"
- - "2 Chains"
- - "4 Chains"
- - "6 Chains"
- layout: "plot-cpta"
-
- - title: "VPP NF Service Density VNFc VXLAN IMIX MRR Trending 2n-skx"
- output-file-name: "2n-skx-xxv710-imix-{core}-vhost-chains-vxlan-avf"
- data: "plot-performance-trending-vpp-nfv-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-1Ch-2Vh-1Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-2Ch-4Vh-2Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-4Ch-8Vh-4Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-6Ch-12Vh-6Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd-mrr"
- groups:
- - ["1R1C", ]
- - ["2R1C", ]
- - ["4R1C", ]
- - ["6R1C", ]
- group-names:
- - "1 Chain"
- - "2 Chains"
- - "4 Chains"
- - "6 Chains"
- layout: "plot-cpta"
-
- - title: "VPP NF Service Density CNFc IMIX MRR Trending 2n-skx"
- output-file-name: "2n-skx-xxv710-imix-{core}-memif-chains-avf"
- data: "plot-performance-trending-vpp-nfv-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-2Mif-1Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-2mif-1dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-4Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-4mif-2dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-8mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-12Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-12mif-6dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-4Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-4mif-2dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-8mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-4Ch-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-4ch-8mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Ch-12Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-6ch-12mif-6dcr1t-vppip4-mrr"
- groups:
- - ["1R1C", "1R2C", "1R4C", "1R6C", "1R8C", "1R10C"]
- - ["2R1C", "2R2C", "2R4C", "2R6C", "2R8C", "2R10C"]
- - ["4R1C", "4R2C", "4R4C", "4R6C"]
- - ["6R1C", "6R2C", "6R4C"]
- group-names:
- - "1 Chain"
- - "2 Chains"
- - "4 Chains"
- - "6 Chains"
- layout: "plot-cpta"
-
- - title: "VPP NF Service Density CNFp IMIX MRR Trending 2n-skx"
- output-file-name: "2n-skx-xxv710-imix-{core}-memif-pipelines-avf"
- data: "plot-performance-trending-vpp-nfv-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-1Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-1dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-2dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-6dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-4Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2pl-4mif-2dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-4Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2pl-4mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2pl-8mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Pl-12Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-6pl-12mif-6dcr1t-vppip4-mrr"
- groups:
- - ["1R1C", "1R2C", "1R4C", "1R6C", "1R8C", "1R10C"]
- - ["2R1C", "2R2C", "2R4C", "2R6C", "2R8C", "2R10C"]
- - ["4R1C", "4R2C", "4R4C", "4R6C"]
- - ["6R1C", "6R2C", "6R4C"]
- group-names:
- - "1 Pipe"
- - "2 Pipes"
- - "4 Pipes"
- - "6 Pipes"
- layout: "plot-cpta"
-
-# 2n-clx
-
- - title: "VPP NF Service Density VNFc IMIX MRR Trending 2n-clx"
- output-file-name: "2n-clx-xxv710-imix-{core}-vhost-chains-avf"
- data: "plot-performance-trending-vpp-nfv-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-2Vh-1Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-2vh-1vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-4Vh-2Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-4vh-2vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-8Vh-4Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-8vh-4vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-12Vh-6Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-12vh-6vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-4Vh-2Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-4vh-2vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-8Vh-4Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-8vh-4vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-4Ch-8Vh-4Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-4ch-8vh-4vm1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Ch-12Vh-6Vm1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-6ch-12vh-6vm1t-vppip4-mrr"
- groups:
- - ["1R1C", "1R2C", "1R4C", "1R6C", "1R8C", "1R10C"]
- - ["2R1C", "2R2C", "2R4C", "2R6C", "2R8C", "2R10C"]
- - ["4R1C", "4R2C", "4R4C", "4R6C"]
- - ["6R1C", "6R2C", "6R4C"]
- group-names:
- - "1 Chain"
- - "2 Chains"
- - "4 Chains"
- - "6 Chains"
- layout: "plot-cpta"
-
- - title: "VPP NF Service Density VNFc VXLAN IMIX MRR Trending 2n-clx"
- output-file-name: "2n-clx-xxv710-imix-{core}-vhost-chains-vxlan-avf"
- data: "plot-performance-trending-vpp-nfv-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-1Ch-2Vh-1Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-1ch-2vh-1vm1t-testpmd-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-2Ch-4Vh-2Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-2ch-4vh-2vm1t-testpmd-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-4Ch-8Vh-4Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-4ch-8vh-4vm1t-testpmd-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Vm Vhost.Chain Dot1Qip4Vxlan.2N-25Ge2P1Xxv710-Avf-Dot1Qip4Vxlan-L2Bd-6Ch-12Vh-6Vm1T-Testpmd-Mrr.IMIX-{core}-avf-dot1qip4vxlan-l2bd-6ch-12vh-6vm1t-testpmd-mrr"
- groups:
- - ["1R1C", ]
- - ["2R1C", ]
- - ["4R1C", ]
- - ["6R1C", ]
- group-names:
- - "1 Chain"
- - "2 Chains"
- - "4 Chains"
- - "6 Chains"
- layout: "plot-cpta"
-
- - title: "VPP NF Service Density CNFc IMIX MRR Trending 2n-clx"
- output-file-name: "2n-clx-xxv710-imix-{core}-memif-chains-avf"
- data: "plot-performance-trending-vpp-nfv-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-2Mif-1Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-2mif-1dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-4Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-4mif-2dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-8mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Ch-12Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1ch-12mif-6dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-4Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-4mif-2dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Ch-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2ch-8mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-4Ch-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-4ch-8mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Chain.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Ch-12Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-6ch-12mif-6dcr1t-vppip4-mrr"
- groups:
- - ["1R1C", "1R2C", "1R4C", "1R6C", "1R8C", "1R10C"]
- - ["2R1C", "2R2C", "2R4C", "2R6C", "2R8C", "2R10C"]
- - ["4R1C", "4R2C", "4R4C", "4R6C"]
- - ["6R1C", "6R2C", "6R4C"]
- group-names:
- - "1 Chain"
- - "2 Chains"
- - "4 Chains"
- - "6 Chains"
- layout: "plot-cpta"
-
- - title: "VPP NF Service Density CNFp IMIX MRR Trending 2n-clx"
- output-file-name: "2n-clx-xxv710-imix-{core}-memif-pipelines-avf"
- data: "plot-performance-trending-vpp-nfv-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-1Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-1dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-2dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-1Pl-2Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-1pl-2mif-6dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-4Mif-2Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2pl-4mif-2dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-4Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2pl-4mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-2Pl-8Mif-4Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-2pl-8mif-4dcr1t-vppip4-mrr"
- - "Tests.Vpp.Perf.Nfv Density.Dcr Memif.Pipeline.2N-25Ge2P1Xxv710-Avf-Eth-L2Bd-6Pl-12Mif-6Dcr1T-Vppip4-Mrr.IMIX-{core}-avf-eth-l2bd-6pl-12mif-6dcr1t-vppip4-mrr"
- groups:
- - ["1R1C", "1R2C", "1R4C", "1R6C", "1R8C", "1R10C"]
- - ["2R1C", "2R2C", "2R4C", "2R6C", "2R8C", "2R10C"]
- - ["4R1C", "4R2C", "4R4C", "4R6C"]
- - ["6R1C", "6R2C", "6R4C"]
- group-names:
- - "1 Pipe"
- - "2 Pipes"
- - "4 Pipes"
- - "6 Pipes"
- layout: "plot-cpta"
-
-################################################################################
-
- - title: "2n-clx-xxv710-64b-{core}-memif-base-avf"
- output-file-name: "2n-clx-xxv710-64b-{core}-memif-base-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-{core}-avf-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-{core}-avf-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-memif-base-dpdk"
- output-file-name: "2n-clx-xxv710-64b-{core}-memif-base-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-{core}-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-{core}-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-{core}-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-{core}-rdma-l2-eth-2memif-1dcr"
- output-file-name: "2n-clx-cx556a-64b-{core}-rdma-l2-eth-2memif-1dcr"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Mrr.64B-{core}-rdma-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Memif-1Dcr-Mrr.64B-{core}-rdma-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Mrr.64B-{core}-rdma-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-memif-base-avf"
- output-file-name: "2n-skx-xxv710-64b-{core}-memif-base-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-{core}-avf-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-{core}-avf-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-memif-base-dpdk"
- output-file-name: "2n-skx-xxv710-64b-{core}-memif-base-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-{core}-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-{core}-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-{core}-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-{core}-memif-base-avf"
- output-file-name: "3n-skx-xxv710-64b-{core}-memif-base-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-{core}-avf-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Lxc-mrr.64B-{core}-avf-eth-l2xcbase-eth-2memif-1lxc-mrr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-mrr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-{core}-avf-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-{core}-memif-base-dpdk"
- output-file-name: "3n-skx-xxv710-64b-{core}-memif-base-dpdk"
- data: "plot-performance-trending-vpp-3n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-{core}-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Lxc-mrr.64B-{core}-eth-l2xcbase-eth-2memif-1lxc-mrr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-mrr.64B-{core}-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-{core}-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-{core}-memif-base-dpdk"
- output-file-name: "3n-tsh-x520-64b-{core}-memif-base-dpdk"
- data: "plot-performance-trending-vpp-3n-tsh"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Container Memif.10ge2p1x520-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-{core}-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.10ge2p1x520-Eth-L2Xcbase-Eth-2Memif-1Lxc-mrr.64B-{core}-eth-l2xcbase-eth-2memif-1lxc-mrr"
- - "Tests.Vpp.Perf.Container Memif.10ge2p1x520-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-mrr.64B-{core}-eth-l2bdbasemaclrn-eth-2memif-1lxc-mrr"
- - "Tests.Vpp.Perf.Container Memif.10ge2p1x520-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-{core}-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-x710-64b-{core}-ip4routing-base-scale-avf-dpdk"
- output-file-name: "2n-clx-x710-64b-{core}-ip4-base-scale-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-mrr.64B-{core}-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-mrr.64B-{core}-avf-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-{core}-avf-ethip4-ip4scale2m-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-mrr.64B-{core}-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-af-xdp-Ethip4-Ip4Base-mrr.64B-{core}-af-xdp-ethip4-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-ip4routing-base-avf-dpdk"
- output-file-name: "2n-clx-xxv710-64b-{core}-ip4-base-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-mrr.64B-{core}-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-mrr.64B-{core}-ethip4-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-ip4routing-scale-avf"
- output-file-name: "2n-clx-xxv710-64b-{core}-ip4-scale-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-mrr.64B-{core}-avf-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-{core}-avf-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-mrr.64B-{core}-avf-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-{core}-avf-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-mrr.64B-{core}-avf-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-{core}-avf-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-ip4routing-base-scale-af_xdp"
- output-file-name: "2n-clx-xxv710-64b-{core}-ip4-base-scale-af_xdp"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Base-mrr.64B-{core}-af-xdp-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale20K-mrr.64B-{core}-af-xdp-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale20K-Rnd-mrr.64B-{core}-af-xdp-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale200K-mrr.64B-{core}-af-xdp-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale200K-Rnd-mrr.64B-{core}-af-xdp-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale2M-mrr.64B-{core}-af-xdp-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale2M-Rnd-mrr.64B-{core}-af-xdp-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-ip4routing-scale-dpdk"
- output-file-name: "2n-clx-xxv710-64b-{core}-ip4-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-mrr.64B-{core}-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-{core}-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-mrr.64B-{core}-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-{core}-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-mrr.64B-{core}-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-{core}-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-features-ip4routing-base-avf"
- output-file-name: "2n-clx-xxv710-64b-{core}-ip4-features-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-mrr.64B-{core}-avf-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-mrr.64B-{core}-avf-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-mrr.64B-{core}-avf-ethip4udp-ip4base-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-mrr.64B-{core}-avf-ethip4udp-ip4base-oacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-mrr.64B-{core}-avf-ethip4udp-nat44det-h1-p1-s1-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Mrr.64B-{core}-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-nat44det-ip4routing-stl-bidir-avf"
- output-file-name: "2n-clx-xxv710-64b-{core}-nat44det-ip4routing-stl-bidir-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr.64b-{core}-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-mrr.64b-{core}-avf-ethip4udp-nat44det-h4096-p63-s258048-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-mrr.64b-{core}-avf-ethip4udp-nat44det-h16384-p63-s1032192-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-mrr.64b-{core}-avf-ethip4udp-nat44det-h65536-p63-s4128758-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-mrr.64b-{core}-avf-ethip4udp-nat44det-h262144-p63-s16515072-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-stl-unidir-avf"
- output-file-name: "2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-stl-unidir-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-mrr.64b-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-mrr.64b-{core}-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-mrr.64b-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-mrr.64b-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-mrr.64b-{core}-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-cps-avf"
- output-file-name: "2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-cps-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-mrr.64b-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-mrr.64b-{core}-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-mrr.64b-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-mrr.64b-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-mrr.64b-{core}-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-mrr.64b-{core}-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-mrr.64b-{core}-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-mrr.64b-{core}-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-mrr.64b-{core}-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-mrr.64b-{core}-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-mrr"
- layout: "plot-cpta-cps"
-
- - title: "2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-pps-avf"
- output-file-name: "2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-pps-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-mrr.64b-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-mrr.64b-{core}-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-mrr.64b-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-mrr.64b-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-mrr.64b-{core}-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-mrr.64b-{core}-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-mrr.64b-{core}-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-mrr.64b-{core}-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-mrr.64b-{core}-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-mrr.64b-{core}-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-cps-avf"
- output-file-name: "2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-cps-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-mrr.64b-{core}-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-mrr.64b-{core}-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-mrr.64b-{core}-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-mrr.64b-{core}-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-mrr.64b-{core}-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-mrr.64b-{core}-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-mrr.64b-{core}-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-mrr.64b-{core}-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-mrr.64b-{core}-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-mrr.64b-{core}-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-mrr"
- layout: "plot-cpta-cps"
-
- - title: "2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-pps-avf"
- output-file-name: "2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-pps-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-mrr.64b-{core}-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-mrr.64b-{core}-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-mrr.64b-{core}-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-mrr.64b-{core}-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-mrr.64b-{core}-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-mrr.64b-{core}-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-mrr.64b-{core}-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-mrr.64b-{core}-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-mrr.64b-{core}-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-mrr.64b-{core}-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-tput-avf"
- output-file-name: "2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-tput-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-mrr.64b-{core}-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-mrr.64b-{core}-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-mrr.64b-{core}-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-mrr.64b-{core}-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-mrr.64b-{core}-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-100b-{core}-nat44ed-ip4routing-tcp-tput-avf"
- output-file-name: "2n-clx-xxv710-100b-{core}-nat44ed-ip4routing-tcp-tput-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- core: [ "2t1c", "4t2c", "8t4c" ]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H1024-P63-S64512-Tput-mrr.100B-{core}-avf-ethip4tcp-nat44ed-h1024-p63-s64512-tput-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H16384-P63-S1032192-Tput-mrr.100B-{core}-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H65536-P63-S4128768-Tput-mrr.100B-{core}-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-udp-tput-avf"
- output-file-name: "2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-udp-tput-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-mrr.64b-{core}-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-mrr.64b-{core}-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-mrr.64b-{core}-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-mrr.64b-{core}-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-mrr.64b-{core}-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-100b-{core}-nat44ed-ip4routing-udp-tput-avf"
- output-file-name: "2n-clx-xxv710-100b-{core}-nat44ed-ip4routing-udp-tput-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4udp-Nat44Ed-H1024-P63-S64512-Tput-mrr.100B-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-tput-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4udp-Nat44Ed-H16384-P63-S1032192-Tput-mrr.100B-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-tput-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4udp-Nat44Ed-H65536-P63-S4128768-Tput-mrr.100B-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-tput-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-{core}-rdma-ip4base"
- output-file-name: "2n-clx-cx556a-64b-{core}-rdma-ip4base"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Mrr.64B-{core}-rdma-ethip4-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-{core}-rdma-ethip4-ip4scale"
- output-file-name: "2n-clx-cx556a-64b-{core}-rdma-ethip4-ip4scale"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Mrr.64B-{core}-rdma-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-{core}-rdma-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Mrr.64B-{core}-rdma-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-{core}-rdma-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Mrr.64B-{core}-rdma-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-{core}-rdma-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-{core}-rdma-ethip4-features"
- output-file-name: "2n-clx-cx556a-64b-{core}-rdma-ethip4-features"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Mrr.64B-{core}-rdma-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Mrr.64B-{core}-rdma-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Mrr.64B-{core}-rdma-ethip4udp-ip4base-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Mrr.64B-{core}-rdma-ethip4udp-ip4base-oacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1-p1-s1-Mrr.64B-{core}-rdma-ethip4udp-nat44det-h1-p1-s1-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1024-p63-s64512-Mrr.64B-{core}-rdma-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-ethip4--ethip4udpgeneve-avf"
- output-file-name: "2n-clx-xxv710-64b-{core}-ethip4--ethip4udpgeneve-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-1Tun-Ip4Base-Mrr.64B-{core}-avf-ethip4--ethip4udpgeneve-1tun-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-4Tun-Ip4Base-Mrr.64B-{core}-avf-ethip4--ethip4udpgeneve-4tun-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-16Tun-Ip4Base-Mrr.64B-{core}-avf-ethip4--ethip4udpgeneve-16tun-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-64Tun-Ip4Base-Mrr.64B-{core}-avf-ethip4--ethip4udpgeneve-64tun-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-256Tun-Ip4Base-Mrr.64B-{core}-avf-ethip4--ethip4udpgeneve-256tun-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-dnv-x553-64b-{core}-ip4routing-base-scale-ixgbe"
- output-file-name: "2n-dnv-x553-64b-{core}-ip4-ixgbe"
- data: "plot-performance-trending-vpp-2n-dnv"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Base-mrr.64B-{core}-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale20K-mrr.64B-{core}-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale200K-mrr.64B-{core}-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale2M-mrr.64B-{core}-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X553-Ethip4-Ip4Scale20K-rnd-mrr.64B-{core}-ethip4-ip4scale20k-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-aws-nitro50g-64b-{core}-ip4routing-base-scale-ena"
- output-file-name: "2n-aws-nitro50g-64b-{core}-ip4-ena"
- data: "plot-performance-trending-vpp-2n-aws"
- core: ["2t1c", "4t2c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-50Ge1P1Ena-Ethip4-Ip4Base-Mrr.64B-{core}-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-50Ge1P1Ena-Ethip4-Ip4Scale20K-Mrr.64B-{core}-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-50Ge1P1Ena-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-{core}-ethip4-ip4scale20k-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-aws-nitro50g-1518b-{core}-ip4routing-base-scale-ena"
- output-file-name: "2n-aws-nitro50g-1518b-{core}-ip4-ena"
- data: "plot-performance-trending-vpp-2n-aws"
- core: ["2t1c", "4t2c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-50Ge1P1Ena-Ethip4-Ip4Base-Mrr.1518b-{core}-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-50Ge1P1Ena-Ethip4-Ip4Scale20K-Mrr.1518b-{core}-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-50Ge1P1Ena-Ethip4-Ip4Scale20K-Rnd-Mrr.1518b-{core}-ethip4-ip4scale20k-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-aws-nitro50g-78b-{core}-ip6routing-base-scale-ena"
- output-file-name: "2n-aws-nitro50g-78b-{core}-ip6-ena"
- data: "plot-performance-trending-vpp-2n-aws"
- core: ["2t1c", "4t2c"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-50Ge1P1Ena-Ethip6-Ip6Base-Mrr.78B-{core}-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-50Ge1P1Ena-Ethip6-Ip6Scale20K-Mrr.78B-{core}-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-50Ge1P1Ena-Ethip6-Ip6Scale20K-Rnd-Mrr.78B-{core}-ethip6-ip6scale20k-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-aws-nitro50g-1518b-{core}-ip6routing-base-scale-ena"
- output-file-name: "2n-aws-nitro50g-1518b-{core}-ip6-ena"
- data: "plot-performance-trending-vpp-2n-aws"
- core: ["2t1c", "4t2c"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-50Ge1P1Ena-Ethip6-Ip6Base-Mrr.1518b-{core}-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-50Ge1P1Ena-Ethip6-Ip6Scale20K-Mrr.1518b-{core}-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-50Ge1P1Ena-Ethip6-Ip6Scale20K-Rnd-Mrr.1518b-{core}-ethip6-ip6scale20k-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-64b-{core}-ip4routing-base-scale-avf-dpdk"
- output-file-name: "2n-skx-x710-64b-{core}-ip4-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-mrr.64B-{core}-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-mrr.64B-{core}-avf-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-{core}-avf-ethip4-ip4scale2m-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-mrr.64B-{core}-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-af-xdp-Ethip4-Ip4Base-mrr.64B-{core}-af-xdp-ethip4-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-ip4routing-base-scale-avf"
- output-file-name: "2n-skx-xxv710-64b-{core}-ip4-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-mrr.64B-{core}-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-mrr.64B-{core}-avf-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-mrr.64B-{core}-avf-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-mrr.64B-{core}-avf-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-ip4routing-base-scale-avf-rnd"
- output-file-name: "2n-skx-xxv710-64b-{core}-ip4-base-scale-avf-rnd"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-{core}-avf-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-{core}-avf-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-{core}-avf-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-ip4routing-base-scale-dpdk"
- output-file-name: "2n-skx-xxv710-64b-{core}-ip4-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-mrr.64B-{core}-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-mrr.64B-{core}-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-mrr.64B-{core}-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-mrr.64B-{core}-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-ip4routing-base-scale-dpdk-rnd"
- output-file-name: "2n-skx-xxv710-64b-{core}-ip4-base-scale-dpdk-rnd"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-{core}-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-{core}-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-{core}-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-features-ip4routing-base-avf"
- output-file-name: "2n-skx-xxv710-64b-{core}-ip4-features-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-mrr.64B-{core}-avf-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-mrr.64B-{core}-avf-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-mrr.64B-{core}-avf-ethip4udp-ip4base-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-mrr.64B-{core}-avf-ethip4udp-ip4base-oacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-mrr.64B-{core}-avf-ethip4udp-nat44det-h1-p1-s1-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Mrr.64B-{core}-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-ip4routing-base-scale-af_xdp"
- output-file-name: "2n-skx-xxv710-64b-{core}-ip4-base-scale-af_xdp"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Base-mrr.64B-{core}-af-xdp-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale20K-mrr.64B-{core}-af-xdp-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale20K-Rnd-mrr.64B-{core}-af-xdp-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale200K-mrr.64B-{core}-af-xdp-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale200K-Rnd-mrr.64B-{core}-af-xdp-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale2M-mrr.64B-{core}-af-xdp-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale2M-Rnd-mrr.64B-{core}-af-xdp-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-nat44det-ip4routing-stl-bidir-avf"
- output-file-name: "2n-skx-xxv710-64b-{core}-nat44det-ip4routing-stl-bidir-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr.64b-{core}-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-mrr.64b-{core}-avf-ethip4udp-nat44det-h4096-p63-s258048-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-mrr.64b-{core}-avf-ethip4udp-nat44det-h16384-p63-s1032192-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-mrr.64b-{core}-avf-ethip4udp-nat44det-h65536-p63-s4128758-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-mrr.64b-{core}-avf-ethip4udp-nat44det-h262144-p63-s16515072-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-stl-unidir-avf"
- output-file-name: "2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-stl-unidir-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-mrr.64b-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-mrr.64b-{core}-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-mrr.64b-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-mrr.64b-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-mrr.64b-{core}-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-cps-avf"
- output-file-name: "2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-cps-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-mrr.64b-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-mrr.64b-{core}-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-mrr.64b-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-mrr.64b-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-mrr.64b-{core}-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-mrr.64b-{core}-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-mrr.64b-{core}-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-mrr.64b-{core}-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-mrr.64b-{core}-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-mrr.64b-{core}-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-mrr"
- layout: "plot-cpta-cps"
-
- - title: "2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-pps-avf"
- output-file-name: "2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-pps-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-mrr.64b-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-mrr.64b-{core}-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-mrr.64b-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-mrr.64b-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-mrr.64b-{core}-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-mrr.64b-{core}-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-mrr.64b-{core}-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-mrr.64b-{core}-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-mrr.64b-{core}-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-mrr.64b-{core}-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-cps-avf"
- output-file-name: "2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-cps-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-mrr.64b-{core}-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-mrr.64b-{core}-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-mrr.64b-{core}-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-mrr.64b-{core}-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-mrr.64b-{core}-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-mrr.64b-{core}-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-mrr.64b-{core}-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-mrr.64b-{core}-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-mrr.64b-{core}-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-mrr.64b-{core}-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-mrr"
- layout: "plot-cpta-cps"
-
- - title: "2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-pps-avf"
- output-file-name: "2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-pps-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-mrr.64b-{core}-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-mrr.64b-{core}-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-mrr.64b-{core}-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-mrr.64b-{core}-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-mrr.64b-{core}-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-mrr.64b-{core}-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-mrr.64b-{core}-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-mrr.64b-{core}-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-mrr.64b-{core}-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-mrr.64b-{core}-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-tput-avf"
- output-file-name: "2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-tput-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-mrr.64b-{core}-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-mrr.64b-{core}-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-mrr.64b-{core}-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-mrr.64b-{core}-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-mrr.64b-{core}-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-100b-{core}-nat44ed-ip4routing-tcp-tput-avf"
- output-file-name: "2n-skx-xxv710-100b-{core}-nat44ed-ip4routing-tcp-tput-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H1024-P63-S64512-Tput-mrr.100B-{core}-avf-ethip4tcp-nat44ed-h1024-p63-s64512-tput-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H16384-P63-S1032192-Tput-mrr.100B-{core}-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H65536-P63-S4128768-Tput-mrr.100B-{core}-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-udp-tput-avf"
- output-file-name: "2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-udp-tput-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-mrr.64b-{core}-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-mrr.64b-{core}-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-mrr.64b-{core}-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-mrr.64b-{core}-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-mrr.64b-{core}-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-100b-{core}-nat44ed-ip4routing-udp-tput-avf"
- output-file-name: "2n-skx-xxv710-100b-{core}-nat44ed-ip4routing-udp-tput-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4udp-Nat44Ed-H1024-P63-S64512-Tput-mrr.100B-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-tput-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4udp-Nat44Ed-H16384-P63-S1032192-Tput-mrr.100B-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-tput-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4udp-Nat44Ed-H65536-P63-S4128768-Tput-mrr.100B-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-tput-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-100b-{core}-nat44ed-ip4routing-tcp-tput-avf-{test_type}"
- output-file-name: "2n-skx-xxv710-100b-{core}-nat44ed-ip4routing-tcp-tput-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H1024-P63-S64512-Tput-ndrpdr.100B-{core}-avf-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H16384-P63-S1032192-Tput-ndrpdr.100B-{core}-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H65536-P63-S4128768-Tput-ndrpdr.100B-{core}-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-100b-{core}-nat44ed-ip4routing-udp-tput-avf-{test_type}"
- output-file-name: "2n-skx-xxv710-100b-{core}-nat44ed-ip4routing-udp-tput-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H1024-P63-S64512-Tput-ndrpdr.100B-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H16384-P63-S1032192-Tput-ndrpdr.100B-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H65536-P63-S4128768-Tput-ndrpdr.100B-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-features-ip4routing-base-dpdk"
- output-file-name: "2n-skx-xxv710-64b-{core}-ip4-features-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-mrr.64B-{core}-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-ethip4udp-nat44det-h1-p1-s1-mrr.64B-{core}-ethip4udp-nat44det-h1-p1-s1-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-ethip4--ethip4udpgeneve-avf"
- output-file-name: "2n-skx-xxv710-64b-{core}-ethip4--ethip4udpgeneve-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-1Tun-Ip4Base-Mrr.64B-{core}-avf-ethip4--ethip4udpgeneve-1tun-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-4Tun-Ip4Base-Mrr.64B-{core}-avf-ethip4--ethip4udpgeneve-4tun-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-16Tun-Ip4Base-Mrr.64B-{core}-avf-ethip4--ethip4udpgeneve-16tun-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-64Tun-Ip4Base-Mrr.64B-{core}-avf-ethip4--ethip4udpgeneve-64tun-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-256Tun-Ip4Base-Mrr.64B-{core}-avf-ethip4--ethip4udpgeneve-256tun-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "3n-dnv-x553-64b-{core}-ip4routing-base-scale-ixgbe"
- output-file-name: "3n-dnv-x553-64b-{core}-ip4-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-3n-dnv"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Base-mrr.64B-{core}-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale20K-mrr.64B-{core}-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale200K-mrr.64B-{core}-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale2M-mrr.64B-{core}-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X553-Ethip4-Ip4Scale20K-rnd-mrr.64B-{core}-ethip4-ip4scale20k-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "3n-aws-nitro50g-64b-{core}-ip4routing-base-scale-ena"
- output-file-name: "3n-aws-nitro50g-64b-{core}-ip4-ena"
- data: "plot-performance-trending-vpp-3n-aws"
- core: ["2t1c", "4t2c"]
- include:
- - "Tests.Vpp.Perf.Ip4.50Ge1P1Ena-Ethip4-Ip4Base-Mrr.64B-{core}-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.50Ge1P1Ena-Ethip4-Ip4Scale20K-Mrr.64B-{core}-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.50Ge1P1Ena-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-{core}-ethip4-ip4scale20k-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "3n-aws-nitro50g-1518b-{core}-ip4routing-base-scale-ena"
- output-file-name: "3n-aws-nitro50g-1518b-{core}-ip4-ena"
- data: "plot-performance-trending-vpp-3n-aws"
- core: ["2t1c", "4t2c"]
- include:
- - "Tests.Vpp.Perf.Ip4.50Ge1P1Ena-Ethip4-Ip4Base-Mrr.1518b-{core}-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.50Ge1P1Ena-Ethip4-Ip4Scale20K-Mrr.1518b-{core}-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.50Ge1P1Ena-Ethip4-Ip4Scale20K-Rnd-Mrr.1518b-{core}-ethip4-ip4scale20k-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "3n-aws-nitro50g-1518b-{core}-ipsec-ip4routing-scale-ena"
- output-file-name: "3n-aws-nitro50g-1518b-{core}-ipsec-ip4routing-scale-ena"
- data: "plot-performance-trending-vpp-3n-aws"
- core: ["2t1c", "4t2c"]
- include:
- - "Tests.Vpp.Perf.Crypto.50Ge1P1Ena-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes256Gcm-Mrr.1518B-{core}-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-aws-nitro50g-imix-{core}-ipsec-ip4routing-scale-ena"
- output-file-name: "3n-aws-nitro50g-imix-{core}-ipsec-ip4routing-scale-ena"
- data: "plot-performance-trending-vpp-3n-aws"
- core: ["2t1c", "4t2c"]
- include:
- - "Tests.Vpp.Perf.Crypto.50Ge1P1Ena-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes256Gcm-Mrr.imix-{core}-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-x710-64b-{core}-ip4routing-base-scale-avf"
- output-file-name: "3n-skx-x710-64b-{core}-ip4-base-scale-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Base-Mrr.64B-{core}-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Mrr.64B-{core}-avf-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-{core}-ip4routing-base-scale-avf"
- output-file-name: "3n-skx-xxv710-64b-{core}-ip4-base-scale-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Mrr.64B-{core}-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-mrr.64B-{core}-avf-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-mrr.64B-{core}-avf-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-mrr.64B-{core}-avf-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-{core}-ip4routing-base-scale-dpdk"
- output-file-name: "3n-skx-xxv710-64b-{core}-ip4-base-scale-dpdk"
- data: "plot-performance-trending-vpp-3n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Base-mrr.64B-{core}-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Scale2M-mrr.64B-{core}-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-{core}-ip4routing-base-scale-ixgbe"
- output-file-name: "3n-tsh-x520-64b-{core}-ip4-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Base-mrr.64B-{core}-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Scale20K-mrr.64B-{core}-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Scale200K-mrr.64B-{core}-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4-Ip4Scale2M-mrr.64B-{core}-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-{core}-ip4routing-features-ixgbe"
- output-file-name: "3n-tsh-x520-64b-{core}-ip4-features-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Mrr.64B-{core}-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Mrr.64B-{core}-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Mrr.64B-{core}-ethip4udp-ip4base-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X520-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Mrr.64B-{core}-ethip4udp-ip4base-oacl50sl-10kflows-mrr"
- layout: "plot-cpta"
-
- - title: "3n-dnv-x553-64b-{core}-ip4tunnel-base-scale-ixgbe"
- output-file-name: "3n-dnv-x553-64b-{core}-ip4-tunnels-scale-ixgbe"
- data: "plot-performance-trending-vpp-3n-dnv"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Xcbase-mrr.64B-{core}-ethip4vxlan-l2xcbase-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X553-Ethip4Vxlan-L2Bdbasemaclrn-mrr.64B-{core}-ethip4vxlan-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-{core}-ip4tunnel-base-scale-avf-dpdk"
- output-file-name: "3n-skx-xxv710-64b-{core}-ip4-tunnels-base-scale-avf-dpdk"
- data: "plot-performance-trending-vpp-3n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Mrr.64B-{core}-avf-ethip4vxlan-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Xcbase-Mrr.64B-{core}-avf-ethip4vxlan-l2xcbase-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Mrr.64B-{core}-ethip4vxlan-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Xcbase-Mrr.64B-{core}-ethip4vxlan-l2xcbase-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-{core}-ip4tunnel-base-scale-ixgbe"
- output-file-name: "3n-tsh-x520-64b-{core}-ip4-tunnels-base-scale-dpdk"
- data: "plot-performance-trending-vpp-3n-tsh"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Ethip4Vxlan-L2Xcbase-mrr.64B-{core}-ethip4vxlan-l2xcbase-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.10Ge2P1X520-Ethip4Vxlan-L2Bdbasemaclrn-mrr.64B-{core}-ethip4vxlan-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-x710-78b-{core}-ip6routing-base-scale-avf-dpdk"
- output-file-name: "2n-clx-x710-78b-{core}-ip6-base-scale-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Mrr.78B-{core}-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Mrr.78B-{core}-avf-ethip6-ip6scale2m-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-rnd-Mrr.78B-{core}-avf-ethip6-ip6scale2m-rnd-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-mrr.78B-{core}-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-af-xdp-Ethip6-Ip6Base-mrr.78B-{core}-af-xdp-ethip6-ip6base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-78b-{core}-ip6routing-base-scale-avf"
- output-file-name: "2n-clx-xxv710-78b-{core}-ip6-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-mrr.78B-{core}-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-mrr.78B-{core}-avf-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-mrr.78B-{core}-avf-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-mrr.78B-{core}-avf-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-78b-{core}-ip6routing-rnd-base-scale-avf"
- output-file-name: "2n-clx-xxv710-78b-{core}-ip6-rnd-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-mrr.78B-{core}-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-rnd-mrr.78B-{core}-avf-ethip6-ip6scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-rnd-mrr.78B-{core}-avf-ethip6-ip6scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-rnd-mrr.78B-{core}-avf-ethip6-ip6scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-78b-{core}-ip6routing-base-scale-dpdk"
- output-file-name: "2n-clx-xxv710-78b-{core}-ip6-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-mrr.78B-{core}-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-mrr.78B-{core}-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-mrr.78B-{core}-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-mrr.78B-{core}-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-78b-{core}-ip6routing-rnd-base-scale-dpdk"
- output-file-name: "2n-clx-xxv710-78b-{core}-ip6-rnd-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-mrr.78B-{core}-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-rnd-mrr.78B-{core}-ethip6-ip6scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-rnd-mrr.78B-{core}-ethip6-ip6scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-rnd-mrr.78B-{core}-ethip6-ip6scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-78b-{core}-ip6routing-base-scale-af_xdp"
- output-file-name: "2n-clx-xxv710-78b-{core}-ip6-base-scale-af_xdp"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Base-mrr.78B-{core}-af-xdp-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale20K-mrr.78B-{core}-af-xdp-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale20K-rnd-mrr.78B-{core}-af-xdp-ethip6-ip6scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale200K-mrr.78B-{core}-af-xdp-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale200K-rnd-mrr.78B-{core}-af-xdp-ethip6-ip6scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale2M-mrr.78B-{core}-af-xdp-ethip6-ip6scale2m-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale2M-rnd-mrr.78B-{core}-af-xdp-ethip6-ip6scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-78b-{core}-rdma-ip6routing-base-scale"
- output-file-name: "2n-clx-cx556a-78b-{core}-rdma-ip6routing-base-scale"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Base-Mrr.78B-{core}-rdma-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale20K-Mrr.78B-{core}-rdma-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale200K-Mrr.78B-{core}-rdma-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-Mrr.78B-{core}-rdma-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-dnv-x553-78b-{core}-ip6-base-scale-ixgbe"
- output-file-name: "2n-dnv-x553-78b-{core}-ip6-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-2n-dnv"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Base-mrr.78B-{core}-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale20K-mrr.78B-{core}-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale200K-mrr.78B-{core}-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X553-Ethip6-Ip6Scale2M-mrr.78B-{core}-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-78b-{core}-ip6routing-base-scale-avf-dpdk"
- output-file-name: "2n-skx-x710-78b-{core}-ip6-base-scale-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Mrr.78B-{core}-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Mrr.78B-{core}-avf-ethip6-ip6scale2m-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-rnd-Mrr.78B-{core}-avf-ethip6-ip6scale2m-rnd-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-mrr.78B-{core}-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-af-xdp-Ethip6-Ip6Base-mrr.78B-{core}-af-xdp-ethip6-ip6base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-78b-{core}-ip6routing-base-scale-avf"
- output-file-name: "2n-skx-xxv710-78b-{core}-ip6-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-mrr.78B-{core}-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-mrr.78B-{core}-avf-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-mrr.78B-{core}-avf-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-mrr.78B-{core}-avf-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-78b-{core}-ip6routing-rnd-base-scale-avf"
- output-file-name: "2n-skx-xxv710-78b-{core}-ip6-rnd-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-mrr.78B-{core}-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-rnd-mrr.78B-{core}-avf-ethip6-ip6scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-rnd-mrr.78B-{core}-avf-ethip6-ip6scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-rnd-mrr.78B-{core}-avf-ethip6-ip6scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-78b-{core}-ip6routing-base-scale-dpdk"
- output-file-name: "2n-skx-xxv710-78b-{core}-ip6-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-mrr.78B-{core}-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-mrr.78B-{core}-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-mrr.78B-{core}-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-mrr.78B-{core}-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-78b-{core}-ip6routing-rnd-base-scale-dpdk"
- output-file-name: "2n-skx-xxv710-78b-{core}-ip6-rnd-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-mrr.78B-{core}-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-rnd-mrr.78B-{core}-ethip6-ip6scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-rnd-mrr.78B-{core}-ethip6-ip6scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-rnd-mrr.78B-{core}-ethip6-ip6scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "3n-dnv-x553-78b-{core}-ip6routing-base-scale-ixgbe"
- output-file-name: "3n-dnv-x553-78b-{core}-ip6-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-3n-dnv"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Base-mrr.78B-{core}-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale20K-mrr.78B-{core}-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale200K-mrr.78B-{core}-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X553-Ethip6-Ip6Scale2M-mrr.78B-{core}-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-x710-78b-{core}-ip6routing-base-scale-avf"
- output-file-name: "3n-skx-x710-78b-{core}-ip6-base-scale-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Ethip6-Ip6Base-mrr.78B-{core}-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-mrr.78B-{core}-avf-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-78b-{core}-ip6routing-base-scale-avf"
- output-file-name: "3n-skx-xxv710-78b-{core}-ip6-base-scale-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-mrr.78B-{core}-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-mrr.78B-{core}-avf-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-mrr.78B-{core}-avf-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-mrr.78B-{core}-avf-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-78b-{core}-ip6routing-base-scale-dpdk"
- output-file-name: "3n-skx-xxv710-78b-{core}-ip6-base-scale-dpdk"
- data: "plot-performance-trending-vpp-3n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Base-mrr.78B-{core}-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Scale2M-mrr.78B-{core}-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-78b-{core}-ip6routing-base-scale-ixgbe"
- output-file-name: "3n-tsh-x520-78b-{core}-ip6-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Base-mrr.78B-{core}-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale20K-mrr.78B-{core}-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale200K-mrr.78B-{core}-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X520-Ethip6-Ip6Scale2M-mrr.78B-{core}-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "3n-dnv-x553-imix-{core}-ipsec-base-scale-sw-ixgbe"
- output-file-name: "3n-dnv-x553-imix-{core}-ipsec-base-scale-sw-ixgbe"
- data: "plot-performance-trending-vpp-3n-dnv"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-{core}-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-{core}-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "3n-dnv-x553-1518b-{core}-ipsec-base-scale-sw-ixgbe"
- output-file-name: "3n-dnv-x553-1518b-{core}-ipsec-base-scale-sw-ixgbe"
- data: "plot-performance-trending-vpp-3n-dnv"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-{core}-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-{core}-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X553-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-imix-{core}-ipsec-ip4routing-base-scale-avf"
- output-file-name: "3n-skx-xxv710-imix-{core}-ipsec-base-scale-sw-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-{core}-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-{core}-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-{core}-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-{core}-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-{core}-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-{core}-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-imix-{core}-ipsec-ip4routing-base-scale-dpdk"
- output-file-name: "3n-skx-xxv710-imix-{core}-ipsec-base-scale-sw-dpdk"
- data: "plot-performance-trending-vpp-3n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-{core}-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-1518b-{core}-ipsec-ip4routing-base-scale-avf"
- output-file-name: "3n-skx-xxv710-1518b-{core}-ipsec-base-scale-sw-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-{core}-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-{core}-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-{core}-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-{core}-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-{core}-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-{core}-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-1518b-{core}-ipsec-ip4routing-base-scale-dpdk"
- output-file-name: "3n-skx-xxv710-1518b-{core}-ipsec-base-scale-sw-dpdk"
- data: "plot-performance-trending-vpp-3n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-{core}-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-imix-{core}-ipsec-ip4routing-base-scale-sw-ixgbe"
- output-file-name: "3n-tsh-x520-imix-{core}-ipsec-base-scale-sw-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-{core}-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-{core}-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.IMIX-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.IMIX-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-1518b-{core}-ipsec-ip4routing-base-scale-sw-ixgbe"
- output-file-name: "3n-tsh-x520-1518b-{core}-ipsec-base-scale-sw-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-{core}-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-{core}-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-mrr.1518b-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.10Ge2P1X520-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-mrr.1518b-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-x710-64b-{core}-l2switching-base-scale-avf-dpdk"
- output-file-name: "2n-clx-x710-64b-{core}-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-{core}-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-mrr.64B-{core}-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-avf-Eth-L2Bdscale1Mmaclrn-Mrr.64B-{core}-avf-eth-l2bdscale1mmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-af-xdp-Eth-L2Bdbasemaclrn-mrr.64B-{core}-af-xdp-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-l2switching-base-avf"
- output-file-name: "2n-clx-xxv710-64b-{core}-l2-base-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-mrr.64B-{core}-avf-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-mrr.64B-{core}-avf-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-{core}-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-mrr.64B-{core}-avf-dot1q-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-l2switching-base-dpdk"
- output-file-name: "2n-clx-xxv710-64b-{core}-l2-base-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-mrr.64B-{core}-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-mrr.64B-{core}-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-mrr.64B-{core}-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-l2switching-base-scale-avf"
- output-file-name: "2n-clx-xxv710-64b-{core}-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-{core}-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-mrr.64B-{core}-avf-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-mrr.64B-{core}-avf-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-mrr.64B-{core}-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-l2switching-base-scale-dpdk"
- output-file-name: "2n-clx-xxv710-64b-{core}-l2-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-mrr.64B-{core}-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-mrr.64B-{core}-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-mrr.64B-{core}-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-mrr.64B-{core}-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-l2switching-base-scale-af_xdp"
- output-file-name: "2n-clx-xxv710-64b-{core}-l2-base-scale-af_xdp"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-af-xdp-Eth-L2Patch-mrr.64B-{core}-af-xdp-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-af-xdp-Eth-L2Xcbase-mrr.64B-{core}-af-xdp-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-af-xdp-Eth-L2Bdbasemaclrn-mrr.64B-{core}-af-xdp-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-af-xdp-Eth-L2Bdscale10Kmaclrn-mrr.64B-{core}-af-xdp-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-af-xdp-Eth-L2Bdscale100Kmaclrn-mrr.64B-{core}-af-xdp-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-af-xdp-Eth-L2Bdscale1Mmaclrn-mrr.64B-{core}-af-xdp-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-{core}-rdma-l2switching-base"
- output-file-name: "2n-clx-cx556a-64b-{core}-rdma-l2switching-base"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Mrr.64B-{core}-rdma-dot1q-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Patch-Mrr.64B-{core}-rdma-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Mrr.64B-{core}-rdma-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Mrr.64B-{core}-rdma-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-{core}-rdma-l2switching-scale"
- output-file-name: "2n-clx-cx556a-64b-{core}-rdma-l2switching-scale"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Mrr.64B-{core}-rdma-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale10Kmaclrn-Mrr.64B-{core}-rdma-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale100Kmaclrn-Mrr.64B-{core}-rdma-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale1Mmaclrn-Mrr.64B-{core}-rdma-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-dnv-x553-64b-{core}-l2switching-base-scale-ixgbe"
- output-file-name: "2n-dnv-x553-64b-{core}-l2-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-2n-dnv"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Patch-mrr.64B-{core}-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Xcbase-mrr.64B-{core}-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdbasemaclrn-mrr.64B-{core}-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdscale10Kmaclrn-mrr.64B-{core}-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdscale100Kmaclrn-mrr.64B-{core}-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X553-Eth-L2Bdscale1Mmaclrn-mrr.64B-{core}-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-64b-{core}-l2switching-base-scale-avf"
- output-file-name: "2n-skx-x710-64b-{core}-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Patch-Mrr.64B-{core}-avf-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Xcbase-mrr.64B-{core}-avf-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-{core}-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Mrr.64B-{core}-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-64b-{core}-l2switching-base-scale-dpdk"
- output-file-name: "2n-skx-x710-64b-{core}-l2-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Patch-Mrr.64B-{core}-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Xcbase-Mrr.64B-{core}-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-mrr.64B-{core}-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdscale1Mmaclrn-mrr.64B-{core}-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-64b-{core}-l2switching-base-scale-af_xdp"
- output-file-name: "2n-skx-x710-64b-{core}-l2-base-scale-af_xdp"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-af-xdp-Eth-L2Bdbasemaclrn-mrr.64B-{core}-af-xdp-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-l2switching-base-avf"
- output-file-name: "2n-skx-xxv710-64b-{core}-l2-base-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-mrr.64B-{core}-avf-dot1q-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-mrr.64B-{core}-avf-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-mrr.64B-{core}-avf-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-{core}-avf-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-l2switching-base-dpdk"
- output-file-name: "2n-skx-xxv710-64b-{core}-l2-base-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-mrr.64B-{core}-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-mrr.64B-{core}-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-mrr.64B-{core}-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-l2switching-base-scale-avf"
- output-file-name: "2n-skx-xxv710-64b-{core}-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-{core}-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-mrr.64B-{core}-avf-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-mrr.64B-{core}-avf-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-mrr.64B-{core}-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-l2switching-base-scale-dpdk"
- output-file-name: "2n-skx-xxv710-64b-{core}-l2-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-mrr.64B-{core}-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-mrr.64B-{core}-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-mrr.64B-{core}-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-mrr.64B-{core}-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-l2switching-base-scale-af_xdp"
- output-file-name: "2n-skx-xxv710-64b-{core}-l2-base-scale-af_xdp"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-af-xdp-Eth-L2Patch-mrr.64B-{core}-af-xdp-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-af-xdp-Eth-L2Xcbase-mrr.64B-{core}-af-xdp-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-af-xdp-Eth-L2Bdbasemaclrn-mrr.64B-{core}-af-xdp-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-af-xdp-Eth-L2Bdscale10Kmaclrn-mrr.64B-{core}-af-xdp-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-af-xdp-Eth-L2Bdscale100Kmaclrn-mrr.64B-{core}-af-xdp-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-af-xdp-Eth-L2Bdscale1Mmaclrn-mrr.64B-{core}-af-xdp-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-dnv-x553-64b-{core}-l2switching-base-scale-ixgbe"
- output-file-name: "3n-dnv-x553-64b-{core}-l2-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-3n-dnv"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Patch-mrr.64B-{core}-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Xcbase-mrr.64B-{core}-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdbasemaclrn-mrr.64B-{core}-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale10Kmaclrn-mrr.64B-{core}-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale100Kmaclrn-mrr.64B-{core}-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X553-Eth-L2Bdscale1Mmaclrn-mrr.64B-{core}-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-x710-64b-{core}-l2switching-base-scale-avf"
- output-file-name: "3n-skx-x710-64b-{core}-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Patch-Mrr.64B-{core}-avf-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Xcbase-Mrr.64B-{core}-avf-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Mrr.64B-{core}-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Mrr.64B-{core}-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-{core}-l2switching-base-avf"
- output-file-name: "3n-skx-xxv710-64b-{core}-l2-base-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Mrr.64B-{core}-avf-dot1q-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Patch-Mrr.64B-{core}-avf-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Mrr.64B-{core}-avf-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Mrr.64B-{core}-avf-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-{core}-l2switching-base-scale-avf"
- output-file-name: "3n-skx-xxv710-64b-{core}-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Mrr.64B-{core}-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Mrr.64B-{core}-avf-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Mrr.64B-{core}-avf-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Mrr.64B-{core}-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-{core}-l2switching-base-scale-avf-dpdk"
- output-file-name: "3n-skx-xxv710-64b-{core}-l2-base-scale-dpdk"
- data: "plot-performance-trending-vpp-3n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Patch-mrr.64B-{core}-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Xcbase-mrr.64B-{core}-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-mrr.64B-{core}-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-mrr.64B-{core}-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-{core}-l2switching-base-ixgbe"
- output-file-name: "3n-tsh-x520-64b-{core}-l2-base-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Dot1Q-L2Bdbasemaclrn-mrr.64B-{core}-dot1q-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Patch-Mrr.64B-{core}-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Xcbase-mrr.64B-{core}-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-mrr.64B-{core}-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-{core}-l2switching-base-scale-ixgbe"
- output-file-name: "3n-tsh-x520-64b-{core}-l2-base-scale-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Patch-mrr.64B-{core}-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Xcbase-mrr.64B-{core}-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-mrr.64B-{core}-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdscale10Kmaclrn-mrr.64B-{core}-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdscale100Kmaclrn-mrr.64B-{core}-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdscale1Mmaclrn-mrr.64B-{core}-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-{core}-features-l2switching-base-ixgbe"
- output-file-name: "3n-tsh-x520-64b-{core}-l2-features-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-mrr.64B-{core}-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-mrr.64B-{core}-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-mrr.64B-{core}-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-mrr.64B-{core}-eth-l2bdbasemaclrn-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-mrr.64B-{core}-eth-l2bdbasemaclrn-oacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X520-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-mrr.64B-{core}-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-78b-{core}-srv6-ip6routing-base-avf"
- output-file-name: "3n-skx-xxv710-78b-{core}-srv6-base-avf"
- data: "plot-performance-trending-vpp-3n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-mrr.78B-{core}-avf-ethip6ip6-ip6base-srv6enc1sid-mrr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-mrr.78B-{core}-avf-ethip6srhip6-ip6base-srv6enc2sids-mrr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-mrr.78B-{core}-avf-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-mrr.78B-{core}-avf-ethip6srhip6-ip6base-srv6proxy-dyn-mrr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-mrr.78B-{core}-avf-ethip6srhip6-ip6base-srv6proxy-masq-mrr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-mrr.78B-{core}-avf-ethip6srhip6-ip6base-srv6proxy-stat-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-78b-{core}-srv6-ip6routing-base-ixgbe"
- output-file-name: "3n-tsh-x520-78b-{core}-srv6-base-ixgbe"
- data: "plot-performance-trending-vpp-3n-tsh"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-mrr.78B-{core}-ethip6ip6-ip6base-srv6enc1sid-mrr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-mrr.78B-{core}-ethip6srhip6-ip6base-srv6enc2sids-mrr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-mrr.78B-{core}-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-mrr.78B-{core}-ethip6srhip6-ip6base-srv6proxy-dyn-mrr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-mrr.78B-{core}-ethip6srhip6-ip6base-srv6proxy-masq-mrr"
- - "Tests.Vpp.Perf.Srv6.10Ge2P1X520-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-mrr.78B-{core}-ethip6srhip6-ip6base-srv6proxy-stat-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-vhost-base-avf-testpmd"
- output-file-name: "2n-clx-xxv710-64b-{core}-vhost-base-avf-testpmd"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-{core}-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-vhost-base-avf-vpp"
- output-file-name: "2n-clx-xxv710-64b-{core}-vhost-base-avf-vpp"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-{core}-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-vhost-base-dpdk-testpmd"
- output-file-name: "2n-clx-xxv710-64b-{core}-vhost-base-dpdk-testpmd"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-vhost-base-dpdk-vpp"
- output-file-name: "2n-clx-xxv710-64b-{core}-vhost-base-dpdk-vpp"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-{core}-rdma-l2-vhost-base"
- output-file-name: "2n-clx-cx556a-64b-{core}-rdma-l2-vhost-base"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-{core}-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-{core}-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-{core}-rdma-l2-vhost-vppl2xc-base"
- output-file-name: "2n-clx-cx556a-64b-{core}-rdma-l2-vhost-vppl2xc-base"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-{core}-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-{core}-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-114b-{core}-vts-l2switching-base-avf-dpdk"
- output-file-name: "2n-clx-xxv710-114b-{core}-vts-l2switching-base-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-mrr.114B-{core}-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-{core}-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-{core}-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-e810cq-64b-{core}-memif"
- output-file-name: "2n-clx-e810cq-64b-{core}-memif"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Mrr.64B-{core}-avf-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Mrr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1E810Cq-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Mrr.64B-{core}-avf-ethip4-ip4base-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1E810Cq-Eth-L2Xcbase-Eth-2Memif-1Dcr-Mrr.64B-{core}-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1E810Cq-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Mrr.64B-{core}-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1E810Cq-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Mrr.64B-{core}-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-e810cq-64b-{core}-ip4-base-scale-avf"
- output-file-name: "2n-clx-e810cq-64b-{core}-ip4-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Avf-Ethip4-Ip4Base-Mrr.64B-{core}-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Avf-Ethip4-Ip4Scale20K-Mrr.64B-{core}-avf-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Avf-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-{core}-avf-ethip4-ip4scale20k-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-e810cq-64b-{core}-ip4-features-avf"
- output-file-name: "2n-clx-e810cq-64b-{core}-ip4-features-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Mrr.64B-{core}-avf-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Mrr.64B-{core}-avf-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Mrr.64B-{core}-avf-ethip4udp-ip4base-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Mrr.64B-{core}-avf-ethip4udp-ip4base-oacl50sl-10kflows-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-e810cq-64b-{core}-ip4-base-scale-dpdk"
- output-file-name: "2n-clx-e810cq-64b-{core}-ip4-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Ethip4-Ip4Base-Mrr.64B-{core}-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Ethip4-Ip4Scale20K-Mrr.64B-{core}-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-{core}-ethip4-ip4scale20k-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-e810cq-64b-{core}-ip4-features-dpdk"
- output-file-name: "2n-clx-e810cq-64b-{core}-ip4-features-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Mrr.64B-{core}-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Mrr.64B-{core}-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Mrr.64B-{core}-ethip4udp-ip4base-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Mrr.64B-{core}-ethip4udp-ip4base-oacl50sl-10kflows-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-e810cq-78b-{core}-ip6-base-scale"
- output-file-name: "2n-clx-e810cq-78b-{core}-ip6-base-scale"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1E810Cq-Avf-Ethip6-Ip6Base-Mrr.78B-{core}-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1E810Cq-Avf-Ethip6-Ip6Scale20K-Mrr.78B-{core}-avf-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1E810Cq-Avf-Ethip6-Ip6Scale20K-Rnd-Mrr.78B-{core}-avf-ethip6-ip6scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1E810Cq-Ethip6-Ip6Base-Mrr.78B-{core}-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1E810Cq-Ethip6-Ip6Scale20K-Mrr.78B-{core}-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1E810Cq-Ethip6-Ip6Scale20K-Rnd-Mrr.78B-{core}-ethip6-ip6scale20k-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-e810cq-64b-{core}-l2-base-scale-avf"
- output-file-name: "2n-clx-e810cq-64b-{core}-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Avf-Dot1Q-L2Bdbasemaclrn-Mrr.64B-{core}-avf-dot1q-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Patch-Mrr.64B-{core}-avf-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Xcbase-Mrr.64B-{core}-avf-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Bdbasemaclrn-Mrr.64B-{core}-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Bdscale10Kmaclrn-Mrr.64B-{core}-avf-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Bdscale100Kmaclrn-Mrr.64B-{core}-avf-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Bdscale1Mmaclrn-Mrr.64B-{core}-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-e810cq-64b-{core}-l2-base-scale-dpdk"
- output-file-name: "2n-clx-e810cq-64b-{core}-l2-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Dot1Q-L2Bdbasemaclrn-Mrr.64B-{core}-dot1q-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Eth-L2Patch-Mrr.64B-{core}-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Eth-L2Xcbase-Mrr.64B-{core}-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Eth-L2Bdbasemaclrn-Mrr.64B-{core}-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Eth-L2Bdscale10Kmaclrn-Mrr.64B-{core}-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Eth-L2Bdscale100Kmaclrn-Mrr.64B-{core}-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Eth-L2Bdscale1Mmaclrn-Mrr.64B-{core}-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-e810cq-64b-{core}-vhost"
- output-file-name: "2n-clx-e810cq-64b-{core}-vhost"
- data: "plot-performance-trending-vpp-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1E810Cq-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1E810Cq-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-vhost-base-avf-testpmd"
- output-file-name: "2n-skx-xxv710-64b-{core}-vhost-base-avf-testpmd"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-{core}-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-vhost-base-avf-vpp"
- output-file-name: "2n-skx-xxv710-64b-{core}-vhost-base-avf-vpp"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-{core}-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-vhost-base-dpdk-testpmd"
- output-file-name: "2n-skx-xxv710-64b-{core}-vhost-base-dpdk-testpmd"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-{core}-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-vhost-base-dpdk-vpp"
- output-file-name: "2n-skx-xxv710-64b-{core}-vhost-base-dpdk-vpp"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-{core}-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-x710-64b-{core}-link-bonding-vhost-base-avf-testpmd"
- output-file-name: "3n-skx-x710-64b-{core}-link-bonding-vhost-base-avf-testpmd"
- data: "plot-performance-trending-vpp-3n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-{core}-avf-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-{core}-avf-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-x710-64b-{core}-link-bonding-vhost-base-avf-vpp"
- output-file-name: "3n-skx-x710-64b-{core}-link-bonding-vhost-base-avf-vpp"
- data: "plot-performance-trending-vpp-3n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-mrr.64B-{core}-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-{core}-avf-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-{core}-vhost-base-dpdk-testpmd"
- output-file-name: "3n-skx-xxv710-64b-{core}-vhost-base-dpdk-testpmd"
- data: "plot-performance-trending-vpp-3n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-{core}-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-mrr.64B-{core}-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-{core}-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-{core}-vhost-base-avf-testpmd"
- output-file-name: "3n-skx-xxv710-64b-{core}-vhost-base-avf-testpmd"
- data: "plot-performance-trending-vpp-3n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-{core}-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-mrr.64B-{core}-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-{core}-avf-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-{core}-vhost-base-avf-vpp"
- output-file-name: "3n-skx-xxv710-64b-{core}-vhost-base-avf-vpp"
- data: "plot-performance-trending-vpp-3n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-{core}-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-{core}-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-{core}-avf-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-{core}-vhost-base-ixgbe-testpmd"
- output-file-name: "3n-tsh-x520-64b-{core}-vhost-base-ixgbe-testpmd"
- data: "plot-performance-trending-vpp-3n-tsh"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-mrr.64B-{core}-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-mrr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-mrr.64B-{core}-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-{core}-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-{core}-vhost-base-ixgbe-vpp"
- output-file-name: "3n-tsh-x520-64b-{core}-vhost-base-ixgbe-vpp"
- data: "plot-performance-trending-vpp-3n-tsh"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-{core}-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-{core}-ethip4-ip4base-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X520-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-{core}-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-114b-{core}-vts-l2switching-base-avf"
- output-file-name: "2n-skx-xxv710-114b-{core}-vts-l2switching-base-avf"
- data: "plot-performance-trending-vpp-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-mrr.114B-{core}-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-{core}-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-{core}-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-64b-{core}-dpdk"
- output-file-name: "2n-skx-x710-64b-{core}-dpdk"
- data: "plot-performance-trending-dpdk-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-mrr.64b-{core}-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-mrr.64b-{core}-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-dpdk"
- output-file-name: "2n-skx-xxv710-64b-{core}-dpdk"
- data: "plot-performance-trending-dpdk-2n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-mrr.64b-{core}-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-mrr.64b-{core}-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-x710-64b-{core}-dpdk"
- output-file-name: "2n-clx-x710-64b-{core}-dpdk"
- data: "plot-performance-trending-dpdk-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-mrr.64b-{core}-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-mrr.64b-{core}-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-dpdk"
- output-file-name: "2n-clx-xxv710-64b-{core}-dpdk"
- data: "plot-performance-trending-dpdk-2n-clx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-mrr.64b-{core}-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-mrr.64b-{core}-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-x710-64b-{core}-dpdk"
- output-file-name: "3n-skx-x710-64b-{core}-dpdk"
- data: "plot-performance-trending-dpdk-3n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "tests.dpdk.perf.10ge2p1x710-eth-l2xcbase-testpmd-mrr.64b-{core}-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.10ge2p1x710-ethip4-ip4base-l3fwd-mrr.64b-{core}-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-{core}-dpdk"
- output-file-name: "3n-skx-xxv710-64b-{core}-dpdk"
- data: "plot-performance-trending-dpdk-3n-skx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "tests.dpdk.perf.25ge2p1xxv710-eth-l2xcbase-testpmd-mrr.64b-{core}-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.25ge2p1xxv710-ethip4-ip4base-l3fwd-mrr.64b-{core}-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "3n-tsh-x520-64b-{core}-dpdk"
- output-file-name: "3n-tsh-x520-64b-{core}-dpdk"
- data: "plot-performance-trending-dpdk-3n-tsh"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Dpdk.Perf.10Ge2P1X520-Eth-L2Xcbase-Testpmd-Mrr.64B-{core}-eth-l2xcbase-testpmd-mrr"
- - "Tests.Dpdk.Perf.10Ge2P1X520-Ethip4-Ip4Base-L3Fwd-Mrr.64B-{core}-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
-# 2n-zn2
-
- - title: "2n-zn2-xxv710-64b-{core}-memif-base-avf"
- output-file-name: "2n-zn2-xxv710-64b-{core}-memif-base-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-{core}-avf-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-{core}-avf-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-{core}-memif-base-dpdk"
- output-file-name: "2n-zn2-xxv710-64b-{core}-memif-base-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-mrr.64B-{core}-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-mrr.64B-{core}-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-mrr.64B-{core}-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-{core}-rdma-l2-eth-2memif-1dcr"
- output-file-name: "2n-zn2-cx556a-64b-{core}-rdma-l2-eth-2memif-1dcr"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Mrr.64B-{core}-rdma-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Memif-1Dcr-Mrr.64B-{core}-rdma-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Mrr.64B-{core}-rdma-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-x710-64b-{core}-ip4routing-base-scale-avf-dpdk"
- output-file-name: "2n-zn2-x710-64b-{core}-ip4-base-scale-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-mrr.64B-{core}-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-mrr.64B-{core}-avf-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-{core}-avf-ethip4-ip4scale2m-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-mrr.64B-{core}-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-af-xdp-Ethip4-Ip4Base-mrr.64B-{core}-af-xdp-ethip4-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-{core}-ip4routing-base-avf-dpdk"
- output-file-name: "2n-zn2-xxv710-64b-{core}-ip4-base-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-mrr.64B-{core}-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-mrr.64B-{core}-ethip4-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-{core}-ip4routing-scale-avf"
- output-file-name: "2n-zn2-xxv710-64b-{core}-ip4-scale-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-mrr.64B-{core}-avf-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-{core}-avf-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-mrr.64B-{core}-avf-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-{core}-avf-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-mrr.64B-{core}-avf-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-{core}-avf-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-{core}-ip4routing-scale-dpdk"
- output-file-name: "2n-zn2-xxv710-64b-{core}-ip4-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-mrr.64B-{core}-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-{core}-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-mrr.64B-{core}-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-{core}-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-mrr.64B-{core}-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-{core}-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-{core}-ip4routing-scale-af_xdp"
- output-file-name: "2n-zn2-xxv710-64b-{core}-ip4-scale-af_xdp"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Base-mrr.64B-{core}-af-xdp-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale20K-mrr.64B-{core}-af-xdp-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale20K-Rnd-mrr.64B-{core}-af-xdp-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale200K-mrr.64B-{core}-af-xdp-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale200K-Rnd-mrr.64B-{core}-af-xdp-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale2M-mrr.64B-{core}-af-xdp-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale2M-Rnd-mrr.64B-{core}-af-xdp-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-{core}-features-ip4routing-base-avf"
- output-file-name: "2n-zn2-xxv710-64b-{core}-ip4-features-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-mrr.64B-{core}-avf-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-mrr.64B-{core}-avf-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-mrr.64B-{core}-avf-ethip4udp-ip4base-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-mrr.64B-{core}-avf-ethip4udp-ip4base-oacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-mrr.64B-{core}-avf-ethip4udp-nat44det-h1-p1-s1-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Mrr.64B-{core}-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-{core}-nat44det-ip4routing-stl-bidir-avf"
- output-file-name: "2n-zn2-xxv710-64b-{core}-nat44det-ip4routing-stl-bidir-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr.64b-{core}-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-mrr.64b-{core}-avf-ethip4udp-nat44det-h16384-p63-s1032192-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-mrr.64b-{core}-avf-ethip4udp-nat44det-h65536-p63-s4128758-mrr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-mrr.64b-{core}-avf-ethip4udp-nat44det-h262144-p63-s16515072-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-{core}-rdma-ip4base"
- output-file-name: "2n-zn2-cx556a-64b-{core}-rdma-ip4base"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Mrr.64B-{core}-rdma-ethip4-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-{core}-rdma-ethip4-ip4scale"
- output-file-name: "2n-zn2-cx556a-64b-{core}-rdma-ethip4-ip4scale"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Mrr.64B-{core}-rdma-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-{core}-rdma-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Mrr.64B-{core}-rdma-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-{core}-rdma-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Mrr.64B-{core}-rdma-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-{core}-rdma-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-{core}-rdma-ethip4-features"
- output-file-name: "2n-zn2-cx556a-64b-{core}-rdma-ethip4-features"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Mrr.64B-{core}-rdma-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Mrr.64B-{core}-rdma-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Mrr.64B-{core}-rdma-ethip4udp-ip4base-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Mrr.64B-{core}-rdma-ethip4udp-ip4base-oacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1-p1-s1-Mrr.64B-{core}-rdma-ethip4udp-nat44det-h1-p1-s1-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1024-p63-s64512-Mrr.64B-{core}-rdma-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-{core}-ethip4--ethip4udpgeneve-avf"
- output-file-name: "2n-zn2-xxv710-64b-{core}-ethip4--ethip4udpgeneve-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-1Tun-Ip4Base-Mrr.64B-{core}-avf-ethip4--ethip4udpgeneve-1tun-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-4Tun-Ip4Base-Mrr.64B-{core}-avf-ethip4--ethip4udpgeneve-4tun-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-16Tun-Ip4Base-Mrr.64B-{core}-avf-ethip4--ethip4udpgeneve-16tun-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-64Tun-Ip4Base-Mrr.64B-{core}-avf-ethip4--ethip4udpgeneve-64tun-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-256Tun-Ip4Base-Mrr.64B-{core}-avf-ethip4--ethip4udpgeneve-256tun-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-x710-78b-{core}-ip6routing-base-scale-avf-dpdk"
- output-file-name: "2n-zn2-x710-78b-{core}-ip6-base-scale-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Mrr.78B-{core}-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Mrr.78B-{core}-avf-ethip6-ip6scale2m-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-rnd-Mrr.78B-{core}-avf-ethip6-ip6scale2m-rnd-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-mrr.78B-{core}-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-af-xdp-Ethip6-Ip6Base-mrr.78B-{core}-af-xdp-ethip6-ip6base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-78b-{core}-ip6routing-base-scale-avf"
- output-file-name: "2n-zn2-xxv710-78b-{core}-ip6-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-mrr.78B-{core}-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-mrr.78B-{core}-avf-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-mrr.78B-{core}-avf-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-mrr.78B-{core}-avf-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-78b-{core}-ip6routing-rnd-base-scale-avf"
- output-file-name: "2n-zn2-xxv710-78b-{core}-ip6-rnd-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-mrr.78B-{core}-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-rnd-mrr.78B-{core}-avf-ethip6-ip6scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-rnd-mrr.78B-{core}-avf-ethip6-ip6scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-rnd-mrr.78B-{core}-avf-ethip6-ip6scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-78b-{core}-ip6routing-base-scale-dpdk"
- output-file-name: "2n-zn2-xxv710-78b-{core}-ip6-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-mrr.78B-{core}-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-mrr.78B-{core}-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-mrr.78B-{core}-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-mrr.78B-{core}-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-78b-{core}-ip6routing-rnd-base-scale-dpdk"
- output-file-name: "2n-zn2-xxv710-78b-{core}-ip6-rnd-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-mrr.78B-{core}-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-rnd-mrr.78B-{core}-ethip6-ip6scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-rnd-mrr.78B-{core}-ethip6-ip6scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-rnd-mrr.78B-{core}-ethip6-ip6scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-78b-{core}-ip6routing-base-scale-af_xdp"
- output-file-name: "2n-zn2-xxv710-78b-{core}-ip6-base-scale-af_xdp"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Base-mrr.78B-{core}-af-xdp-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale20K-mrr.78B-{core}-af-xdp-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale20K-rnd-mrr.78B-{core}-af-xdp-ethip6-ip6scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale200K-mrr.78B-{core}-af-xdp-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale200K-rnd-mrr.78B-{core}-af-xdp-ethip6-ip6scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale2M-mrr.78B-{core}-af-xdp-ethip6-ip6scale2m-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale2M-rnd-mrr.78B-{core}-af-xdp-ethip6-ip6scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-78b-{core}-rdma-ip6routing-base-scale"
- output-file-name: "2n-zn2-cx556a-78b-{core}-rdma-ip6routing-base-scale"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Base-Mrr.78B-{core}-rdma-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale20K-Mrr.78B-{core}-rdma-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale200K-Mrr.78B-{core}-rdma-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-Mrr.78B-{core}-rdma-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-x710-64b-{core}-l2switching-base-scale-avf-dpdk"
- output-file-name: "2n-zn2-x710-64b-{core}-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-{core}-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-mrr.64B-{core}-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-avf-Eth-L2Bdscale1Mmaclrn-Mrr.64B-{core}-avf-eth-l2bdscale1mmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-af-xdp-Eth-L2Bdbasemaclrn-mrr.64B-{core}-af-xdp-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-{core}-l2switching-base-avf"
- output-file-name: "2n-zn2-xxv710-64b-{core}-l2-base-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-mrr.64B-{core}-avf-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-mrr.64B-{core}-avf-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-{core}-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-mrr.64B-{core}-avf-dot1q-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-{core}-l2switching-base-dpdk"
- output-file-name: "2n-zn2-xxv710-64b-{core}-l2-base-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-mrr.64B-{core}-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-mrr.64B-{core}-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-mrr.64B-{core}-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-{core}-l2switching-base-scale-avf"
- output-file-name: "2n-zn2-xxv710-64b-{core}-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-mrr.64B-{core}-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-mrr.64B-{core}-avf-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-mrr.64B-{core}-avf-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-mrr.64B-{core}-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-{core}-l2switching-base-scale-dpdk"
- output-file-name: "2n-zn2-xxv710-64b-{core}-l2-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-mrr.64B-{core}-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-mrr.64B-{core}-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-mrr.64B-{core}-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-mrr.64B-{core}-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-{core}-l2switching-base-scale-af_xdp"
- output-file-name: "2n-zn2-xxv710-64b-{core}-l2-base-scale-af_xdp"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-af-xdp-Eth-L2Patch-mrr.64B-{core}-af-xdp-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-af-xdp-Eth-L2Xcbase-mrr.64B-{core}-af-xdp-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-af-xdp-Eth-L2Bdbasemaclrn-mrr.64B-{core}-af-xdp-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-af-xdp-Eth-L2Bdscale10Kmaclrn-mrr.64B-{core}-af-xdp-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-af-xdp-Eth-L2Bdscale100Kmaclrn-mrr.64B-{core}-af-xdp-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-af-xdp-Eth-L2Bdscale1Mmaclrn-mrr.64B-{core}-af-xdp-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-{core}-rdma-l2switching-base"
- output-file-name: "2n-zn2-cx556a-64b-{core}-rdma-l2switching-base"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Mrr.64B-{core}-rdma-dot1q-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Patch-Mrr.64B-{core}-rdma-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Mrr.64B-{core}-rdma-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Mrr.64B-{core}-rdma-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-{core}-rdma-l2switching-scale"
- output-file-name: "2n-zn2-cx556a-64b-{core}-rdma-l2switching-scale"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Mrr.64B-{core}-rdma-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale10Kmaclrn-Mrr.64B-{core}-rdma-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale100Kmaclrn-Mrr.64B-{core}-rdma-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale1Mmaclrn-Mrr.64B-{core}-rdma-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-{core}-vhost-base-avf-testpmd"
- output-file-name: "2n-zn2-xxv710-64b-{core}-vhost-base-avf-testpmd"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-{core}-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-{core}-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-{core}-vhost-base-avf-vpp"
- output-file-name: "2n-zn2-xxv710-64b-{core}-vhost-base-avf-vpp"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-{core}-avf-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-{core}-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-{core}-vhost-base-dpdk-testpmd"
- output-file-name: "2n-zn2-xxv710-64b-{core}-vhost-base-dpdk-testpmd"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-{core}-vhost-base-dpdk-vpp"
- output-file-name: "2n-zn2-xxv710-64b-{core}-vhost-base-dpdk-vpp"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-{core}-rdma-l2-vhost-base"
- output-file-name: "2n-zn2-cx556a-64b-{core}-rdma-l2-vhost-base"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-{core}-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-{core}-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-{core}-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-cx556a-64b-{core}-rdma-l2-vhost-vppl2xc-base"
- output-file-name: "2n-zn2-cx556a-64b-{core}-rdma-l2-vhost-vppl2xc-base"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-{core}-rdma-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-{core}-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-{core}-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-114b-{core}-vts-l2switching-base-avf-dpdk"
- output-file-name: "2n-zn2-xxv710-114b-{core}-vts-l2switching-base-avf-dpdk"
- data: "plot-performance-trending-vpp-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Vts.2n1l-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Noacl-2Vhostvr1024-1Vm-mrr.114B-{core}-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-{core}-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-{core}-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-aclpermitreflect-2vhostvr1024-1vm-mrr"
- layout: "plot-cpta"
-
-# 2n-zn2 DPDK
-
- - title: "2n-zn2-x710-64b-{core}-dpdk"
- output-file-name: "2n-zn2-x710-64b-{core}-dpdk"
- data: "plot-performance-trending-dpdk-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "tests.dpdk.perf.2n1l-10ge2p1x710-eth-l2xcbase-testpmd-mrr.64b-{core}-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.2n1l-10ge2p1x710-ethip4-ip4base-l3fwd-mrr.64b-{core}-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-zn2-xxv710-64b-{core}-dpdk"
- output-file-name: "2n-zn2-xxv710-64b-{core}-dpdk"
- data: "plot-performance-trending-dpdk-2n-zn2"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-mrr.64b-{core}-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-mrr.64b-{core}-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
-# 2n-icx
-
- - title: "2n-icx-xxv710-64b-{core}-memif-base"
- output-file-name: "2n-icx-xxv710-64b-{core}-memif-base"
- data: "plot-performance-trending-vpp-2n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Mrr.64B-{core}-avf-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Mrr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Mrr.64B-{core}-avf-ethip4-ip4base-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Mrr.64B-{core}-eth-l2xcbase-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Mrr.64B-{core}-eth-l2bdbasemaclrn-eth-2memif-1dcr-mrr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Mrr.64B-{core}-ethip4-ip4base-eth-2memif-1dcr-mrr"
- layout: "plot-cpta"
-
- - title: "2n-icx-xxv710-64b-{core}-ip4routing-base-scale-af-xdp"
- output-file-name: "2n-icx-xxv710-64b-{core}-ip4-base-scale-af-xdp"
- data: "plot-performance-trending-vpp-2n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Af-Xdp-Ethip4-Ip4Base-Mrr.64B-{core}-af-xdp-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Af-Xdp-Ethip4-Ip4Scale20K-Mrr.64B-{core}-af-xdp-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Af-Xdp-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-{core}-af-xdp-ethip4-ip4scale20k-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-icx-xxv710-64b-{core}-ip4routing-base-scale-avf"
- output-file-name: "2n-icx-xxv710-64b-{core}-ip4-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Mrr.64B-{core}-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Mrr.64B-{core}-avf-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-{core}-avf-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Mrr.64B-{core}-avf-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-{core}-avf-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Mrr.64B-{core}-avf-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-{core}-avf-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-icx-xxv710-64b-{core}-ip4routing-base-scale-dpdk"
- output-file-name: "2n-icx-xxv710-64b-{core}-ip4-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Mrr.64B-{core}-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Mrr.64B-{core}-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Mrr.64B-{core}-ethip4-ip4scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Mrr.64B-{core}-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Mrr.64B-{core}-ethip4-ip4scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Mrr.64B-{core}-ethip4-ip4scale2m-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Mrr.64B-{core}-ethip4-ip4scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-icx-xxv710-64b-{core}-features-ip4routing-base-avf"
- output-file-name: "2n-icx-xxv710-64b-{core}-ip4-features-avf"
- data: "plot-performance-trending-vpp-2n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Mrr.64B-{core}-avf-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Mrr.64B-{core}-avf-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Mrr.64B-{core}-avf-ethip4udp-ip4base-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Mrr.64B-{core}-avf-ethip4udp-ip4base-oacl50sl-10kflows-mrr"
- layout: "plot-cpta"
-
- - title: "2n-icx-xxv710-64b-{core}-nat44det-ip4routing-stl-bidir-avf"
- output-file-name: "2n-icx-xxv710-64b-{core}-nat44det-ip4routing-stl-bidir-avf"
- data: "plot-performance-trending-vpp-2n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Det-H1024-P63-S64512-Mrr.64B-{core}-avf-ethip4udp-nat44det-h1024-p63-s64512-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Det-H16384-P63-S1032192-Mrr.64B-{core}-avf-ethip4udp-nat44det-h16384-p63-s1032192-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Det-H65536-P63-S4128758-Mrr.64B-{core}-avf-ethip4udp-nat44det-h65536-p63-s4128758-mrr"
- layout: "plot-cpta"
-
- - title: "2n-icx-xxv710-64b-{core}-nat44ed-ip4routing-stl-unidir-avf"
- output-file-name: "2n-icx-xxv710-64b-{core}-nat44ed-ip4routing-stl-unidir-avf"
- data: "plot-performance-trending-vpp-2n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H1024-P63-S64512-Udir-Mrr.64B-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-mrr"
- layout: "plot-cpta"
-
- - title: "2n-icx-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-cps-avf"
- output-file-name: "2n-icx-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-cps-avf"
- data: "plot-performance-trending-vpp-2n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-H1024-P63-S64512-Cps-Mrr.64B-{core}-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-H16384-P63-S1032192-Cps-Mrr.64B-{core}-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-H65536-P63-S4128768-Cps-Mrr.64B-{core}-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H1024-P63-S64512-Cps-Mrr.64B-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H16384-P63-S1032192-Cps-Mrr.64B-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H65536-P63-S4128768-Cps-Mrr.64B-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-mrr"
- layout: "plot-cpta-cps"
-
- - title: "2n-icx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-cps-avf"
- output-file-name: "2n-icx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-cps-avf"
- data: "plot-performance-trending-vpp-2n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Ip4Base-H1024-P63-S64512-Cps-Mrr.64B-{core}-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Ip4Base-H16384-P63-S1032192-Cps-Mrr.64B-{core}-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Ip4Base-H65536-P63-S4128768-Cps-Mrr.64B-{core}-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H1024-P63-S64512-Cps-Mrr.64B-{core}-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H16384-P63-S1032192-Cps-Mrr.64B-{core}-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H65536-P63-S4128768-Cps-Mrr.64B-{core}-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-mrr"
- layout: "plot-cpta-cps"
-
- - title: "2n-icx-xxv710-100b-{core}-nat44ed-ip4routing-tcp-tput-avf"
- output-file-name: "2n-icx-xxv710-100b-{core}-nat44ed-ip4routing-tcp-tput-avf"
- data: "plot-performance-trending-vpp-2n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H1024-P63-S64512-Tput-Mrr.100B-{core}-avf-ethip4tcp-nat44ed-h1024-p63-s64512-tput-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H16384-P63-S1032192-Tput-Mrr.100B-{core}-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H65536-P63-S4128768-Tput-Mrr.100B-{core}-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-mrr"
- layout: "plot-cpta"
-
- - title: "2n-icx-xxv710-100b-{core}-nat44ed-ip4routing-udp-tput-avf"
- output-file-name: "2n-icx-xxv710-100b-{core}-nat44ed-ip4routing-udp-tput-avf"
- data: "plot-performance-trending-vpp-2n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H1024-P63-S64512-Tput-Mrr.100B-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-tput-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H16384-P63-S1032192-Tput-Mrr.100B-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-tput-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H65536-P63-S4128768-Tput-Mrr.100B-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-tput-mrr"
- layout: "plot-cpta"
-
- - title: "2n-icx-xxv710-64b-{core}-ethip4--ethip4udpgeneve-avf"
- output-file-name: "2n-icx-xxv710-64b-{core}-ethip4--ethip4udpgeneve-avf"
- data: "plot-performance-trending-vpp-2n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-1Tun-Ip4Base-Mrr.64B-{core}-avf-ethip4--ethip4udpgeneve-1tun-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-4Tun-Ip4Base-Mrr.64B-{core}-avf-ethip4--ethip4udpgeneve-4tun-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-16Tun-Ip4Base-Mrr.64B-{core}-avf-ethip4--ethip4udpgeneve-16tun-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-64Tun-Ip4Base-Mrr.64B-{core}-avf-ethip4--ethip4udpgeneve-64tun-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-256Tun-Ip4Base-Mrr.64B-{core}-avf-ethip4--ethip4udpgeneve-256tun-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "2n-icx-xxv710-78b-{core}-ip6routing-base-scale-af-xdp"
- output-file-name: "2n-icx-xxv710-78b-{core}-ip6-base-scale-af-xdp"
- data: "plot-performance-trending-vpp-2n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Af-Xdp-Ethip6-Ip6Base-Mrr.78B-{core}-af-xdp-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Af-Xdp-Ethip6-Ip6Scale20K-Mrr.78B-{core}-af-xdp-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Af-Xdp-Ethip6-Ip6Scale20K-Rnd-Mrr.78B-{core}-af-xdp-ethip6-ip6scale20k-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-icx-xxv710-78b-{core}-ip6routing-base-scale-avf"
- output-file-name: "2n-icx-xxv710-78b-{core}-ip6-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Mrr.78B-{core}-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Mrr.78B-{core}-avf-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Rnd-Mrr.78B-{core}-avf-ethip6-ip6scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Mrr.78B-{core}-avf-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Rnd-Mrr.78B-{core}-avf-ethip6-ip6scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Mrr.78B-{core}-avf-ethip6-ip6scale2m-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Rnd-Mrr.78B-{core}-avf-ethip6-ip6scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-icx-xxv710-78b-{core}-ip6routing-base-scale-dpdk"
- output-file-name: "2n-icx-xxv710-78b-{core}-ip6-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Mrr.78B-{core}-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Mrr.78B-{core}-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Rnd-Mrr.78B-{core}-ethip6-ip6scale20k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Mrr.78B-{core}-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Rnd-Mrr.78B-{core}-ethip6-ip6scale200k-rnd-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Mrr.78B-{core}-ethip6-ip6scale2m-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Rnd-Mrr.78B-{core}-ethip6-ip6scale2m-rnd-mrr"
- layout: "plot-cpta"
-
- - title: "2n-icx-xxv710-64b-{core}-l2switching-base-scale-avf"
- output-file-name: "2n-icx-xxv710-64b-{core}-l2-base-scale-avf"
- data: "plot-performance-trending-vpp-2n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Mrr.64B-{core}-avf-dot1q-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-Mrr.64B-{core}-avf-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Mrr.64B-{core}-avf-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Mrr.64B-{core}-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Mrr.64B-{core}-avf-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Mrr.64B-{core}-avf-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Mrr.64B-{core}-avf-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-icx-xxv710-64b-{core}-l2switching-base-scale-dpdk"
- output-file-name: "2n-icx-xxv710-64b-{core}-l2-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-Mrr.64B-{core}-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Mrr.64B-{core}-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Mrr.64B-{core}-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Mrr.64B-{core}-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Mrr.64B-{core}-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Mrr.64B-{core}-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-icx-xxv710-64b-{core}-vhost-base"
- output-file-name: "2n-icx-xxv710-64b-{core}-vhost-base"
- data: "plot-performance-trending-vpp-2n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Mrr.64B-{core}-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-{core}-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- layout: "plot-cpta"
-
-# 2n-icx DPDK
-
- - title: "2n-icx-xxv710-64b-{core}-dpdk"
- output-file-name: "2n-icx-xxv710-64b-{core}-dpdk"
- data: "plot-performance-trending-dpdk-2n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-eth-l2xcbase-testpmd-mrr.64b-{core}-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.2n1l-25ge2p1xxv710-ethip4-ip4base-l3fwd-mrr.64b-{core}-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
-# 3n-icx
-
- - title: "3n-icx-xxv710-1518b-{core}-ipsec-aes128cbc-ip4routing-base-scale-sw-avf"
- output-file-name: "3n-icx-xxv710-1518b-{core}-ipsec-aes128cbc-ip4routing-base-scale-sw-avf"
- data: "plot-performance-trending-vpp-3n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Mrr.1518B-{core}-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Mrr.1518B-{core}-avf-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Mrr.1518B-{core}-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Mrr.1518B-{core}-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "3n-icx-xxv710-1518b-{core}-ipsec-aes256gcm-ip4routing-base-scale-sw-avf"
- output-file-name: "3n-icx-xxv710-1518b-{core}-ipsec-aes256gcm-ip4routing-base-scale-sw-avf"
- data: "plot-performance-trending-vpp-3n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Mrr.1518B-{core}-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes256Gcm-Mrr.1518B-{core}-avf-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Mrr.1518B-{core}-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Mrr.1518B-{core}-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-icx-xxv710-1518b-{core}-ipsec-scheduler-ip4routing-base-scale-sw-avf"
- output-file-name: "3n-icx-xxv710-1518b-{core}-ipsec-scheduler-ip4routing-base-scale-sw-avf"
- data: "plot-performance-trending-vpp-3n-icx"
- core: ["2t2c", "2t3c", "2t4c"]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1Tnlswasync-Scheduler-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Mrr.1518B-{core}-avf-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec8Tnlswasync-Scheduler-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Mrr.1518B-{core}-avf-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-Mrr.1518B-{core}-avf-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec8Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-Mrr.1518B-{core}-avf-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-icx-xxv710-1518b-{core}-ipsec-ip4routing-base-scale-sw-dpdk"
- output-file-name: "3n-icx-xxv710-1518b-{core}-ipsec-ip4routing-base-scale-sw-dpdk"
- data: "plot-performance-trending-vpp-3n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Mrr.1518B-{core}-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes256Gcm-Mrr.1518B-{core}-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Mrr.1518B-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-icx-xxv710-1518b-{core}-ipsec-scheduler-ip4routing-base-scale-sw-dpdk"
- output-file-name: "3n-icx-xxv710-1518b-{core}-ipsec-scheduler-ip4routing-base-scale-sw-dpdk"
- data: "plot-performance-trending-vpp-3n-icx"
- core: ["2t2c", "2t3c", "2t4c"]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec1Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-Mrr.1518B-{core}-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec8Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-Mrr.1518B-{core}-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-icx-xxv710-imix-{core}-ipsec-aes128cbc-ip4routing-base-scale-sw-avf"
- output-file-name: "3n-icx-xxv710-imix-{core}-ipsec-aes128cbc-ip4routing-base-scale-sw-avf"
- data: "plot-performance-trending-vpp-3n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Mrr.imix-{core}-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Mrr.imix-{core}-avf-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Mrr.imix-{core}-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Mrr.imix-{core}-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- layout: "plot-cpta"
-
- - title: "3n-icx-xxv710-imix-{core}-ipsec-aes256gcm-ip4routing-base-scale-sw-avf"
- output-file-name: "3n-icx-xxv710-imix-{core}-ipsec-aes256gcm-ip4routing-base-scale-sw-avf"
- data: "plot-performance-trending-vpp-3n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Mrr.imix-{core}-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes256Gcm-Mrr.imix-{core}-avf-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Mrr.imix-{core}-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Mrr.imix-{core}-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-icx-xxv710-imix-{core}-ipsec-scheduler-ip4routing-base-scale-sw-avf"
- output-file-name: "3n-icx-xxv710-imix-{core}-ipsec-scheduler-ip4routing-base-scale-sw-avf"
- data: "plot-performance-trending-vpp-3n-icx"
- core: ["2t2c", "2t3c", "2t4c"]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1Tnlswasync-Scheduler-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Mrr.imix-{core}-avf-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec8Tnlswasync-Scheduler-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Mrr.imix-{core}-avf-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-Mrr.imix-{core}-avf-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec8Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-Mrr.imix-{core}-avf-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-icx-xxv710-imix-{core}-ipsec-ip4routing-base-scale-sw-dpdk"
- output-file-name: "3n-icx-xxv710-imix-{core}-ipsec-ip4routing-base-scale-sw-dpdk"
- data: "plot-performance-trending-vpp-3n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Mrr.imix-{core}-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes256Gcm-Mrr.imix-{core}-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Mrr.imix-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-icx-xxv710-imix-{core}-ipsec-scheduler-ip4routing-base-scale-sw-dpdk"
- output-file-name: "3n-icx-xxv710-imix-{core}-ipsec-scheduler-ip4routing-base-scale-sw-dpdk"
- data: "plot-performance-trending-vpp-3n-icx"
- core: ["2t2c", "2t3c", "2t4c"]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec1Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-Mrr.imix-{core}-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec8Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-Mrr.imix-{core}-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-icx-xxv710-64b-{core}-ip4routing-base"
- output-file-name: "3n-icx-xxv710-64b-{core}-ip4-base"
- data: "plot-performance-trending-vpp-3n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Mrr.64B-{core}-avf-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Base-Mrr.64B-{core}-ethip4-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "3n-icx-xxv710-64b-{core}-ip4tunnel-base"
- output-file-name: "3n-icx-xxv710-64b-{core}-ip4tunnel-base"
- data: "plot-performance-trending-vpp-3n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Gtpusw-Ip4Base-Mrr.64B-{core}-avf-ethip4gtpusw-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Mrr.64B-{core}-avf-ethip4vxlan-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Xcbase-Mrr.64B-{core}-avf-ethip4vxlan-l2xcbase-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Gtpusw-Ip4Base-Mrr.64B-{core}-ethip4gtpusw-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Mrr.64B-{core}-ethip4vxlan-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Xcbase-Mrr.64B-{core}-ethip4vxlan-l2xcbase-mrr"
- layout: "plot-cpta"
-
- - title: "3n-icx-e810xxv-64b-{core}-ip4tunnel-gtpu"
- output-file-name: "3n-icx-e810xxv-64b-{core}-ip4tunnel-gtpu"
- data: "plot-performance-trending-vpp-3n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1E810Xxv-Ethip4Gtpuhw-Ip4Base-mrr.64B-{core}-ethip4gtpuhw-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1E810Xxv-Ethip4Gtpusw-Ip4Base-mrr.64B-{core}-ethip4gtpusw-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1E810Xxv-Ethip4Udpwireguard1Tnlsw-Ip4Base-mrr.64B-{core}-ethip4udpwireguard1tnlsw-ip4base-mrr"
- layout: "plot-cpta"
-
- - title: "3n-icx-xxv710-78b-{core}-ip6routing-base"
- output-file-name: "3n-icx-xxv710-78b-{core}-ip6-base"
- data: "plot-performance-trending-vpp-3n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Mrr.78B-{core}-avf-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Base-Mrr.78B-{core}-ethip6-ip6base-mrr"
- layout: "plot-cpta"
-
- - title: "3n-icx-xxv710-64b-{core}-l2switching-base"
- output-file-name: "3n-icx-xxv710-64b-{core}-l2-base"
- data: "plot-performance-trending-vpp-3n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Mrr.64B-{core}-avf-dot1q-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Patch-Mrr.64B-{core}-avf-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Mrr.64B-{core}-avf-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Mrr.64B-{core}-avf-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Patch-Mrr.64B-{core}-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Xcbase-Mrr.64B-{core}-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Mrr.64B-{core}-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-icx-xxv710-78b-{core}-srv6-ip6routing-base-avf"
- output-file-name: "3n-icx-xxv710-78b-{core}-srv6-ip6routing-base-avf"
- data: "plot-performance-trending-vpp-3n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Mrr.78B-{core}-avf-ethip6ip6-ip6base-srv6enc1sid-mrr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Mrr.78B-{core}-avf-ethip6srhip6-ip6base-srv6enc2sids-mrr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Mrr.78B-{core}-avf-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-mrr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-Mrr.78B-{core}-avf-ethip6srhip6-ip6base-srv6proxy-dyn-mrr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-Mrr.78B-{core}-avf-ethip6srhip6-ip6base-srv6proxy-masq-mrr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-Mrr.78B-{core}-avf-ethip6srhip6-ip6base-srv6proxy-stat-mrr"
- layout: "plot-cpta"
-
-# 3n-icx DPDK
-
- - title: "3n-icx-xxv710-64b-{core}-dpdk"
- output-file-name: "3n-icx-xxv710-64b-{core}-dpdk"
- data: "plot-performance-trending-dpdk-3n-icx"
- core: ["2t1c", "4t2c", "8t4c"]
- include:
- - "tests.dpdk.perf.25ge2p1xxv710-eth-l2xcbase-testpmd-mrr.64b-{core}-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.25ge2p1xxv710-ethip4-ip4base-l3fwd-mrr.64b-{core}-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
-# 3n-alt
-
- - title: "3n-alt-xl710-1518b-{core}-ipsec-aes128cbc-ip4routing-scale-sw"
- output-file-name: "3n-alt-xl710-1518b-{core}-ipsec-aes128cbc-ip4routing-scale-sw"
- data: "plot-performance-trending-vpp-3n-alt"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Mrr.1518B-{core}-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Gcm-Mrr.1518B-{core}-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Mrr.1518B-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Gcm-Mrr.1518B-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Mrr.1518B-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Gcm-Mrr.1518B-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-alt-xl710-1518b-{core}-ipsec-aes256gcm-ip4routing-scale-sw"
- output-file-name: "3n-alt-xl710-1518b-{core}-ipsec-aes256gcm-ip4routing-scale-sw"
- data: "plot-performance-trending-vpp-3n-alt"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Mrr.1518B-{core}-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Mrr.1518B-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Mrr.1518B-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-alt-xl710-imix-{core}-ipsec-aes128cbc-ip4routing-scale-sw"
- output-file-name: "3n-alt-xl710-imix-{core}-ipsec-aes128cbc-ip4routing-scale-sw"
- data: "plot-performance-trending-vpp-3n-alt"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Mrr.imix-{core}-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Gcm-Mrr.imix-{core}-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Mrr.imix-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Gcm-Mrr.imix-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Mrr.imix-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Gcm-Mrr.imix-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-alt-xl710-imix-{core}-ipsec-aes256gcm-ip4routing-scale-sw"
- output-file-name: "3n-alt-xl710-imix-{core}-ipsec-aes256gcm-ip4routing-scale-sw"
- data: "plot-performance-trending-vpp-3n-alt"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Mrr.imix-{core}-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Mrr.imix-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Mrr.imix-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-alt-xl710-64b-{core}-ipsec-ip4base-policy-outbound-nocrypto"
- output-file-name: "3n-alt-xl710-64b-{core}-ipsec-ip4base-policy-outbound-nocrypto"
- data: "plot-performance-trending-vpp-3n-alt"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1Spe-Cache-Ip4Base-Policy-Outbound-Nocrypto-Mrr.64B-{core}-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1Spe-Ip4Base-Policy-Outbound-Nocrypto-Mrr.64B-{core}-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec100Spe-Cache-Ip4Base-Policy-Outbound-Nocrypto-Mrr.64B-{core}-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec100Spe-Ip4Base-Policy-Outbound-Nocrypto-Mrr.64B-{core}-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Spe-Cache-Ip4Base-Policy-Outbound-Nocrypto-Mrr.64B-{core}-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Spe-Ip4Base-Policy-Outbound-Nocrypto-Mrr.64B-{core}-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-mrr"
- layout: "plot-cpta"
-
- - title: "3n-alt-xl710-64b-{core}-ipsec-ip4base-policy-aes256gcm-sw"
- output-file-name: "3n-alt-xl710-64b-{core}-ipsec-ip4base-policy-aes256gcm-sw"
- data: "plot-performance-trending-vpp-3n-alt"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1Tnlsw-Ip4Base-Policy-Aes256Gcm-Mrr.64B-{core}-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec40Tnlsw-Ip4Base-Policy-Aes256Gcm-Mrr.64B-{core}-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-mrr"
- - "Tests.Vpp.Perf.Crypto.40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Policy-Aes256Gcm-Mrr.64B-{core}-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-mrr"
- layout: "plot-cpta"
-
- - title: "3n-alt-xl710-64b-{core}-ip4-base-scale"
- output-file-name: "3n-alt-xl710-64b-{core}-ip4-base-scale"
- data: "plot-performance-trending-vpp-3n-alt"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Base-Mrr.64B-{core}-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Scale20K-Mrr.64B-{core}-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Scale200K-Mrr.64B-{core}-ethip4-ip4scale200k-mrr"
- layout: "plot-cpta"
-
- - title: "3n-alt-xl710-64b-{core}-ip4-feature"
- output-file-name: "3n-alt-xl710-64b-{core}-ip4-feature"
- data: "plot-performance-trending-vpp-3n-alt"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4-Ip4Base-Iacldstbase-Mrr.64B-{core}-ethip4-ip4base-iacldstbase-mrr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Mrr.64B-{core}-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Mrr.64B-{core}-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Mrr.64B-{core}-ethip4udp-ip4base-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.40Ge2P1Xl710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Mrr.64B-{core}-ethip4udp-ip4base-oacl50sl-10kflows-mrr"
- layout: "plot-cpta"
-
- - title: "3n-alt-xl710-64b-{core}-ip4tunnel-base"
- output-file-name: "3n-alt-xl710-64b-{core}-ip4tunnel-base"
- data: "plot-performance-trending-vpp-3n-alt"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.40Ge2P1Xl710-Ethip4Vxlan-L2Xcbase-Mrr.64B-{core}-ethip4vxlan-l2xcbase-mrr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.40Ge2P1Xl710-Ethip4Vxlan-L2Bdbasemaclrn-Mrr.64B-{core}-ethip4vxlan-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-alt-xl710-78b-{core}-ip6-base-scale"
- output-file-name: "3n-alt-xl710-78b-{core}-ip6-base-scale"
- data: "plot-performance-trending-vpp-3n-alt"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Base-Mrr.78B-{core}-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Scale20K-Mrr.78B-{core}-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Scale200K-Mrr.78B-{core}-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.40Ge2P1Xl710-Ethip6-Ip6Base-Iacldstbase-Mrr.78B-{core}-ethip6-ip6base-iacldstbase-mrr"
- layout: "plot-cpta"
-
- - title: "3n-alt-xl710-64b-{core}-l2-base-scale"
- output-file-name: "3n-alt-xl710-64b-{core}-l2-base-scale"
- data: "plot-performance-trending-vpp-3n-alt"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-Mrr.64B-{core}-dot1q-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Xcbase-Mrr.64B-{core}-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Patch-Mrr.64B-{core}-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Mrr.64B-{core}-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdscale10Kmaclrn-Mrr.64B-{core}-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdscale100Kmaclrn-Mrr.64B-{core}-eth-l2bdscale100kmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "3n-alt-xl710-64b-{core}-l2-feature"
- output-file-name: "3n-alt-xl710-64b-{core}-l2-feature"
- data: "plot-performance-trending-vpp-3n-alt"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-Mrr.64B-{core}-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-Mrr.64B-{core}-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-Mrr.64B-{core}-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-Mrr.64B-{core}-eth-l2bdbasemaclrn-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.L2.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-Mrr.64B-{core}-eth-l2bdbasemaclrn-oacl50sl-10kflows-mrr"
- layout: "plot-cpta"
-
- - title: "3n-alt-xl710-64b-{core}-vhost"
- output-file-name: "3n-alt-xl710-64b-{core}-vhost"
- data: "plot-performance-trending-vpp-3n-alt"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Mrr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Mrr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Mrr.64B-{core}-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr"
- - "Tests.Vpp.Perf.Vm Vhost.40Ge2P1Xl710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Mrr.64B-{core}-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-mrr"
- layout: "plot-cpta"
-
-# 2n-tx2
-
- - title: "2n-tx2-xl710-64b-{core}-ipsec-base-scale-sw-policy-dpdk"
- output-file-name: "2n-tx2-xl710-64b-{core}-ipsec-base-scale-sw-policy-dpdk"
- data: "plot-performance-trending-vpp-2n-tx2"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1Tnlsw-Ip4Base-Policy-Aes256Gcm-Udir-Mrr.64B-{core}-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-udir-mrr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1Tnlsw-Ip4Base-Policy-Aes128Cbc-Hmac512Sha-Udir-Mrr.64B-{core}-ethip4ipsec1tnlsw-ip4base-policy-aes128cbc-hmac512sha-udir-mrr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec40Tnlsw-Ip4Base-Policy-Aes256Gcm-Udir-Mrr.64B-{core}-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-udir-mrr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec40Tnlsw-Ip4Base-Policy-Aes128Cbc-Hmac512Sha-Udir-Mrr.64B-{core}-ethip4ipsec40tnlsw-ip4base-policy-aes128cbc-hmac512sha-udir-mrr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Policy-Aes256Gcm-Udir-Mrr.64B-{core}-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-udir-mrr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Policy-Aes128Cbc-Hmac512Sha-Udir-Mrr.64B-{core}-ethip4ipsec1000tnlsw-ip4base-policy-aes128cbc-hmac512sha-udir-mrr"
- layout: "plot-cpta"
-
- - title: "2n-tx2-xl710-64b-{core}-ipsec-spe-base-scale-dpdk"
- output-file-name: "2n-tx2-xl710-64b-{core}-ipsec-spe-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-tx2"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1Spe-Ip4Base-Policy-Outbound-Nocrypto-Mrr.64B-{core}-ethip4ipsec1spe-ip4base-policy-outbound-nocrypto-mrr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1Spe-Cache-Ip4Base-Policy-Outbound-Nocrypto-Mrr.64B-{core}-ethip4ipsec1spe-cache-ip4base-policy-outbound-nocrypto-mrr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec100Spe-Ip4Base-Policy-Outbound-Nocrypto-Mrr.64B-{core}-ethip4ipsec100spe-ip4base-policy-outbound-nocrypto-mrr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec100Spe-Cache-Ip4Base-Policy-Outbound-Nocrypto-Mrr.64B-{core}-ethip4ipsec100spe-cache-ip4base-policy-outbound-nocrypto-mrr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1000Spe-Ip4Base-Policy-Outbound-Nocrypto-Mrr.64B-{core}-ethip4ipsec1000spe-ip4base-policy-outbound-nocrypto-mrr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1000Spe-Cache-Ip4Base-Policy-Outbound-Nocrypto-Mrr.64B-{core}-ethip4ipsec1000spe-cache-ip4base-policy-outbound-nocrypto-mrr"
- layout: "plot-cpta"
-
- - title: "2n-tx2-xl710-1518b-{core}-ipsec-base-scale-sw-cbc-dpdk"
- output-file-name: "2n-tx2-xl710-1518b-{core}-ipsec-base-scale-sw-cbc-dpdk"
- data: "plot-performance-trending-vpp-2n-tx2"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Udir-Mrr.1518B-{core}-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-mrr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Udir-Mrr.1518B-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-mrr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Udir-Mrr.1518B-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-mrr"
- layout: "plot-cpta"
-
- - title: "2n-tx2-xl710-imix-{core}-ipsec-base-scale-sw-cbc-dpdk"
- output-file-name: "2n-tx2-xl710-imix-{core}-ipsec-base-scale-sw-cbc-dpdk"
- data: "plot-performance-trending-vpp-2n-tx2"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Udir-Mrr.imix-{core}-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-mrr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Udir-Mrr.imix-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-mrr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Udir-Mrr.imix-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-udir-mrr"
- layout: "plot-cpta"
-
- - title: "2n-tx2-xl710-1518b-{core}-ipsec-base-scale-sw-gcm-dpdk"
- output-file-name: "2n-tx2-xl710-1518b-{core}-ipsec-base-scale-sw-gcm-dpdk"
- data: "plot-performance-trending-vpp-2n-tx2"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Gcm-Udir-Mrr.1518B-{core}-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir-mrr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Udir-Mrr.1518B-{core}-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir-mrr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Gcm-Udir-Mrr.1518B-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir-mrr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Udir-Mrr.1518B-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir-mrr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Gcm-Udir-Mrr.1518B-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir-mrr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Udir-Mrr.1518B-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir-mrr"
- layout: "plot-cpta"
-
- - title: "2n-tx2-xl710-imix-{core}-ipsec-base-scale-sw-gcm-dpdk"
- output-file-name: "2n-tx2-xl710-imix-{core}-ipsec-base-scale-sw-gcm-dpdk"
- data: "plot-performance-trending-vpp-2n-tx2"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Gcm-Udir-Mrr.imix-{core}-ethip4ipsec4tnlsw-ip4base-int-aes128gcm-udir-mrr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Udir-Mrr.imix-{core}-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-udir-mrr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Gcm-Udir-Mrr.imix-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes128gcm-udir-mrr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Udir-Mrr.imix-{core}-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-udir-mrr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Gcm-Udir-Mrr.imix-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes128gcm-udir-mrr"
- - "Tests.Vpp.Perf.Crypto.2N1L-40Ge2P1Xl710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Udir-Mrr.imix-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-udir-mrr"
- layout: "plot-cpta"
-
- - title: "2n-tx2-xl710-64b-{core}-ip4routing-base-scale-dpdk"
- output-file-name: "2n-tx2-xl710-64b-{core}-ip4routing-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-tx2"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4-Ip4Base-Mrr.64B-{core}-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4-Ip4Scale20K-Mrr.64B-{core}-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4-Ip4Scale200K-Mrr.64B-{core}-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4-Ip4Scale2M-Mrr.64B-{core}-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-tx2-xl710-64b-{core}-ip4routing-base-scale-af_xdp"
- output-file-name: "2n-tx2-xl710-64b-{core}-ip4routing-base-scale-af_xdp"
- data: "plot-performance-trending-vpp-2n-tx2"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-af-xdp-Ethip4-Ip4Base-mrr.64B-{core}-af-xdp-ethip4-ip4base-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-af-xdp-Ethip4-Ip4Scale20K-mrr.64B-{core}-af-xdp-ethip4-ip4scale20k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-af-xdp-Ethip4-Ip4Scale200K-mrr.64B-{core}-af-xdp-ethip4-ip4scale200k-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-af-xdp-Ethip4-Ip4Scale2M-mrr.64B-{core}-af-xdp-ethip4-ip4scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-tx2-xl710-64b-{core}-features-ip4routing-base-scale-dpdk"
- output-file-name: "2n-tx2-xl710-64b-{core}-features-ip4routing-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-tx2"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4-Ip4Base-Iacldstbase-Mrr.64B-{core}-ethip4-ip4base-iacldstbase-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Mrr.64B-{core}-ethip4udp-ip4base-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Mrr.64B-{core}-ethip4udp-ip4base-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Mrr.64B-{core}-ethip4udp-ip4base-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.Ip4.2N1L-40Ge2P1Xl710-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Mrr.64B-{core}-ethip4udp-ip4base-oacl50sl-10kflows-mrr"
- layout: "plot-cpta"
-
- - title: "2n-tx2-xl710-78b-{core}-ip6routing-base-scale-dpdk"
- output-file-name: "2n-tx2-xl710-78b-{core}-ip6routing-base-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-tx2"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Ethip6-Ip6Base-Mrr.78B-{core}-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Ethip6-Ip6Scale20K-Mrr.78B-{core}-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Ethip6-Ip6Scale200K-Mrr.78B-{core}-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Ethip6-Ip6Scale2M-Mrr.78B-{core}-ethip6-ip6scale2m-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-Ethip6-Ip6Base-Iacldstbase-Mrr.78B-{core}-ethip6-ip6base-iacldstbase-mrr"
- layout: "plot-cpta"
-
- - title: "2n-tx2-xl710-78b-{core}-ip6routing-base-scale-af_xdp"
- output-file-name: "2n-tx2-xl710-78b-{core}-ip6routing-base-scale-af_xdp"
- data: "plot-performance-trending-vpp-2n-tx2"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-af-xdp-Ethip6-Ip6Base-mrr.78B-{core}-af-xdp-ethip6-ip6base-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-af-xdp-Ethip6-Ip6Scale20K-mrr.78B-{core}-af-xdp-ethip6-ip6scale20k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-af-xdp-Ethip6-Ip6Scale200K-mrr.78B-{core}-af-xdp-ethip6-ip6scale200k-mrr"
- - "Tests.Vpp.Perf.Ip6.2N1L-40Ge2P1Xl710-af-xdp-Ethip6-Ip6Scale2M-mrr.78B-{core}-af-xdp-ethip6-ip6scale2m-mrr"
- layout: "plot-cpta"
-
- - title: "2n-tx2-xl710-64b-{core}-l2switching-base-dpdk"
- output-file-name: "2n-tx2-xl710-64b-{core}-l2switching-base-dpdk"
- data: "plot-performance-trending-vpp-2n-tx2"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Dot1Q-L2Bdbasemaclrn-Mrr.64B-{core}-dot1q-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Patch-Mrr.64B-{core}-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Xcbase-Mrr.64B-{core}-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Mrr.64B-{core}-eth-l2bdbasemaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-tx2-xl710-64b-{core}-l2switching-scale-dpdk"
- output-file-name: "2n-tx2-xl710-64b-{core}-l2switching-scale-dpdk"
- data: "plot-performance-trending-vpp-2n-tx2"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Mrr.64B-{core}-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdscale10Kmaclrn-Mrr.64B-{core}-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdscale100Kmaclrn-Mrr.64B-{core}-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdscale1Mmaclrn-Mrr.64B-{core}-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-tx2-xl710-64b-{core}-l2switching-scale-af_xdp"
- output-file-name: "2n-tx2-xl710-64b-{core}-l2switching-scale-af_xdp"
- data: "plot-performance-trending-vpp-2n-tx2"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-af-xdp-Eth-L2Patch-mrr.64B-{core}-af-xdp-eth-l2patch-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-af-xdp-Eth-L2Xcbase-mrr.64B-{core}-af-xdp-eth-l2xcbase-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-af-xdp-Eth-L2Bdbasemaclrn-mrr.64B-{core}-af-xdp-eth-l2bdbasemaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-af-xdp-Eth-L2Bdscale10Kmaclrn-mrr.64B-{core}-af-xdp-eth-l2bdscale10kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-af-xdp-Eth-L2Bdscale100Kmaclrn-mrr.64B-{core}-eth-l2bdscale100kmaclrn-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-af-xdp-Eth-L2Bdscale1Mmaclrn-mrr.64B-{core}-af-xdp-eth-l2bdscale1mmaclrn-mrr"
- layout: "plot-cpta"
-
- - title: "2n-tx2-xl710-64b-{core}-features-l2switching-base-dpdk"
- output-file-name: "2n-tx2-xl710-64b-{core}-features-l2switching-base-dpdk"
- data: "plot-performance-trending-vpp-2n-tx2"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Iacl50Sf-10Kflows-Mrr.64B-{core}-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Iacl50Sl-10Kflows-Mrr.64B-{core}-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Oacl50Sf-10Kflows-Mrr.64B-{core}-eth-l2bdbasemaclrn-oacl50sf-10kflows-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Oacl50Sl-10Kflows-Mrr.64B-{core}-eth-l2bdbasemaclrn-oacl50sl-10kflows-mrr"
- - "Tests.Vpp.Perf.L2.2N1L-40Ge2P1Xl710-Eth-L2Bdbasemaclrn-Macip-Iacl50Sl-10Kflows-Mrr.64B-{core}-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-mrr"
- layout: "plot-cpta"
-
- - title: "2n-tx2-xl710-64b-{core}-dpdk"
- output-file-name: "2n-tx2-xl710-64b-{core}-dpdk"
- data: "plot-performance-trending-dpdk-2n-tx2"
- core: ["1t1c", "2t2c", "4t4c"]
- include:
- - "tests.dpdk.perf.2N1L-40ge2p1xl710-eth-l2xcbase-testpmd-mrr.64b-{core}-eth-l2xcbase-testpmd-mrr"
- - "tests.dpdk.perf.2N1L-40ge2p1xl710-ethip4-ip4base-l3fwd-mrr.64b-{core}-ethip4-ip4base-l3fwd-mrr"
- layout: "plot-cpta"
-
-################################################################################
-
-# NDRPDR Trending
-
-# 2n-clx memif
-
- - title: "2n-clx-xxv710-64b-{core}-memif-base-dpdk-{test_type}"
- output-file-name: "2n-clx-xxv710-64b-{core}-memif-base-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-memif-base-avf-{test_type}"
- output-file-name: "2n-clx-xxv710-64b-{core}-memif-base-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-{core}-rdma-l2-eth-2memif-1dcr-{test_type}"
- output-file-name: "2n-clx-cx556a-64b-{core}-rdma-l2-eth-2memif-1dcr-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-rdma-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-rdma-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-rdma-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout: "plot-cpta"
-
-# 2n-clx ip4
-
- - title: "2n-clx-x710-64b-{core}-ip4-base-avf-dpdk-{test_type}"
- output-file-name: "2n-clx-x710-64b-{core}-ip4-base-avf-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-{core}-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-{core}-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-{core}-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-{core}-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-af-xdp-Ethip4-Ip4Base-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4base-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-{core}-ip4-base-rdma-{test_type}"
- output-file-name: "2n-clx-cx556a-64b-{core}-ip4-base-rdma-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Base-Ndrpdr.64B-{core}-rdma-ethip4-ip4base-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-{core}-ip4-scale-rdma-{test_type}"
- output-file-name: "2n-clx-cx556a-64b-{core}-ip4-scale-rdma-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Ndrpdr.64B-{core}-rdma-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-{core}-rdma-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Ndrpdr.64B-{core}-rdma-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-{core}-rdma-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Ndrpdr.64B-{core}-rdma-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-{core}-rdma-ethip4-ip4scale2m-rnd-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-{core}-ip4-features-rdma-{test_type}"
- output-file-name: "2n-clx-cx556a-64b-{core}-ip4-features-rdma-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-{core}-rdma-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-{core}-rdma-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-{core}-rdma-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-{core}-rdma-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-{core}-rdma-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1Cx556A-Rdma-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-{core}-rdma-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-ip4-base-scale-avf-{test_type}"
- output-file-name: "2n-clx-xxv710-64b-{core}-ip4-base-scale-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-{core}-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-{core}-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-{core}-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-{core}-avf-ethip4-ip4scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-ip4-scale-avf-rnd-{test_type}"
- output-file-name: "2n-clx-xxv710-64b-{core}-ip4-scale-avf-rnd-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-{core}-avf-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-{core}-avf-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-{core}-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-ip4-features-avf-{test_type}"
- output-file-name: "2n-clx-xxv710-64b-{core}-ip4-features-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-{core}-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-{core}-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-{core}-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-{core}-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-{core}-avf-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-{core}-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-ip4-base-scale-af_xdp-{test_type}"
- output-file-name: "2n-clx-xxv710-64b-{core}-ip4-base-scale-af_xdp-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Base-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale20K-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale200K-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale2M-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4scale2m-rnd-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-nat44det-ip4routing-stl-bidir-avf-{test_type}"
- output-file-name: "2n-clx-xxv710-64b-{core}-nat44det-ip4routing-stl-bidir-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.64b-{core}-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.64b-{core}-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.64b-{core}-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.64b-{core}-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.64b-{core}-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-stl-unidir-avf-{test_type}"
- output-file-name: "2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-stl-unidir-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-cps-avf-{test_type}"
- output-file-name: "2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-cps-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout: "plot-cpta-cps"
-
- - title: "2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-pps-avf-{test_type}"
- output-file-name: "2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-pps-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-cps-avf-{test_type}"
- output-file-name: "2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-cps-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout: "plot-cpta-cps"
-
- - title: "2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-pps-avf-{test_type}"
- output-file-name: "2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-pps-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-tput-avf-{test_type}"
- output-file-name: "2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-tput-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-udp-tput-avf-{test_type}"
- output-file-name: "2n-clx-xxv710-64b-{core}-nat44ed-ip4routing-udp-tput-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-100b-{core}-nat44ed-ip4routing-tcp-tput-avf-{test_type}"
- output-file-name: "2n-clx-xxv710-100b-{core}-nat44ed-ip4routing-tcp-tput-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H1024-P63-S64512-Tput-ndrpdr.100B-{core}-avf-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H16384-P63-S1032192-Tput-ndrpdr.100B-{core}-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H65536-P63-S4128768-Tput-ndrpdr.100B-{core}-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-100b-{core}-nat44ed-ip4routing-udp-tput-avf-{test_type}"
- output-file-name: "2n-clx-xxv710-100b-{core}-nat44ed-ip4routing-udp-tput-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H1024-P63-S64512-Tput-ndrpdr.100B-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H16384-P63-S1032192-Tput-ndrpdr.100B-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H65536-P63-S4128768-Tput-ndrpdr.100B-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-ip4-base-scale-dpdk-{test_type}"
- output-file-name: "2n-clx-xxv710-64b-{core}-ip4-base-scale-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-{core}-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-{core}-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-{core}-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-{core}-ethip4-ip4scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-ip4-scale-dpdk-rnd-{test_type}"
- output-file-name: "2n-clx-xxv710-64b-{core}-ip4-scale-dpdk-rnd-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-{core}-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-{core}-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-{core}-ethip4-ip4scale2m-rnd-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-ip4-base-features-dpdk-{test_type}"
- output-file-name: "2n-clx-xxv710-64b-{core}-ip4-base-features-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-{core}-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-{core}-ip4base-nat44-ndrpdr"
- layout: "plot-cpta"
-
-# 2n-clx ip6
-
- - title: "2n-clx-cx556a-78b-{core}-ip6-base-scale-rdma-{test_type}"
- output-file-name: "2n-clx-cx556a-78b-{core}-ip6-base-scale-rdma-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Base-Ndrpdr.78B-{core}-rdma-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale20K-Ndrpdr.78B-{core}-rdma-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale200K-Ndrpdr.78B-{core}-rdma-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1Cx556A-Rdma-Ethip6-Ip6Scale2M-Ndrpdr.78B-{core}-rdma-ethip6-ip6scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-x710-78b-{core}-ip6-base-scale-avf-dpdk-{test_type}"
- output-file-name: "2n-clx-x710-78b-{core}-ip6-base-scale-avf-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-{core}-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-{core}-avf-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-{core}-avf-ethip6-ip6scale2m-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-{core}-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-af-xdp-Ethip6-Ip6Base-Ndrpdr.78B-{core}-af-xdp-ethip6-ip6base-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-78b-{core}-ip6-base-scale-avf-{test_type}"
- output-file-name: "2n-clx-xxv710-78b-{core}-ip6-base-scale-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-{core}-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-{core}-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-{core}-avf-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-{core}-avf-ethip6-ip6scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-78b-{core}-ip6-rnd-base-scale-avf-{test_type}"
- output-file-name: "2n-clx-xxv710-78b-{core}-ip6-rnd-base-scale-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-{core}-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-rnd-Ndrpdr.78B-{core}-avf-ethip6-ip6scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-rnd-Ndrpdr.78B-{core}-avf-ethip6-ip6scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-{core}-avf-ethip6-ip6scale2m-rnd-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-78b-{core}-ip6-base-scale-dpdk-{test_type}"
- output-file-name: "2n-clx-xxv710-78b-{core}-ip6-base-scale-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-{core}-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-{core}-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-{core}-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-{core}-ethip6-ip6scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-78b-{core}-ip6-rnd-base-scale-dpdk-{test_type}"
- output-file-name: "2n-clx-xxv710-78b-{core}-ip6-rnd-base-scale-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-{core}-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-rnd-Ndrpdr.78B-{core}-ethip6-ip6scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-rnd-Ndrpdr.78B-{core}-ethip6-ip6scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-{core}-ethip6-ip6scale2m-rnd-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-78b-{core}-ip6-base-scale-af_xdp-{test_type}"
- output-file-name: "2n-clx-xxv710-78b-{core}-ip6-base-scale-af_xdp-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Base-Ndrpdr.78B-{core}-af-xdp-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale20K-Ndrpdr.78B-{core}-af-xdp-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale20K-rnd-Ndrpdr.78B-{core}-af-xdp-ethip6-ip6scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale200K-Ndrpdr.78B-{core}-af-xdp-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale200K-rnd-Ndrpdr.78B-{core}-af-xdp-ethip6-ip6scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale2M-Ndrpdr.78B-{core}-af-xdp-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-af-xdp-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-{core}-af-xdp-ethip6-ip6scale2m-rnd-ndrpdr"
- layout: "plot-cpta"
-
-# 2n-clx L2
-
- - title: "2n-clx-cx556a-64b-{core}-l2-base-rdma-{test_type}"
- output-file-name: "2n-clx-cx556a-64b-{core}-l2-base-rdma-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-{core}-rdma-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Patch-Ndrpdr.64B-{core}-rdma-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Ndrpdr.64B-{core}-rdma-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-rdma-eth-l2bdbasemaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-{core}-l2-base-scale-rdma-{test_type}"
- output-file-name: "2n-clx-cx556a-64b-{core}-l2-base-scale-rdma-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-rdma-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-{core}-rdma-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-{core}-rdma-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-{core}-rdma-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-x710-64b-{core}-l2-base-scale-avf-dpdk-{test_type}"
- output-file-name: "2n-clx-x710-64b-{core}-l2-base-scale-avf-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-af-xdp-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-af-xdp-eth-l2bdbasemaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-l2-base-avf-{test_type}"
- output-file-name: "2n-clx-xxv710-64b-{core}-l2-base-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-{core}-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-{core}-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-{core}-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-l2-base-scale-avf-{test_type}"
- output-file-name: "2n-clx-xxv710-64b-{core}-l2-base-scale-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-l2-base-scale-dpdk-{test_type}"
- output-file-name: "2n-clx-xxv710-64b-{core}-l2-base-scale-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-{core}-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-{core}-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-{core}-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-{core}-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-{core}-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-l2-base-scale-af_xdp-{test_type}"
- output-file-name: "2n-clx-xxv710-64b-{core}-l2-base-scale-af_xdp-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-af-xdp-Eth-L2Patch-Ndrpdr.64B-{core}-af-xdp-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-af-xdp-Eth-L2Xcbase-Ndrpdr.64B-{core}-af-xdp-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-af-xdp-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-af-xdp-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-af-xdp-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-{core}-af-xdp-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-af-xdp-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-{core}-af-xdp-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-af-xdp-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-{core}-af-xdp-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
-# 2n-clx VHost
-
- - title: "2n-clx-cx556a-64b-{core}-vhost-base-rdma-testpmd-{test_type}"
- output-file-name: "2n-clx-cx556a-64b-{core}-vhost-base-rdma-testpmd-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-cx556a-64b-{core}-vhost-base-rdma-vpp-{test_type}"
- output-file-name: "2n-clx-cx556a-64b-{core}-vhost-base-rdma-vpp-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-{core}-rdma-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1Cx556A-Rdma-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-{core}-rdma-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-vhost-base-avf-dpdk-testpmd-{test_type}"
- output-file-name: "2n-clx-xxv710-64b-{core}-vhost-base-avf-dpdk-testpmd-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-64b-{core}-vhost-base-avf-dpdk-vpp-{test_type}"
- output-file-name: "2n-clx-xxv710-64b-{core}-vhost-base-avf-dpdk-vpp-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-{core}-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-xxv710-114b-{core}-vts-l2switching-base-avf-{test_type}"
- output-file-name: "2n-clx-xxv710-114b-{core}-vts-l2switching-base-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Vts.2N1L-25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-Iacldstbase-Aclpermit-2Vhostvr1024-1Vm-Ndrpdr.114B-{core}-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-{core}-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-{core}-avf-ethip4vxlan-l2bdbasemaclrn-eth-iacldstbase-noacl-2vhostvr1024-1vm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-e810cq-64b-{core}-memif-{test_type}"
- output-file-name: "2n-clx-e810cq-64b-{core}-memif-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-ndrpdr.64B-{core}-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1E810Cq-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-ndrpdr.64B-{core}-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1E810Cq-Eth-L2Xcbase-Eth-2Memif-1Dcr-ndrpdr.64B-{core}-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1E810Cq-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-100Ge2P1E810Cq-Ethip4-Ip4Base-Eth-2Memif-1Dcr-ndrpdr.64B-{core}-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-e810cq-64b-{core}-ip4-base-scale-avf-{test_type}"
- output-file-name: "2n-clx-e810cq-64b-{core}-ip4-base-scale-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Avf-Ethip4-Ip4Base-ndrpdr.64B-{core}-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Avf-Ethip4-Ip4Scale20K-ndrpdr.64B-{core}-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Avf-Ethip4-Ip4Scale20K-Rnd-ndrpdr.64B-{core}-avf-ethip4-ip4scale20k-rnd-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-e810cq-64b-{core}-ip4-features-avf-{test_type}"
- output-file-name: "2n-clx-e810cq-64b-{core}-ip4-features-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-ndrpdr.64B-{core}-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-ndrpdr.64B-{core}-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-ndrpdr.64B-{core}-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-ndrpdr.64B-{core}-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-e810cq-64b-{core}-ip4-base-scale-dpdk-{test_type}"
- output-file-name: "2n-clx-e810cq-64b-{core}-ip4-base-scale-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Ethip4-Ip4Base-ndrpdr.64B-{core}-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Ethip4-Ip4Scale20K-ndrpdr.64B-{core}-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Ethip4-Ip4Scale20K-Rnd-ndrpdr.64B-{core}-ethip4-ip4scale20k-rnd-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-e810cq-64b-{core}-ip4-features-dpdk-{test_type}"
- output-file-name: "2n-clx-e810cq-64b-{core}-ip4-features-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-ndrpdr.64B-{core}-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-ndrpdr.64B-{core}-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-ndrpdr.64B-{core}-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-100Ge2P1E810Cq-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-ndrpdr.64B-{core}-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-e810cq-78b-{core}-ip6-base-scale-{test_type}"
- output-file-name: "2n-clx-e810cq-78b-{core}-ip6-base-scale-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1E810Cq-Avf-Ethip6-Ip6Base-ndrpdr.78B-{core}-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1E810Cq-Avf-Ethip6-Ip6Scale20K-ndrpdr.78B-{core}-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1E810Cq-Avf-Ethip6-Ip6Scale20K-Rnd-ndrpdr.78B-{core}-avf-ethip6-ip6scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1E810Cq-Ethip6-Ip6Base-ndrpdr.78B-{core}-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1E810Cq-Ethip6-Ip6Scale20K-ndrpdr.78B-{core}-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-100Ge2P1E810Cq-Ethip6-Ip6Scale20K-Rnd-ndrpdr.78B-{core}-ethip6-ip6scale20k-rnd-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-e810cq-64b-{core}-l2-base-scale-avf-{test_type}"
- output-file-name: "2n-clx-e810cq-64b-{core}-l2-base-scale-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Avf-Dot1Q-L2Bdbasemaclrn-ndrpdr.64B-{core}-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Patch-ndrpdr.64B-{core}-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Xcbase-ndrpdr.64B-{core}-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Bdbasemaclrn-ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Bdscale10Kmaclrn-ndrpdr.64B-{core}-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Bdscale100Kmaclrn-ndrpdr.64B-{core}-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Bdscale1Mmaclrn-ndrpdr.64B-{core}-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-e810cq-64b-{core}-l2-base-scale-dpdk-{test_type}"
- output-file-name: "2n-clx-e810cq-64b-{core}-l2-base-scale-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Dot1Q-L2Bdbasemaclrn-ndrpdr.64B-{core}-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Eth-L2Patch-ndrpdr.64B-{core}-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Eth-L2Xcbase-ndrpdr.64B-{core}-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Eth-L2Bdbasemaclrn-ndrpdr.64B-{core}-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Eth-L2Bdscale10Kmaclrn-ndrpdr.64B-{core}-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Eth-L2Bdscale100Kmaclrn-ndrpdr.64B-{core}-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-100Ge2P1E810Cq-Eth-L2Bdscale1Mmaclrn-ndrpdr.64B-{core}-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-clx-e810cq-64b-{core}-vhost-{test_type}"
- output-file-name: "2n-clx-e810cq-64b-{core}-vhost-{test_type}"
- data: "plot-ndrpdr-comparison-2n-clx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1E810Cq-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1E810Cq-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-100Ge2P1E810Cq-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout: "plot-cpta"
-
-# 2n-icx NDRPDR
-
- - title: "2n-icx-xxv710-64b-{core}-memif-base-{test_type}"
- output-file-name: "2n-icx-xxv710-64b-{core}-memif-base-{test_type}"
- data: "plot-ndrpdr-comparison-2n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-ndrpdr.64B-{core}-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-ndrpdr.64B-{core}-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-ndrpdr.64B-{core}-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-ndrpdr.64B-{core}-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-icx-xxv710-64b-{core}-ip4-base-scale-avf-{test_type}"
- output-file-name: "2n-icx-xxv710-64b-{core}-ip4-base-scale-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-ndrpdr.64B-{core}-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-ndrpdr.64B-{core}-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Rnd-ndrpdr.64B-{core}-avf-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-ndrpdr.64B-{core}-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Rnd-ndrpdr.64B-{core}-avf-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-ndrpdr.64B-{core}-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Rnd-ndrpdr.64B-{core}-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-icx-xxv710-64b-{core}-ip4-base-scale-dpdk-{test_type}"
- output-file-name: "2n-icx-xxv710-64b-{core}-ip4-base-scale-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-2n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-ndrpdr.64B-{core}-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-ndrpdr.64B-{core}-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-ndrpdr.64B-{core}-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-ndrpdr.64B-{core}-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-ndrpdr.64B-{core}-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-ndrpdr.64B-{core}-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-ndrpdr.64B-{core}-ethip4-ip4scale2m-rnd-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-icx-xxv710-64b-{core}-ip4-base-scale-af_xdp-{test_type}"
- output-file-name: "2n-icx-xxv710-64b-{core}-ip4-base-scale-af_xdp-{test_type}"
- data: "plot-ndrpdr-comparison-2n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Af-Xdp-Ethip4-Ip4Base-ndrpdr.64B-{core}-af-xdp-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Af-Xdp-Ethip4-Ip4Scale20K-ndrpdr.64B-{core}-af-xdp-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Af-Xdp-Ethip4-Ip4Scale20K-Rnd-ndrpdr.64B-{core}-af-xdp-ethip4-ip4scale20k-rnd-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-icx-xxv710-64b-{core}-ip4-features-avf-{test_type}"
- output-file-name: "2n-icx-xxv710-64b-{core}-ip4-features-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-ndrpdr.64B-{core}-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-ndrpdr.64B-{core}-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-ndrpdr.64B-{core}-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-ndrpdr.64B-{core}-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-icx-xxv710-64b-{core}-nat44det-ip4routing-stl-bidir-avf-{test_type}"
- output-file-name: "2n-icx-xxv710-64b-{core}-nat44det-ip4routing-stl-bidir-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Det-H1024-P63-S64512-ndrpdr.64B-{core}-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Det-H16384-P63-S1032192-ndrpdr.64B-{core}-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Det-H65536-P63-S4128758-ndrpdr.64B-{core}-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-icx-xxv710-64b-{core}-nat44ed-ip4routing-stl-unidir-avf-{test_type}"
- output-file-name: "2n-icx-xxv710-64b-{core}-nat44ed-ip4routing-stl-unidir-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H1024-P63-S64512-Udir-ndrpdr.64B-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-icx-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-cps-avf-{test_type}"
- output-file-name: "2n-icx-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-cps-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-H1024-P63-S64512-Cps-ndrpdr.64B-{core}-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-H16384-P63-S1032192-Cps-ndrpdr.64B-{core}-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-H65536-P63-S4128768-Cps-ndrpdr.64B-{core}-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H1024-P63-S64512-Cps-ndrpdr.64B-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H16384-P63-S1032192-Cps-ndrpdr.64B-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H65536-P63-S4128768-Cps-ndrpdr.64B-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- layout: "plot-cpta-cps"
-
- - title: "2n-icx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-cps-avf-{test_type}"
- output-file-name: "2n-icx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-cps-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Ip4Base-H1024-P63-S64512-Cps-ndrpdr.64B-{core}-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Ip4Base-H16384-P63-S1032192-Cps-ndrpdr.64B-{core}-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Ip4Base-H65536-P63-S4128768-Cps-ndrpdr.64B-{core}-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H1024-P63-S64512-Cps-ndrpdr.64B-{core}-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H16384-P63-S1032192-Cps-ndrpdr.64B-{core}-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H65536-P63-S4128768-Cps-ndrpdr.64B-{core}-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- layout: "plot-cpta-cps"
-
- - title: "2n-icx-xxv710-100b-{core}-nat44ed-ip4routing-tcp-tput-avf-{test_type}"
- output-file-name: "2n-icx-xxv710-100b-{core}-nat44ed-ip4routing-tcp-tput-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H1024-P63-S64512-Tput-ndrpdr.100B-{core}-avf-ethip4tcp-nat44ed-h1024-p63-s64512-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H16384-P63-S1032192-Tput-ndrpdr.100B-{core}-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Tcp-Nat44Ed-H65536-P63-S4128768-Tput-ndrpdr.100B-{core}-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-tput-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-icx-xxv710-100b-{core}-nat44ed-ip4routing-udp-tput-avf-{test_type}"
- output-file-name: "2n-icx-xxv710-100b-{core}-nat44ed-ip4routing-udp-tput-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H1024-P63-S64512-Tput-ndrpdr.100B-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H16384-P63-S1032192-Tput-ndrpdr.100B-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-tput-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Nat44Ed-H65536-P63-S4128768-Tput-ndrpdr.100B-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-tput-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-icx-xxv710-64b-{core}-ethip4--ethip4udpgeneve-avf-{test_type}"
- output-file-name: "2n-icx-xxv710-64b-{core}-ethip4--ethip4udpgeneve-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-1Tun-Ip4Base-ndrpdr.64B-{core}-avf-ethip4--ethip4udpgeneve-1tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-4Tun-Ip4Base-ndrpdr.64B-{core}-avf-ethip4--ethip4udpgeneve-4tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-16Tun-Ip4Base-ndrpdr.64B-{core}-avf-ethip4--ethip4udpgeneve-16tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-64Tun-Ip4Base-ndrpdr.64B-{core}-avf-ethip4--ethip4udpgeneve-64tun-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.2N1L-25Ge2P1Xxv710-Avf-Ethip4--Ethip4Udpgeneve-256Tun-Ip4Base-ndrpdr.64B-{core}-avf-ethip4--ethip4udpgeneve-256tun-ip4base-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-icx-xxv710-78b-{core}-ip6-base-scale-avf-{test_type}"
- output-file-name: "2n-icx-xxv710-78b-{core}-ip6-base-scale-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-ndrpdr.78B-{core}-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-ndrpdr.78B-{core}-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Rnd-ndrpdr.78B-{core}-avf-ethip6-ip6scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-ndrpdr.78B-{core}-avf-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Rnd-ndrpdr.78B-{core}-avf-ethip6-ip6scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-ndrpdr.78B-{core}-avf-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Rnd-ndrpdr.78B-{core}-avf-ethip6-ip6scale2m-rnd-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-icx-xxv710-78b-{core}-ip6-base-scale-dpdk-{test_type}"
- output-file-name: "2n-icx-xxv710-78b-{core}-ip6-base-scale-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-2n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-ndrpdr.78B-{core}-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-ndrpdr.78B-{core}-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Rnd-ndrpdr.78B-{core}-ethip6-ip6scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-ndrpdr.78B-{core}-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Rnd-ndrpdr.78B-{core}-ethip6-ip6scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-ndrpdr.78B-{core}-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Rnd-ndrpdr.78B-{core}-ethip6-ip6scale2m-rnd-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-icx-xxv710-78b-{core}-ip6-base-scale-af_xdp-{test_type}"
- output-file-name: "2n-icx-xxv710-78b-{core}-ip6-base-scale-af_xdp-{test_type}"
- data: "plot-ndrpdr-comparison-2n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Af-Xdp-Ethip6-Ip6Base-ndrpdr.78B-{core}-af-xdp-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Af-Xdp-Ethip6-Ip6Scale20K-ndrpdr.78B-{core}-af-xdp-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Af-Xdp-Ethip6-Ip6Scale20K-Rnd-ndrpdr.78B-{core}-af-xdp-ethip6-ip6scale20k-rnd-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-icx-xxv710-64b-{core}-l2-base-scale-avf-{test_type}"
- output-file-name: "2n-icx-xxv710-64b-{core}-l2-base-scale-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-ndrpdr.64B-{core}-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-ndrpdr.64B-{core}-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-ndrpdr.64B-{core}-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-ndrpdr.64B-{core}-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-ndrpdr.64B-{core}-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-ndrpdr.64B-{core}-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-icx-xxv710-64b-{core}-l2-base-scale-dpdk-{test_type}"
- output-file-name: "2n-icx-xxv710-64b-{core}-l2-base-scale-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-2n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-ndrpdr.64B-{core}-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-ndrpdr.64B-{core}-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-ndrpdr.64B-{core}-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-ndrpdr.64B-{core}-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-ndrpdr.64B-{core}-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-ndrpdr.64B-{core}-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-icx-xxv710-64b-{core}-vhost-base-{test_type}"
- output-file-name: "2n-icx-xxv710-64b-{core}-vhost-base-{test_type}"
- data: "plot-ndrpdr-comparison-2n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-ndrpdr.64B-{core}-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-ndrpdr.64B-{core}-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout: "plot-cpta"
-
-# 3n-icx NDRPDR
-
- - title: "3n-icx-xxv710-1518b-{core}-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-{test_type}"
- output-file-name: "3n-icx-xxv710-1518b-{core}-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-{test_type}"
- data: "plot-ndrpdr-comparison-3n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.1518B-{core}-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.1518B-{core}-avf-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.1518B-{core}-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.1518B-{core}-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-icx-xxv710-1518b-{core}-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-{test_type}"
- output-file-name: "3n-icx-xxv710-1518b-{core}-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-{test_type}"
- data: "plot-ndrpdr-comparison-3n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-{core}-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-{core}-avf-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-{core}-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-{core}-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-icx-xxv710-1518b-{core}-ipsec-ip4routing-base-scale-sw-dpdk-{test_type}"
- output-file-name: "3n-icx-xxv710-1518b-{core}-ipsec-ip4routing-base-scale-sw-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-3n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-{core}-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-{core}-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-icx-xxv710-1518b-{core}-ipsec-scheduler-ip4routing-base-scale-sw-avf-{test_type}"
- output-file-name: "3n-icx-xxv710-1518b-{core}-ipsec-scheduler-ip4routing-base-scale-sw-avf-{test_type}"
- data: "plot-ndrpdr-comparison-3n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1Tnlswasync-Scheduler-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.1518B-{core}-avf-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec8Tnlswasync-Scheduler-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.1518B-{core}-avf-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-{core}-avf-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec8Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-{core}-avf-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-icx-xxv710-1518b-{core}-ipsec-scheduler-ip4routing-base-scale-sw-dpdk-{test_type}"
- output-file-name: "3n-icx-xxv710-1518b-{core}-ipsec-scheduler-ip4routing-base-scale-sw-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-3n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec1Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-{core}-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec8Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-ndrpdr.1518B-{core}-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-icx-xxv710-imix-{core}-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-{test_type}"
- output-file-name: "3n-icx-xxv710-imix-{core}-ipsec-aes128cbc-ip4routing-base-scale-sw-avf-{test_type}"
- data: "plot-ndrpdr-comparison-3n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.imix-{core}-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.imix-{core}-avf-ethip4ipsec40tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.imix-{core}-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.imix-{core}-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-icx-xxv710-imix-{core}-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-{test_type}"
- output-file-name: "3n-icx-xxv710-imix-{core}-ipsec-aes256gcm-ip4routing-base-scale-sw-avf-{test_type}"
- data: "plot-ndrpdr-comparison-3n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-{core}-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-{core}-avf-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-{core}-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-{core}-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-icx-xxv710-imix-{core}-ipsec-ip4routing-base-scale-sw-dpdk-{test_type}"
- output-file-name: "3n-icx-xxv710-imix-{core}-ipsec-ip4routing-base-scale-sw-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-3n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-{core}-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec40Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-{core}-ethip4ipsec40tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-icx-xxv710-imix-{core}-ipsec-scheduler-ip4routing-base-scale-sw-avf-{test_type}"
- output-file-name: "3n-icx-xxv710-imix-{core}-ipsec-scheduler-ip4routing-base-scale-sw-avf-{test_type}"
- data: "plot-ndrpdr-comparison-3n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1Tnlswasync-Scheduler-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.imix-{core}-avf-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec8Tnlswasync-Scheduler-Ip4Base-Int-Aes128Cbc-Hmac512Sha-ndrpdr.imix-{core}-avf-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-{core}-avf-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec8Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-{core}-avf-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-icx-xxv710-imix-{core}-ipsec-scheduler-ip4routing-base-scale-sw-dpdk-{test_type}"
- output-file-name: "3n-icx-xxv710-imix-{core}-ipsec-scheduler-ip4routing-base-scale-sw-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-3n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec1Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-{core}-ethip4ipsec1tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec8Tnlswasync-Scheduler-Ip4Base-Int-Aes256Gcm-ndrpdr.imix-{core}-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes256gcm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-icx-xxv710-64b-{core}-ip4-base-{test_type}"
- output-file-name: "3n-icx-xxv710-64b-{core}-ip4-base-{test_type}"
- data: "plot-ndrpdr-comparison-3n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-ndrpdr.64B-{core}-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Base-ndrpdr.64B-{core}-ethip4-ip4base-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-icx-xxv710-64b-{core}-ip4-tunnels-base-{test_type}"
- output-file-name: "3n-icx-xxv710-64b-{core}-ip4-tunnels-base-{test_type}"
- data: "plot-ndrpdr-comparison-3n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Gtpusw-Ip4Base-ndrpdr.64B-{core}-avf-ethip4gtpusw-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-ndrpdr.64B-{core}-avf-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Xcbase-ndrpdr.64B-{core}-avf-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Gtpusw-Ip4Base-ndrpdr.64B-{core}-ethip4gtpusw-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-ndrpdr.64B-{core}-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Xcbase-ndrpdr.64B-{core}-ethip4vxlan-l2xcbase-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-icx-e810xxv-64b-{core}-ip4-tunnels-gtpu-{test_type}"
- output-file-name: "3n-icx-e810xxv-64b-{core}-ip4-tunnels-gtpu-{test_type}"
- data: "plot-ndrpdr-comparison-3n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1E810Xxv-Ethip4Gtpuhw-Ip4Base-ndrpdr.64B-{core}-ethip4gtpuhw-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1E810Xxv-Ethip4Gtpusw-Ip4Base-ndrpdr.64B-{core}-ethip4gtpusw-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1E810Xxv-Ethip4Udpwireguard1Tnlsw-Ip4Base-ndrpdr.64B-{core}-ethip4udpwireguard1tnlsw-ip4base-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-icx-xxv710-78b-{core}-ip6-base-{test_type}"
- output-file-name: "3n-icx-xxv710-78b-{core}-ip6-base-{test_type}"
- data: "plot-ndrpdr-comparison-3n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-ndrpdr.78B-{core}-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Base-ndrpdr.78B-{core}-ethip6-ip6base-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-icx-xxv710-64b-{core}-l2-base-{test_type}"
- output-file-name: "3n-icx-xxv710-64b-{core}-l2-base-{test_type}"
- data: "plot-ndrpdr-comparison-3n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-ndrpdr.64B-{core}-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Patch-ndrpdr.64B-{core}-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-ndrpdr.64B-{core}-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Patch-ndrpdr.64B-{core}-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Xcbase-ndrpdr.64B-{core}-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-ndrpdr.64B-{core}-eth-l2bdbasemaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-icx-xxv710-78b-{core}-srv6-base-avf-{test_type}"
- output-file-name: "3n-icx-xxv710-78b-{core}-srv6-base-avf-{test_type}"
- data: "plot-ndrpdr-comparison-3n-icx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-ndrpdr.78B-{core}-avf-ethip6ip6-ip6base-srv6enc1sid-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-ndrpdr.78B-{core}-avf-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-ndrpdr.78B-{core}-avf-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-ndrpdr.78B-{core}-avf-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-ndrpdr.78B-{core}-avf-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-ndrpdr.78B-{core}-avf-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr"
- layout: "plot-cpta"
-
-# 2n-skx memif
-
- - title: "2n-skx-xxv710-64b-{core}-memif-base-avf-{test_type}"
- output-file-name: "2n-skx-xxv710-64b-{core}-memif-base-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-memif-base-dpdk-{test_type}"
- output-file-name: "2n-skx-xxv710-64b-{core}-memif-base-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout: "plot-cpta"
-
-# 2n-skx ip4
-
- - title: "2n-skx-x710-64b-{core}-ip4-base-scale-avf-dpdk-{test_type}"
- output-file-name: "2n-skx-x710-64b-{core}-ip4-base-scale-avf-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-{core}-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-{core}-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-{core}-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-Ethip4-Ip4Base-Ndrpdr.64B-{core}-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-10Ge2P1X710-af-xdp-Ethip4-Ip4Base-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4base-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-ip4-base-avf-{test_type}"
- output-file-name: "2n-skx-xxv710-64b-{core}-ip4-base-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-{core}-avf-ethip4-ip4base-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-ip4-scale-avf-{test_type}"
- output-file-name: "2n-skx-xxv710-64b-{core}-ip4-scale-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-{core}-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-avf-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-{core}-avf-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-{core}-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-avf-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-{core}-avf-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-{core}-avf-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-avf-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-{core}-avf-ethip4-ip4scale2m-rnd-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-ip4-features-avf-{test_type}"
- output-file-name: "2n-skx-xxv710-64b-{core}-ip4-features-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sf-10Kflows-Ndrpdr.64B-{core}-avf-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Iacl50Sl-10Kflows-Ndrpdr.64B-{core}-avf-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sf-10Kflows-Ndrpdr.64B-{core}-avf-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-Ethip4Udp-Ip4Base-Oacl50Sl-10Kflows-Ndrpdr.64B-{core}-avf-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-{core}-avf-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Avf-ethip4udp-nat44det-h1024-p63-s64512-Ndrpdr.64B-{core}-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-ip4-base-scale-af_xdp-{test_type}"
- output-file-name: "2n-skx-xxv710-64b-{core}-ip4-base-af_xdp-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Base-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale20K-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale200K-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale2M-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-af-xdp-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-{core}-af-xdp-ethip4-ip4scale2m-rnd-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-nat44det-ip4routing-stl-bidir-avf-{test_type}"
- output-file-name: "2n-skx-xxv710-64b-{core}-nat44det-ip4routing-stl-bidir-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr.64b-{core}-avf-ethip4udp-nat44det-h1024-p63-s64512-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.64b-{core}-avf-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.64b-{core}-avf-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.64b-{core}-avf-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.64b-{core}-avf-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-stl-unidir-avf-{test_type}"
- output-file-name: "2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-stl-unidir-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h4096-p63-s258048-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-udir-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h262144-p63-s16515072-udir-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-cps-avf-{test_type}"
- output-file-name: "2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-cps-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout: "plot-cpta-cps"
-
- - title: "2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-pps-avf-{test_type}"
- output-file-name: "2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-udp-stf-pps-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-cps-avf-{test_type}"
- output-file-name: "2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-cps-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h1024-p63-s64512-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h4096-p63-s258048-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h16384-p63-s1032192-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h65536-p63-s4128768-cps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h262144-p63-s16515072-cps-ndrpdr"
- layout: "plot-cpta-cps"
-
- - title: "2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-pps-avf-{test_type}"
- output-file-name: "2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-stf-pps-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-tput-avf-{test_type}"
- output-file-name: "2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-tcp-tput-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-{core}-avf-ethip4tcp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-{core}-avf-ethip4tcp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-udp-tput-avf-{test_type}"
- output-file-name: "2n-skx-xxv710-64b-{core}-nat44ed-ip4routing-udp-tput-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr.64b-{core}-avf-ethip4udp-nat44ed-h262144-p63-s16515072-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h1024-p63-s64512-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h4096-p63-s258048-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h16384-p63-s1032192-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h65536-p63-s4128768-pps-ndrpdr"
- - "tests.vpp.perf.ip4.2n1l-25ge2p1xxv710-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr.64b-{core}-avf-ethip4udp-ip4base-h262144-p63-s16515072-pps-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-ip4-base-features-dpdk-{test_type}"
- output-file-name: "2n-skx-xxv710-64b-{core}-ip4-base-features-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-{core}-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-ethip4udp-nat44det-h1-p1-s1-Ndrpdr.64B-{core}-ethip4udp-nat44det-h1-p1-s1-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-ip4-scale-dpdk-{test_type}"
- output-file-name: "2n-skx-xxv710-64b-{core}-ip4-scale-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Ndrpdr.64B-{core}-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale20K-Rnd-Ndrpdr.64B-{core}-ethip4-ip4scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Ndrpdr.64B-{core}-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale200K-Rnd-Ndrpdr.64B-{core}-ethip4-ip4scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-{core}-ethip4-ip4scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.2N1L-25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Rnd-Ndrpdr.64B-{core}-ethip4-ip4scale2m-rnd-ndrpdr"
- layout: "plot-cpta"
-
-# 2n-skx ip6
-
- - title: "2n-skx-x710-78b-{core}-ip6-base-scale-avf-dpdk-{test_type}"
- output-file-name: "2n-skx-x710-78b-{core}-ip6-base-scale-avf-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-{core}-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-{core}-avf-ethip6-ip6scale2m-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-{core}-avf-ethip6-ip6scale2m-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-Ethip6-Ip6Base-Ndrpdr.78B-{core}-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-10Ge2P1X710-af-xdp-Ethip6-Ip6Base-Ndrpdr.78B-{core}-af-xdp-ethip6-ip6base-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-78b-{core}-ip6-base-scale-avf-{test_type}"
- output-file-name: "2n-skx-xxv710-78b-{core}-ip6-base-scale-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-{core}-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-{core}-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-{core}-avf-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-{core}-avf-ethip6-ip6scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-78b-{core}-ip6-rnd-base-scale-avf-{test_type}"
- output-file-name: "2n-skx-xxv710-78b-{core}-ip6-rnd-base-scale-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-{core}-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-rnd-Ndrpdr.78B-{core}-avf-ethip6-ip6scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-rnd-Ndrpdr.78B-{core}-avf-ethip6-ip6scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-{core}-avf-ethip6-ip6scale2m-rnd-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-78b-{core}-ip6-base-scale-dpdk-{test_type}"
- output-file-name: "2n-skx-xxv710-78b-{core}-ip6-base-scale-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-{core}-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-Ndrpdr.78B-{core}-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-Ndrpdr.78B-{core}-ethip6-ip6scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-{core}-ethip6-ip6scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-78b-{core}-ip6-rnd-base-scale-dpdk-{test_type}"
- output-file-name: "2n-skx-xxv710-78b-{core}-ip6-rnd-base-scale-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-{core}-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale20K-rnd-Ndrpdr.78B-{core}-ethip6-ip6scale20k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale200K-rnd-Ndrpdr.78B-{core}-ethip6-ip6scale200k-rnd-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.2N1L-25Ge2P1Xxv710-Ethip6-Ip6Scale2M-rnd-Ndrpdr.78B-{core}-ethip6-ip6scale2m-rnd-ndrpdr"
- layout: "plot-cpta"
-
-# 2n-skx L2
-
- - title: "2n-skx-x710-64b-{core}-l2-base-scale-avf-{test_type}"
- output-file-name: "2n-skx-x710-64b-{core}-l2-base-scale-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Patch-Ndrpdr.64B-{core}-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-{core}-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-64b-{core}-l2-base-scale-dpdk-{test_type}"
- output-file-name: "2n-skx-x710-64b-{core}-l2-base-scale-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Patch-Ndrpdr.64B-{core}-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Xcbase-Ndrpdr.64B-{core}-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-{core}-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-64b-{core}-l2-base-scale-af_xdp-{test_type}"
- output-file-name: "2n-skx-x710-64b-{core}-l2-base-scale-af_xdp-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-10Ge2P1X710-af-xdp-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-af-xdp-eth-l2bdbasemaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-l2-base-avf-{test_type}"
- output-file-name: "2n-skx-xxv710-64b-{core}-l2-base-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-{core}-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-{core}-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-{core}-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-l2-base-scale-avf-{test_type}"
- output-file-name: "2n-skx-xxv710-64b-{core}-l2-base-scale-avf-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-l2-base-dpdk-{test_type}"
- output-file-name: "2n-skx-xxv710-64b-{core}-l2-base-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-{core}-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-{core}-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-l2-base-scale-dpdk-{test_type}"
- output-file-name: "2n-skx-xxv710-64b-{core}-l2-base-scale-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-{core}-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-{core}-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-{core}-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-l2-base-scale-af_xdp-{test_type}"
- output-file-name: "2n-skx-xxv710-64b-{core}-l2-base-scale-af_xdp-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-af-xdp-Eth-L2Patch-Ndrpdr.64B-{core}-af-xdp-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-af-xdp-Eth-L2Xcbase-Ndrpdr.64B-{core}-af-xdp-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-af-xdp-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-af-xdp-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-af-xdp-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-{core}-af-xdp-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-af-xdp-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-{core}-af-xdp-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.2N1L-25Ge2P1Xxv710-af-xdp-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-{core}-af-xdp-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
-# 2n-skx VHost
-
- - title: "2n-skx-xxv710-64b-{core}-vhost-base-avf-testpmd-{test_type}"
- output-file-name: "2n-skx-xxv710-64b-{core}-vhost-base-avf-testpmd-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-vhost-base-avf-vpp-{test_type}"
- output-file-name: "2n-skx-xxv710-64b-{core}-vhost-base-avf-vpp-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-{core}-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-vhost-base-dpdk-testpmd-{test_type}"
- output-file-name: "2n-skx-xxv710-64b-{core}-vhost-base-dpdk-testpmd-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-xxv710-64b-{core}-vhost-base-dpdk-vpp-{test_type}"
- output-file-name: "2n-skx-xxv710-64b-{core}-vhost-base-dpdk-vpp-{test_type}"
- data: "plot-ndrpdr-comparison-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.2N1L-25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-{core}-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout: "plot-cpta"
-
-# 3n-skx memif
-
- - title: "3n-skx-xxv710-64b-{core}-memif-base-avf-{test_type}"
- output-file-name: "3n-skx-xxv710-64b-{core}-memif-base-avf-{test_type}"
- data: "plot-ndrpdr-comparison-3n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-avf-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Memif-1Lxc-Ndrpdr.64B-{core}-avf-eth-l2xcbase-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-avf-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-{core}-memif-base-dpdk-{test_type}"
- output-file-name: "3n-skx-xxv710-64b-{core}-memif-base-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-3n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-eth-l2xcbase-eth-2memif-1dcr-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Memif-1Lxc-Ndrpdr.64B-{core}-eth-l2xcbase-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Memif-1Lxc-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2memif-1lxc-ndrpdr"
- - "Tests.Vpp.Perf.Container Memif.25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Memif-1Dcr-Ndrpdr.64B-{core}-ethip4-ip4base-eth-2memif-1dcr-ndrpdr"
- layout: "plot-cpta"
-
-# 3n-skx ipsec
-
- - title: "3n-skx-xxv710-imix-{core}-ipsec-base-scale-sw-avf-{test_type}"
- output-file-name: "3n-skx-xxv710-imix-{core}-ipsec-base-scale-sw-avf-{test_type}"
- data: "plot-ndrpdr-comparison-3n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-{core}-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-{core}-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-{core}-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-{core}-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-{core}-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.IMIX-{core}-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-1518b-{core}-ipsec-base-scale-sw-avf-{test_type}"
- output-file-name: "3n-skx-xxv710-1518b-{core}-ipsec-base-scale-sw-avf-{test_type}"
- data: "plot-ndrpdr-comparison-3n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518b-{core}-avf-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.1518b-{core}-avf-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518b-{core}-avf-ethip4ipsec1000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec1000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.1518b-{core}-avf-ethip4ipsec1000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518b-{core}-avf-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Avf-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes128Cbc-Hmac512Sha-Ndrpdr.1518b-{core}-avf-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-imix-{core}-ipsec-base-scale-sw-dpdk-{test_type}"
- output-file-name: "3n-skx-xxv710-imix-{core}-ipsec-base-scale-sw-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-3n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-{core}-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.IMIX-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-1518b-{core}-ipsec-base-scale-sw-dpdk-{test_type}"
- output-file-name: "3n-skx-xxv710-1518b-{core}-ipsec-base-scale-sw-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-3n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec4Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518b-{core}-ethip4ipsec4tnlsw-ip4base-int-aes256gcm-ndrpdr"
- - "Tests.Vpp.Perf.Crypto.25Ge2P1Xxv710-Ethip4Ipsec10000Tnlsw-Ip4Base-Int-Aes256Gcm-Ndrpdr.1518b-{core}-ethip4ipsec10000tnlsw-ip4base-int-aes256gcm-ndrpdr"
- layout: "plot-cpta"
-
-# 3n-skx ip4
-
- - title: "3n-skx-x710-64b-{core}-ip4-base-scale-avf-{test_type}"
- output-file-name: "3n-skx-x710-64b-{core}-ip4-base-scale-avf-{test_type}"
- data: "plot-ndrpdr-comparison-3n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-{core}-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.10Ge2P1X710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-{core}-avf-ethip4-ip4scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-{core}-ip4-base-scale-avf-{test_type}"
- output-file-name: "3n-skx-xxv710-64b-{core}-ip4-base-scale-avf-{test_type}"
- data: "plot-ndrpdr-comparison-3n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Ndrpdr.64B-{core}-avf-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale20K-Ndrpdr.64B-{core}-avf-ethip4-ip4scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale200K-Ndrpdr.64B-{core}-avf-ethip4-ip4scale200k-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Avf-Ethip4-Ip4Scale2M-Ndrpdr.64B-{core}-avf-ethip4-ip4scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-{core}-ip4-base-scale-dpdk-{test_type}"
- output-file-name: "3n-skx-xxv710-64b-{core}-ip4-base-scale-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-3n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Base-Ndrpdr.64B-{core}-ethip4-ip4base-ndrpdr"
- - "Tests.Vpp.Perf.Ip4.25Ge2P1Xxv710-Ethip4-Ip4Scale2M-Ndrpdr.64B-{core}-ethip4-ip4scale2m-ndrpdr"
- layout: "plot-cpta"
-
-# 3n-skx ip4 tunnels
-
- - title: "3n-skx-xxv710-64b-{core}-ip4-tunnels-base-avf-{test_type}"
- output-file-name: "3n-skx-xxv710-64b-{core}-ip4-tunnels-base-avf-{test_type}"
- data: "plot-ndrpdr-comparison-3n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-{core}-avf-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-{core}-avf-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-{core}-ip4-tunnels-base-dpdk-{test_type}"
- output-file-name: "3n-skx-xxv710-64b-{core}-ip4-tunnels-base-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-3n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Xcbase-Ndrpdr.64B-{core}-ethip4vxlan-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.Ip4 Tunnels.25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Ndrpdr.64B-{core}-ethip4vxlan-l2bdbasemaclrn-ndrpdr"
- layout: "plot-cpta"
-
-# 3n-skx ip6
-
- - title: "3n-skx-x710-78b-{core}-ip6-base-scale-dpdk-{test_type}"
- output-file-name: "3n-skx-x710-78b-{core}-ip6-base-scale-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-3n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-{core}-avf-ethip6-ip6base-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.10Ge2P1X710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-{core}-avf-ethip6-ip6scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-78b-{core}-ip6-base-scale-avf-{test_type}"
- output-file-name: "3n-skx-xxv710-78b-{core}-ip6-base-scale-avf-{test_type}"
- data: "plot-ndrpdr-comparison-3n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Base-Ndrpdr.78B-{core}-avf-ethip6-ip6base-ndrpdr"
- - " Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale20K-Ndrpdr.78B-{core}-avf-ethip6-ip6scale20k-ndrpdr"
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale200K-Ndrpdr.78B-{core}-avf-ethip6-ip6scale200k-ndrpdr"
- - " Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Avf-Ethip6-Ip6Scale2M-Ndrpdr.78B-{core}-avf-ethip6-ip6scale2m-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-78b-{core}-ip6-base-scale-dpdk-{test_type}"
- output-file-name: "3n-skx-xxv710-78b-{core}-ip6-base-scale-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-3n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Base-Ndrpdr.78B-{core}-ethip6-ip6base-ndrpdr"
- - " Tests.Vpp.Perf.Ip6.25Ge2P1Xxv710-Ethip6-Ip6Scale2M-Ndrpdr.78B-{core}-ethip6-ip6scale2m-ndrpdr"
- layout: "plot-cpta"
-
-# 3n-skx L2
-
- - title: "3n-skx-x710-64b-{core}-l2-base-scale-avf-{test_type}"
- output-file-name: "3n-skx-x710-64b-{core}-l2-base-scale-avf-{test_type}"
- data: "plot-ndrpdr-comparison-3n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Patch-Ndrpdr.64B-{core}-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Xcbase-Ndrpdr.64B-{core}-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.10Ge2P1X710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-{core}-l2-base-avf-{test_type}"
- output-file-name: "3n-skx-xxv710-64b-{core}-l2-base-avf-{test_type}"
- data: "plot-ndrpdr-comparison-3n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Dot1Q-L2Bdbasemaclrn-Ndrpdr.64B-{core}-avf-dot1q-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Patch-Ndrpdr.64B-{core}-avf-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Ndrpdr.64B-{core}-avf-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-{core}-l2-scale-avf-{test_type}"
- output-file-name: "3n-skx-xxv710-64b-{core}-l2-scale-avf-{test_type}"
- data: "plot-ndrpdr-comparison-3n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-avf-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale10Kmaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdscale10kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale100Kmaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdscale100kmaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Avf-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-{core}-avf-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-{core}-l2-base-scale-dpdk-{test_type}"
- output-file-name: "3n-skx-xxv710-64b-{core}-l2-base-scale-dpdk-{test_type}"
- data: "plot-ndrpdr-comparison-3n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Patch-Ndrpdr.64B-{core}-eth-l2patch-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Xcbase-Ndrpdr.64B-{core}-eth-l2xcbase-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-ndrpdr"
- - "Tests.Vpp.Perf.L2.25Ge2P1Xxv710-Eth-L2Bdscale1Mmaclrn-Ndrpdr.64B-{core}-eth-l2bdscale1mmaclrn-ndrpdr"
- layout: "plot-cpta"
-
-# 3n-skx srv6
-
- - title: "3n-skx-xxv710-78b-{core}-srv6-base-avf-{test_type}"
- output-file-name: "3n-skx-xxv710-78b-{core}-srv6-base-avf-{test_type}"
- data: "plot-ndrpdr-comparison-3n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Ip6-Ip6Base-Srv6Enc1Sid-Ndrpdr.78B-{core}-avf-ethip6ip6-ip6base-srv6enc1sid-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Ndrpdr.78B-{core}-avf-ethip6srhip6-ip6base-srv6enc2sids-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Enc2Sids-Nodecaps-Ndrpdr.78B-{core}-avf-ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Dyn-Ndrpdr.78B-{core}-avf-ethip6srhip6-ip6base-srv6proxy-dyn-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Masq-Ndrpdr.78B-{core}-avf-ethip6srhip6-ip6base-srv6proxy-masq-ndrpdr"
- - "Tests.Vpp.Perf.Srv6.25Ge2P1Xxv710-Avf-Ethip6Srhip6-Ip6Base-Srv6Proxy-Stat-Ndrpdr.78B-{core}-avf-ethip6srhip6-ip6base-srv6proxy-stat-ndrpdr"
- layout: "plot-cpta"
-
-# 3n-skx VHost
-
- - title: "3n-skx-x710-64b-{core}-link-bonding-vhost-base-avf-testpmd-{test_type}"
- output-file-name: "3n-skx-x710-64b-{core}-link-bonding-vhost-base-avf-testpmd-{test_type}"
- data: "plot-ndrpdr-comparison-3n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-avf-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-avf-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-x710-64b-{core}-link-bonding-vhost-base-avf-vpp-{test_type}"
- output-file-name: "3n-skx-x710-64b-{core}-link-bonding-vhost-base-avf-vpp-{test_type}"
- data: "plot-ndrpdr-comparison-3n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.10Ge2P1X710-Avf-2Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-{core}-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-{core}-avf-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-{core}-vhost-base-dpdk-testpmd-{test_type}"
- output-file-name: "3n-skx-xxv710-64b-{core}-vhost-base-dpdk-testpmd-{test_type}"
- data: "plot-ndrpdr-comparison-3n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-{core}-link-bonding-vhost-base-avf-testpmd-{test_type}"
- output-file-name: "3n-skx-xxv710-64b-{core}-link-bonding-vhost-base-avf-testpmd-{test_type}"
- data: "plot-ndrpdr-comparison-3n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-avf-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-{core}-link-bonding-vhost-base-avf-vpp-{test_type}"
- output-file-name: "3n-skx-xxv710-64b-{core}-link-bonding-vhost-base-avf-vpp-{test_type}"
- data: "plot-ndrpdr-comparison-3n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-1Lbvpplacp-Dot1Q-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-{core}-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-{core}-avf-1lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-{core}-vhost-base-avf-testpmd-{test_type}"
- output-file-name: "3n-skx-xxv710-64b-{core}-vhost-base-avf-testpmd-{test_type}"
- data: "plot-ndrpdr-comparison-3n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Ndrpdr.64B-{core}-avf-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr"
- layout: "plot-cpta"
-
- - title: "3n-skx-xxv710-64b-{core}-vhost-base-avf-vpp-{test_type}"
- output-file-name: "3n-skx-xxv710-64b-{core}-vhost-base-avf-vpp-{test_type}"
- data: "plot-ndrpdr-comparison-3n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Xcbase-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-{core}-avf-eth-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Eth-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-{core}-avf-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4-Ip4Base-Eth-2Vhostvr1024-1Vm-Vppip4-Ndrpdr.64B-{core}-avf-ethip4-ip4base-eth-2vhostvr1024-1vm-vppip4-ndrpdr"
- - "Tests.Vpp.Perf.Vm Vhost.25Ge2P1Xxv710-Avf-Ethip4Vxlan-L2Bdbasemaclrn-Eth-2Vhostvr1024-1Vm-Vppl2Xc-Ndrpdr.64B-{core}-avf-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr"
- layout: "plot-cpta"
-
-# TRex 2n-skx
-
- - title: "2n-skx-x710-64b--ip4-base-scale-{test_type}"
- output-file-name: "2n-skx-x710-64b--ip4-base-scale-{test_type}"
- data: "plot-ndrpdr-trending-trex-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Trex.Perf.Ip4.1N1L-10Ge2P1X710-Ethip4-Ip4Base-Tg-Ndrpdr.64B--ethip4-ip4base-tg-ndrpdr"
- - "Tests.Trex.Perf.Ip4.1N1L-10Ge2P1X710-Ethip4-Ip4Scale2M-Tg-Ndrpdr.64B--ethip4-ip4scale2m-tg-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-64b--ip4routing-stf-cps-{test_type}"
- output-file-name: "2n-skx-x710-64b--ip4routing-stf-cps-{test_type}"
- data: "plot-ndrpdr-trending-trex-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Trex.Perf.Ip4.1N1L-10Ge2P1X710-Ethip4Tcp-Ip4Base-H1024-P63-S64512-Cps-Tg-Ndrpdr.64B--ethip4tcp-ip4base-h1024-p63-s64512-cps-tg-ndrpdr"
- - "Tests.Trex.Perf.Ip4.1N1L-10Ge2P1X710-Ethip4Tcp-Ip4Base-H262144-P63-S16515072-Cps-Tg-Ndrpdr.64B--ethip4tcp-ip4base-h262144-p63-s16515072-cps-tg-ndrpdr"
- - "Tests.Trex.Perf.Ip4.1N1L-10Ge2P1X710-Ethip4Udp-Ip4Base-H1024-P63-S64512-Cps-Tg-Ndrpdr.64B--ethip4udp-ip4base-h1024-p63-s64512-cps-tg-ndrpdr"
- - "Tests.Trex.Perf.Ip4.1N1L-10Ge2P1X710-Ethip4Udp-Ip4Base-H262144-P63-S16515072-Cps-Tg-Ndrpdr.64B--ethip4udp-ip4base-h262144-p63-s16515072-cps-tg-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-100b--ip4routing-stf-pps-{test_type}"
- output-file-name: "2n-skx-x710-100b--ip4routing-stf-pps-{test_type}"
- data: "plot-ndrpdr-trending-trex-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Trex.Perf.Ip4.1N1L-10Ge2P1X710-Ethip4Tcp-Ip4Base-H1024-P63-S64512-pps-Tg-Ndrpdr.100B--ethip4tcp-ip4base-h1024-p63-s64512-pps-tg-ndrpdr"
- - "Tests.Trex.Perf.Ip4.1N1L-10Ge2P1X710-Ethip4Tcp-Ip4Base-H262144-P63-S16515072-pps-Tg-Ndrpdr.100B--ethip4tcp-ip4base-h262144-p63-s16515072-pps-tg-ndrpdr"
- - "Tests.Trex.Perf.Ip4.1N1L-10Ge2P1X710-Ethip4Udp-Ip4Base-H1024-P63-S64512-pps-Tg-Ndrpdr.100B--ethip4udp-ip4base-h1024-p63-s64512-pps-tg-ndrpdr"
- - "Tests.Trex.Perf.Ip4.1N1L-10Ge2P1X710-Ethip4Udp-Ip4Base-H262144-P63-S16515072-pps-Tg-Ndrpdr.100B--ethip4udp-ip4base-h262144-p63-s16515072-pps-tg-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-78b--ip6-base-scale-{test_type}"
- output-file-name: "2n-skx-x710-78b--ip6-base-scale-{test_type}"
- data: "plot-ndrpdr-trending-trex-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Trex.Perf.Ip6.1N1L-10Ge2P1X710-Ethip6-Ip6Base-Tg-Ndrpdr.78B--ethip6-ip6base-tg-ndrpdr"
- - "Tests.Trex.Perf.Ip6.1N1L-10Ge2P1X710-Ethip6-Ip6Scale2M-Tg-Ndrpdr.78B--ethip6-ip6scale2m-tg-ndrpdr"
- layout: "plot-cpta"
-
- - title: "2n-skx-x710-64b--l2-scale-{test_type}"
- output-file-name: "2n-skx-x710-64b--l2-scale-{test_type}"
- data: "plot-ndrpdr-trending-trex-2n-skx"
- core: ["2t1c", ]
- test-type: ["ndr", "pdr"]
- include:
- - "Tests.Trex.Perf.L2.1N1L-10Ge2P1X710-Eth-L2Bdscale1Mmaclrn-Tg-Ndrpdr.64B--eth-l2bdscale1mmaclrn-tg-ndrpdr"
- layout: "plot-cpta"
diff --git a/resources/tools/presentation/specifications/trending/environment.yaml b/resources/tools/presentation/specifications/trending/environment.yaml
deleted file mode 100644
index f842775e30..0000000000
--- a/resources/tools/presentation/specifications/trending/environment.yaml
+++ /dev/null
@@ -1,196 +0,0 @@
-################################################################################
-### E N V I R O N M E N T ###
-################################################################################
-
-- type: "environment"
-
- spec-files:
- - "specifications/trending/data_sets.yaml"
- - "specifications/trending/layouts.yaml"
- - "specifications/trending/elements.yaml"
-
- 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"
-
- 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.32.51.74": "LF-3n-ALT-34"
- "10.32.51.82": "LF-2n-ICX-212"
- "10.32.51.84": "LF-2n-ICX-213"
- "10.32.51.86": "LF-2n-ICX-214"
- "10.32.51.88": "LF-2n-ICX-215"
- "10.32.51.77": "LF-3n-ICX-37"
- "10.32.51.80": "LF-3n-ICX-38"
- "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.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"
-
- # Data sources are used in this order:
- data-sources:
- # XML
- - type: "xml"
- url: "https://s3-logs.fd.io/vex-yul-rot-jenkins-1"
- path: "{job}/{build}/{filename}"
- file-name: "output_info.xml.gz"
- file-format: ".gz"
- enabled: True
-
- archive-inputs: False
-
- reverse-input: True # Needed for trending, not important for the report
-
- # Number of days from now to the past. Only files generated in this
- # time period are used.
- # Only for trending
- time-period: 180
-
- mapping-file: ""
-
- ignore-list: ""
-
- alerting:
-
- alerts:
-
- # 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-3n-alt-mrr"
- - "last-failed-tests-vpp-2n-icx-mrr"
- - "last-failed-tests-vpp-3n-icx-mrr"
- - "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-tsh-mrr"
- - "last-failed-tests-vpp-2n-tx2-mrr"
- - "last-failed-tests-vpp-2n-dnv-mrr"
- - "last-failed-tests-vpp-3n-dnv-mrr"
- - "last-failed-tests-vpp-2n-aws-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-tsh-mrr"
- - "last-failed-tests-dpdk-2n-tx2-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-trex-2n-skx-ndrpdr"
- urls:
- - "https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-alt"
- - "https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-icx"
- - "https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-3n-icx"
- - "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-3n-tsh"
- - "https://jenkins.fd.io/view/csit/job/csit-vpp-perf-mrr-daily-master-2n-tx2"
- - "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-vpp-perf-mrr-weekly-master-2n-aws"
- - "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-3n-tsh"
- - "https://jenkins.fd.io/view/csit/job/csit-dpdk-perf-mrr-weekly-master-2n-tx2"
- - "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-trex-perf-ndrpdr-weekly-master-2n-skx"
- url-details: "https://s3-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"
-
-################################################################################
-### S T A T I C ###
-################################################################################
-
-- type: "static"
- src-path: "{DIR[RST]}"
- dst-path: "{DIR[WORKING,SRC]}"
-
-################################################################################
-### O U T P U T ###
-################################################################################
-
-- type: "output"
- arch-file-format:
- - ".gz"
- - ".zip"
- output: "trending"
- format:
- html:
- - full
diff --git a/resources/tools/presentation/specifications/trending/layouts.yaml b/resources/tools/presentation/specifications/trending/layouts.yaml
deleted file mode 100644
index 97dee3f9e2..0000000000
--- a/resources/tools/presentation/specifications/trending/layouts.yaml
+++ /dev/null
@@ -1,212 +0,0 @@
-################################################################################
-### L A Y O U T S ###
-################################################################################
-
-- type: "layouts"
-
- plot-statistics:
- title: ""
- titlefont:
- size: 16
- autosize: True
- showlegend: True
- width: 1050
- height: 800
- 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"
- 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: "center"
- x: 0.5
- bordercolor: "rgb(238, 238, 238)"
- paper_bgcolor: "#fff"
- plot_bgcolor: "#fff"
- barmode: "stack"
- hoverlabel:
- namelength: -1
-
- 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
diff --git a/resources/tools/presentation/sphinx_conf/report/conf.py b/resources/tools/presentation/sphinx_conf/report/conf.py
deleted file mode 100644
index 4fbbebfbb0..0000000000
--- a/resources/tools/presentation/sphinx_conf/report/conf.py
+++ /dev/null
@@ -1,304 +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'31'
-project = u'FD.io CSIT-2206.{week}'.format(week=report_week)
-copyright = u'2022, 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://s3-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 Performance Tests Documentation: https://s3-docs.fd.io/csit/{release}/docs/index.html
-.. _VPP test framework documentation: https://docs.fd.io/vpp/{vpprelease}/vpp_make_test/html/
-.. _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/fdio.infra.ansible/inventories/lf_inventory/host_vars?h={release}
-.. _build logs from FD.io trex performance job 2n-skx: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-trex-perf-report-iterative-{srelease}-2n-skx
-.. _build logs from FD.io dpdk performance job 2n-icx: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-dpdk-perf-report-iterative-{srelease}-2n-icx
-.. _build logs from FD.io dpdk performance job 3n-icx: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-dpdk-perf-report-iterative-{srelease}-3n-icx
-.. _build logs from FD.io dpdk performance job 3n-skx: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-dpdk-perf-report-iterative-{srelease}-3n-skx
-.. _build logs from FD.io dpdk performance job 2n-skx: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-dpdk-perf-report-iterative-{srelease}-2n-skx
-.. _build logs from FD.io dpdk performance job 2n-clx: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-dpdk-perf-report-iterative-{srelease}-2n-clx
-.. _build logs from FD.io dpdk performance job 2n-dnv: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-dpdk-perf-report-iterative-{srelease}-2n-dnv
-.. _build logs from FD.io dpdk performance job 3n-dnv: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-dpdk-perf-report-iterative-{srelease}-3n-dnv
-.. _build logs from FD.io dpdk performance job 3n-alt: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-dpdk-perf-report-iterative-{srelease}-3n-alt
-.. _build logs from FD.io dpdk performance job 3n-tsh: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-dpdk-perf-report-iterative-{srelease}-3n-tsh
-.. _build logs from FD.io dpdk performance job 2n-tx2: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-dpdk-perf-report-iterative-{srelease}-2n-tx2
-.. _build logs from FD.io dpdk performance job 2n-zn2: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-dpdk-perf-report-iterative-{srelease}-2n-zn2
-.. _build logs from FD.io vpp performance job 3n-skx: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-vpp-perf-report-iterative-{srelease}-3n-skx
-.. _build logs from FD.io vpp performance job 2n-skx: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-vpp-perf-report-iterative-{srelease}-2n-skx
-.. _build logs from FD.io vpp performance job 3n-alt: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-vpp-perf-report-iterative-{srelease}-3n-alt
-.. _build logs from FD.io vpp performance job 3n-tsh: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-vpp-perf-report-iterative-{srelease}-3n-tsh
-.. _build logs from FD.io vpp performance job 2n-tx2: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-vpp-perf-report-iterative-{srelease}-2n-tx2
-.. _build logs from FD.io vpp performance job 3n-dnv: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-vpp-perf-report-iterative-{srelease}-3n-dnv
-.. _build logs from FD.io vpp performance job 2n-dnv: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-vpp-perf-report-iterative-{srelease}-2n-dnv
-.. _build logs from FD.io vpp performance job 2n-clx: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-vpp-perf-report-iterative-{srelease}-2n-clx
-.. _build logs from FD.io vpp performance job 2n-icx: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-vpp-perf-report-iterative-{srelease}-2n-icx
-.. _build logs from FD.io vpp performance job 3n-icx: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-vpp-perf-report-iterative-{srelease}-3n-icx
-.. _build logs from FD.io vpp performance job 2n-zn2: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-vpp-perf-report-iterative-{srelease}-2n-zn2
-.. _build logs from FD.io vpp performance job 3n-aws: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-vpp-perf-report-iterative-{srelease}-3n-aws
-.. _build logs from FD.io vpp performance job 2n-aws: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-vpp-perf-report-iterative-{srelease}-2n-aws
-.. _build logs from FD.io dpdk coverage job 2n-icx: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-dpdk-perf-report-coverage-{srelease}-2n-icx
-.. _build logs from FD.io dpdk coverage job 3n-icx: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-dpdk-perf-report-coverage-{srelease}-3n-icx
-.. _build logs from FD.io dpdk coverage job 3n-skx: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-dpdk-perf-report-coverage-{srelease}-3n-skx
-.. _build logs from FD.io dpdk coverage job 2n-skx: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-dpdk-perf-report-coverage-{srelease}-2n-skx
-.. _build logs from FD.io dpdk coverage job 2n-clx: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-dpdk-perf-report-coverage-{srelease}-2n-clx
-.. _build logs from FD.io dpdk coverage job 2n-dnv: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-dpdk-perf-report-coverage-{srelease}-2n-dnv
-.. _build logs from FD.io dpdk coverage job 3n-dnv: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-dpdk-perf-report-coverage-{srelease}-3n-dnv
-.. _build logs from FD.io dpdk coverage job 3n-alt: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-dpdk-perf-report-coverage-{srelease}-3n-alt
-.. _build logs from FD.io dpdk coverage job 3n-tsh: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-dpdk-perf-report-coverage-{srelease}-3n-tsh
-.. _build logs from FD.io dpdk coverage job 2n-tx2: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-dpdk-perf-report-coverage-{srelease}-2n-tx2
-.. _build logs from FD.io dpdk coverage job 2n-zn2: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-dpdk-perf-report-coverage-{srelease}-2n-zn2
-.. _build logs from FD.io trex coverage job 2n-skx: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-trex-perf-report-coverage-{srelease}-2n-skx
-.. _build logs from FD.io vpp coverage job 3n-skx: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-vpp-perf-report-coverage-{srelease}-3n-skx
-.. _build logs from FD.io vpp coverage job 2n-skx: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-vpp-perf-report-coverage-{srelease}-2n-skx
-.. _build logs from FD.io vpp coverage job 3n-alt: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-vpp-perf-report-coverage-{srelease}-3n-alt
-.. _build logs from FD.io vpp coverage job 3n-tsh: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-vpp-perf-report-coverage-{srelease}-3n-tsh
-.. _build logs from FD.io vpp coverage job 2n-tx2: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-vpp-perf-report-coverage-{srelease}-2n-tx2
-.. _build logs from FD.io vpp coverage job 3n-dnv: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-vpp-perf-report-coverage-{srelease}-3n-dnv
-.. _build logs from FD.io vpp coverage job 2n-dnv: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-vpp-perf-report-coverage-{srelease}-2n-dnv
-.. _build logs from FD.io vpp coverage job 2n-clx: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-vpp-perf-report-coverage-{srelease}-2n-clx
-.. _build logs from FD.io vpp coverage job 2n-icx: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-vpp-perf-report-coverage-{srelease}-2n-icx
-.. _build logs from FD.io vpp coverage job 3n-icx: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-vpp-perf-report-coverage-{srelease}-3n-icx
-.. _build logs from FD.io vpp coverage job 2n-zn2: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-vpp-perf-report-coverage-{srelease}-2n-zn2
-.. _build logs from FD.io vpp coverage job 3n-aws: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-vpp-perf-report-coverage-{srelease}-3n-aws
-.. _build logs from FD.io vpp coverage job 2n-aws: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-vpp-perf-report-coverage-{srelease}-2n-aws
-.. _build logs from FD.io vpp device jobs using Ubuntu: https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-vpp-device-{srelease}-ubuntu2004-1n-skx
-.. _FD.io VPP compile job: https://jenkins.fd.io/view/vpp/job/vpp-merge-{srelease}-ubuntu2004-x86_64/
-.. _CSIT Testbed Setup: https://git.fd.io/csit/tree/fdio.infra.ansible?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'rls2206',
- report_week=report_week,
- prev_release=u'rls2202',
- srelease=u'2206',
- csitrelease=u'2206',
- csit_prev_release=u'2202',
- vpprelease=u'22.06',
- vpp_prev_release=u'22.02',
- dpdkrelease=u'22.03',
- dpdk_prev_release=u'21.11',
- sdpdkrelease=u'22.03',
- trex_version=u'v2.97',
- vpp_release_commit_id=u'0d352a97c5e3ad1f5f6eab18a978a14b0b9e06a8')
-
-# 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.8/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/sphinx_conf/trending/conf.py b/resources/tools/presentation/sphinx_conf/trending/conf.py
deleted file mode 100644
index 53af4ed68a..0000000000
--- a/resources/tools/presentation/sphinx_conf/trending/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.8/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/static_content.py b/resources/tools/presentation/static_content.py
deleted file mode 100644
index 831d8a8f84..0000000000
--- a/resources/tools/presentation/static_content.py
+++ /dev/null
@@ -1,62 +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.
-
-"""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/topo_reservation.py b/resources/tools/scripts/topo_reservation.py
index 0016ebc0cc..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) 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:
@@ -24,30 +24,13 @@ import argparse
import sys
import yaml
-from resources.libraries.python.ssh import exec_cmd as _exec_cmd
+from resources.libraries.python.ssh import exec_cmd
RESERVATION_DIR = u"/tmp/reservation_dir"
RESERVATION_NODE = u"TG"
-def exec_cmd(node, cmd):
- """A wrapper around ssh.exec_cmd with disabled JSON export.
-
- Using this, maintainers can use "exec_cmd" without worrying
- about interaction with json export.
-
- TODO: Instead this, divide ssh module into reusable and robot-bound parts.
-
- :param node: Node object as parsed from topology file to execute cmd on.
- :param cmd: Command to execute.
- :type node: dict
- :type cmd: str
- :returns: RC, Stdout, Stderr.
- :rtype: Tuple[int, str, str]
- """
- return _exec_cmd(node, cmd, export=False)
-
def diag_cmd(node, cmd):
"""Execute cmd, print cmd and stdout, ignore stderr and rc; return None.
diff --git a/resources/tools/telemetry/__main__.py b/resources/tools/telemetry/__main__.py
index 2ab87b661a..7a612b8eea 100755
--- a/resources/tools/telemetry/__main__.py
+++ b/resources/tools/telemetry/__main__.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.
# Licensed under the Apache License, Version 2.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 @@ from argparse import ArgumentParser, RawDescriptionHelpFormatter
from .executor import Executor
+
def main():
"""
Main entry function when called from cli
@@ -45,5 +46,6 @@ def main():
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
index c376da9d63..58cfd5d0b6 100644
--- a/resources/tools/telemetry/bundle_bpf.py
+++ b/resources/tools/telemetry/bundle_bpf.py
@@ -52,12 +52,15 @@ class BundleBpf:
self.obj = BPF(text=self.code)
- def attach(self, duration):
+
+ def attach(self, sample_period):
"""
Attach events to BPF.
- :param duration: Trial duration.
- :type duration: int
+ :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:
@@ -65,15 +68,16 @@ class BundleBpf:
ev_type=event[u"type"],
ev_config=event[u"name"],
fn_name=event[u"target"],
- sample_period=duration
+ sample_period=sample_period
)
except AttributeError:
- getLogger("console_stderr").error(u"Could not attach BPF events!")
+ getLogger("console_stderr").error(f"Could not attach BPF event: "
+ f"{event[u'name']}")
sys.exit(Constants.err_linux_attach)
def detach(self):
"""
- Dettach events from BPF.
+ Detach events from BPF.
"""
try:
for event in self.events:
@@ -98,6 +102,9 @@ class BundleBpf:
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()
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_vppctl.py b/resources/tools/telemetry/bundle_vppctl.py
index 5334237496..d0ee3754c7 100644
--- a/resources/tools/telemetry/bundle_vppctl.py
+++ b/resources/tools/telemetry/bundle_vppctl.py
@@ -30,7 +30,7 @@ M_RUN_SEPARATOR = (
r"(-)+"
)
M_RUN_NODES = (
- r"(?P<name>\S+)\s+"
+ r"(?P<node_name>\S+)\s+"
r"(?P<state>\S+\s\S+|\S+)\s+"
r"(?P<calls>\d+)\s+"
r"(?P<vectors>\d+)\s+"
@@ -284,7 +284,7 @@ class BundleVppctl:
item = dict()
labels = dict()
item["name"] = metric
- labels["name"] = nodes["name"]
+ labels["node_name"] = nodes["node_name"]
labels["state"] = nodes["state"]
try:
labels["thread_name"] = thread["thread_name"]
@@ -364,7 +364,7 @@ class BundleVppctl:
item = dict()
labels = dict()
item["name"] = metric
- labels["name"] = node["node_name"]
+ labels["node_name"] = node["node_name"]
labels["thread_name"] = thread["thread_name"]
labels["thread_id"] = thread["thread_id"]
item["labels"] = labels
diff --git a/resources/tools/telemetry/constants.py b/resources/tools/telemetry/constants.py
index 9961a07b8b..d5641ede2d 100644
--- a/resources/tools/telemetry/constants.py
+++ b/resources/tools/telemetry/constants.py
@@ -17,6 +17,7 @@
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
@@ -46,3 +47,6 @@ class Constants:
# 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/metrics.py b/resources/tools/telemetry/metrics.py
index 7a22acfd1b..27fad89a5c 100644
--- a/resources/tools/telemetry/metrics.py
+++ b/resources/tools/telemetry/metrics.py
@@ -104,7 +104,7 @@ class Metric:
u"Sample", [u"name", u"labels", u"value", u"timestamp"]
)
- if not re.compile(r"^[a-zA-Z_:][a-zA-Z0-9_:]*$").match(name):
+ 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}!")
@@ -210,11 +210,11 @@ class MetricBase:
: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 += 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):
+ if not re.compile(r"^[a-zA-Z._:][a-zA-Z0-9._:]*$").match(full_name):
raise ValueError(
f"Invalid metric name: {full_name}!"
)
diff --git a/resources/tools/telemetry/serializer.py b/resources/tools/telemetry/serializer.py
index 3da857c0ab..e28454fc8b 100644
--- a/resources/tools/telemetry/serializer.py
+++ b/resources/tools/telemetry/serializer.py
@@ -19,7 +19,7 @@ from logging import getLogger
class Serializer:
"""
- Executor class reponsible for executing configuration.
+ Executor class responsible for executing configuration.
"""
def __init__(self):
"""
diff --git a/tests/__init__.robot b/tests/__init__.robot
index 46f3125845..b610a511a2 100644
--- a/tests/__init__.robot
+++ b/tests/__init__.robot
@@ -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:
@@ -12,7 +12,7 @@
# limitations under the License.
*** Settings ***
-| Library | resources.libraries.python.model.export_json
+| Library | resources.libraries.python.model.ExportJson
|
| Suite Setup | Global Suite Setup
| Suite Teardown | Global Suite Teardown
diff --git a/tests/dpdk/perf/10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.robot b/tests/dpdk/perf/10ge2p1x710-eth-l2xcbase-testpmd-ndrpdr.robot
index f693c126a5..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) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -63,7 +63,7 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
diff --git a/tests/dpdk/perf/10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.robot b/tests/dpdk/perf/10ge2p1x710-ethip4-ip4base-l3fwd-ndrpdr.robot
index 58d9ce7512..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) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -63,7 +63,7 @@
| ${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
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 0b65b37fe3..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) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -63,7 +63,7 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
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 1c76767aeb..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) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -63,7 +63,7 @@
| ${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
diff --git a/tests/trex/perf/__init__.robot b/tests/trex/perf/__init__.robot
index a4fd94a507..654f23362a 100644
--- a/tests/trex/perf/__init__.robot
+++ b/tests/trex/perf/__init__.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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/ip4/1n1l-10ge2p1x710-ethip4-ip4base-tg-ndrpdr.robot b/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4-ip4base-tg-ndrpdr.robot
index 65d0ab0c5c..3223bdeb7c 100644
--- a/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4-ip4base-tg-ndrpdr.robot
+++ b/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4-ip4base-tg-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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,8 @@
|
| 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
-| ... | TG_DRV_IGB_UIO
+| ... | 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
@@ -55,7 +55,7 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
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-ethip4-ip4scale2m-tg-ndrpdr.robot b/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4-ip4scale2m-tg-ndrpdr.robot
deleted file mode 100644
index 882e1a455b..0000000000
--- a/tests/trex/perf/ip4/1n1l-10ge2p1x710-ethip4-ip4scale2m-tg-ndrpdr.robot
+++ /dev/null
@@ -1,93 +0,0 @@
-# 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 | 1_NODE_SINGLE_LINK_TOPO | 2_NODE_SINGLE_LINK_TOPO
-| ... | 3_NODE_SINGLE_LINK_TOPO
-| ... | PERFTEST | HW_ENV | NDRPDR | NIC_Intel-X710 | TREX | ETH | IP4SCALE2M
-| ... | N2N | SCALE | TG_DRV_IGB_UIO
-| ... | ethip4-ip4scale2m-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, 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 ***
-| ${nic_name}= | Intel-X710
-| ${nic_pfs}= | 2
-| ${osi_layer}= | L2
-| ${overhead}= | ${0}
-| ${rts_per_flow}= | ${1000000}
-# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-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-ip4scale2m-tg-ndrpdr
-| | [Tags] | 64B
-| | frame_size=${64}
-
-| 1518B--ethip4-ip4scale2m-tg-ndrpdr
-| | [Tags] | 1518B
-| | frame_size=${1518}
-
-| 9000B--ethip4-ip4scale2m-tg-ndrpdr
-| | [Tags] | 9000B
-| | frame_size=${9000}
-
-| IMIX--ethip4-ip4scale2m-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
index 22c9d656e9..9502516509 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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,9 +16,8 @@
|
| 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
-| ... | IP4FWD | IP4BASE | N2N | TCP | TCP_CPS | TG_DRV_IGB_UIO | SCALE
-| ... | HOSTS_1024
+| ... | 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
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
index 043a259933..033fdbc935 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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,8 @@
|
| 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 | IP4FWD
-| ... | IP4BASE | N2N | TCP | TCP_TPUT | TG_DRV_IGB_UIO | SCALE | HOSTS_1024
+| ... | 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
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
index 24d2117a88..9258e38c10 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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,8 @@
|
| 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 | IP4FWD
-| ... | IP4BASE | N2N | TCP | TCP_CPS | TG_DRV_IGB_UIO | SCALE | HOSTS_262144
+| ... | 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
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
index 5d15757f71..4fccf364a5 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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,8 @@
|
| 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 | IP4FWD
-| ... | IP4BASE | N2N | TCP | TCP_TPUT | TG_DRV_IGB_UIO | SCALE | HOSTS_262144
+| ... | 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
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
index 50bc2fae45..3c98bb799f 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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,8 @@
|
| 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 | IP4FWD
-| ... | N2N | SCALE | IP4BASE | TG_DRV_IGB_UIO | UDP | UDP_CPS | HOSTS_1024
+| ... | 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
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
index 919912797c..22d6a20535 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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,8 @@
|
| 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 | IP4FWD
-| ... | N2N | IP4BASE | UDP | UDP_TPUT | TG_DRV_IGB_UIO | SCALE | HOSTS_1024
+| ... | 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
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
index dc93cb5755..0d68ebf5fa 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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,8 @@
|
| 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 | IP4FWD
-| ... | N2N | SCALE | IP4BASE | TG_DRV_IGB_UIO | UDP | UDP_CPS | HOSTS_262144
+| ... | 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
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
index 43852ff7aa..dcf153b1ba 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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,8 @@
|
| 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 | IP4FWD
-| ... | IP4BASE | N2N | UDP | UDP_TPUT | TG_DRV_IGB_UIO | SCALE | HOSTS_262144
+| ... | 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
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
index 91000e2389..14b1744f77 100644
--- a/tests/trex/perf/ip6/1n1l-10ge2p1x710-ethip6-ip6base-tg-ndrpdr.robot
+++ b/tests/trex/perf/ip6/1n1l-10ge2p1x710-ethip6-ip6base-tg-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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,8 @@
|
| 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 | IP6BASE
-| ... | N2N | BASE | IP6BASE | TG_DRV_IGB_UIO
+| ... | 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
@@ -55,7 +55,7 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip6-ip6src253
+| ${traffic_profile}= | trex-stl-ethip6-ip6src253
*** Keywords ***
| Local Template
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/1n1l-10ge2p1x710-ethip6-ip6scale2m-tg-ndrpdr.robot b/tests/trex/perf/ip6/1n1l-10ge2p1x710-ethip6-ip6scale2m-tg-ndrpdr.robot
deleted file mode 100644
index 41bfc86f30..0000000000
--- a/tests/trex/perf/ip6/1n1l-10ge2p1x710-ethip6-ip6scale2m-tg-ndrpdr.robot
+++ /dev/null
@@ -1,93 +0,0 @@
-# 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 | 1_NODE_SINGLE_LINK_TOPO | 2_NODE_SINGLE_LINK_TOPO
-| ... | 3_NODE_SINGLE_LINK_TOPO
-| ... | PERFTEST | HW_ENV | NDRPDR | NIC_Intel-X710 | TREX | ETH | IP6SCALE2M
-| ... | N2N | BASE | IP6BASE | TG_DRV_IGB_UIO
-| ... | ethip6-ip6scale2m-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, 254 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}= | ${1000000}
-# 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-ip6scale2m-tg-ndrpdr
-| | [Tags] | 78B
-| | frame_size=${78}
-
-| 1518B--ethip6-ip6scale2m-tg-ndrpdr
-| | [Tags] | 1518B
-| | frame_size=${1518}
-
-| 9000B--ethip6-ip6scale2m-tg-ndrpdr
-| | [Tags] | 9000B
-| | frame_size=${9000}
-
-| IMIX--ethip6-ip6scale2m-tg-ndrpdr
-| | [Tags] | IMIX
-| | frame_size=IMIX_v4_1
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
index d391ccf887..86854c042e 100644
--- a/tests/trex/perf/l2/1n1l-10ge2p1x710-eth-l2bdscale1mmaclrn-tg-ndrpdr.robot
+++ b/tests/trex/perf/l2/1n1l-10ge2p1x710-eth-l2bdscale1mmaclrn-tg-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -59,7 +59,7 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-macsrc500kdst500k
+| ${traffic_profile}= | trex-stl-ethip4-macsrc500kdst500k
*** Keywords ***
| Local Template
diff --git a/tests/vpp/device/__init__.robot b/tests/vpp/device/__init__.robot
index 9453da3181..e8cbd1ade4 100644
--- a/tests/vpp/device/__init__.robot
+++ b/tests/vpp/device/__init__.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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,7 +25,8 @@
| ... | 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
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
index 727a0bd587..a8c9246ec3 100644
--- a/tests/vpp/device/ip4_tunnels/2n1l-10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-scapy.robot
+++ b/tests/vpp/device/ip4_tunnels/2n1l-10ge2p1x710-ethip4vxlan-l2bdbasemaclrn-scapy.robot
@@ -45,7 +45,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
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
index e7252c669c..7b84de1af0 100644
--- a/tests/vpp/device/ip4_tunnels/2n1l-10ge2p1x710-ethip4vxlan-l2xcbase-scapy.robot
+++ b/tests/vpp/device/ip4_tunnels/2n1l-10ge2p1x710-ethip4vxlan-l2xcbase-scapy.robot
@@ -44,7 +44,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
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
index 0dbcd2b06f..2eb255e140 100644
--- a/tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6ip6-ip6base-srv6enc1sid-scapy.robot
+++ b/tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6ip6-ip6base-srv6enc1sid-scapy.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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,7 +21,7 @@
|
| Suite Setup | Setup suite topology interfaces | scapy
| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | telemetry
+| Test Teardown | Tear down test | packet_trace | telemetry | srv6
|
| Test Template | Local Template
|
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
index aebc944ce8..a8e5674271 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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 @@
|
| Suite Setup | Setup suite topology interfaces | scapy
| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | telemetry
+| Test Teardown | Tear down test | packet_trace | telemetry | srv6
|
| Test Template | Local Template
|
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
index b156998f5e..a6972e5e10 100644
--- a/tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6enc2sids-scapy.robot
+++ b/tests/vpp/device/srv6/2n1l-10ge2p1x710-ethip6srhip6-ip6base-srv6enc2sids-scapy.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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 @@
|
| Suite Setup | Setup suite topology interfaces | scapy
| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | telemetry
+| Test Teardown | Tear down test | packet_trace | telemetry | srv6
|
| Test Template | Local Template
|
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
index 693f979a43..f0466ea8a7 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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 @@
|
| Suite Setup | Setup suite topology interfaces | scapy
| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | telemetry | container
+| Test Teardown | Tear down test | packet_trace | telemetry | container | srv6
|
| Test Template | Local Template
|
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
index ef98b30df1..106bce9d1e 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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 @@
|
| Suite Setup | Setup suite topology interfaces | scapy
| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | telemetry | container
+| Test Teardown | Tear down test | packet_trace | telemetry | container | srv6
|
| Test Template | Local Template
|
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
index 0b2808f705..34c2ff940a 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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 @@
|
| Suite Setup | Setup suite topology interfaces | scapy
| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace | telemetry | container
+| Test Teardown | Tear down test | packet_trace | telemetry | container | srv6
|
| Test Template | Local Template
|
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
index 2107523463..24ea26aadf 100644
--- 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
@@ -46,7 +46,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC791, RFC826, RFC792
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
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
index 47110bafd6..c6f6fd474a 100644
--- 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
@@ -47,7 +47,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC792
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
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
index 9227f69d81..bcd8f46774 100644
--- 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
@@ -45,7 +45,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC792
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
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
index 430262531f..9fd6f69b0a 100644
--- 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
@@ -46,7 +46,7 @@
| ... | RFC4861.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
diff --git a/tests/vpp/perf/__init__.robot b/tests/vpp/perf/__init__.robot
index 37875163a4..04b47f9746 100644
--- a/tests/vpp/perf/__init__.robot
+++ b/tests/vpp/perf/__init__.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:
@@ -18,15 +18,13 @@
| 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 | 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}
@@ -50,7 +48,7 @@
| | ... | - packages_dir - Path to directory where VPP packages are stored.
| |
| | ${stat_runtime}= | Create List
-| | ... | vpp-runtime
+| | ... | vpp-runtime | perf-stat-runtime
| | ${stat_pre_trial}= | Create List
| | ... | vpp-clear-stats | vpp-enable-packettrace
| | ${stat_post_trial}= | Create List
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 c06d7dd67a..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) 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:
@@ -74,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
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 dd2cbd9275..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) 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:
@@ -65,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
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 79c05295ae..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) 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:
@@ -65,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
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 cb89c62036..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) 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:
@@ -64,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
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 9dae8337e8..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) 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:
@@ -64,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
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 eb3dfb2825..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) 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,7 +27,7 @@
|
| Test Template | Local Template
|
-| Documentation | **RFC2544: Pkt throughput L2BD with memif and IEEE 802.1Q
+| Documentation | **RFC2544: Pkt throughput L2BD with memif and IEEE 802.1Q
| ... | test cases**
| ... |
| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
@@ -74,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
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 bbc772e004..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) 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:
@@ -65,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
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 7a0f23a674..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) 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:
@@ -65,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
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 db383c4f50..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) 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:
@@ -65,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
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 87521e662d..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) 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/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-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec10000tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
index e18c2137cf..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) 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:
@@ -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
@@ -82,7 +81,7 @@
| ${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
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 9bc9399de9..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) 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:
@@ -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
@@ -82,7 +81,7 @@
| ${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
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 496cb5e1f7..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) 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:
@@ -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
@@ -82,7 +81,7 @@
| ${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
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
index d80c2db522..3734288de1 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 PANTHEON.tech s.r.o.
+# 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,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 | IP4FWD
| ... | SCALE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPD_FLOW_CACHE
@@ -73,7 +72,7 @@
| ${local_addr_range_ip4}= | 10.10.10.0/24
| ${rule_amount}= | ${1000}
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
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
index 33856f880c..f29a37dfbd 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 PANTHEON.tech s.r.o.
+# 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,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 | IP4FWD
| ... | SCALE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPE_1000 | NOCRYPTO
@@ -71,7 +70,7 @@
| ${local_addr_range_ip4}= | 10.10.10.0/24
| ${rule_amount}= | ${1000}
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
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 cabcaa7ec1..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
+++ /dev/null
@@ -1,169 +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
-| 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) \
-| ... | 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}= | ${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-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 e13c56c832..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-int-aes128gcm-ndrpdr.robot
+++ /dev/null
@@ -1,171 +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
-| 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) \
-| ... | 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}= | ${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 a67833b6af..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-int-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,171 +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
-| 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) \
-| ... | 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}= | ${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-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-policy-aes256gcm-ndrpdr.robot
deleted file mode 100644
index a7f513eb5d..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhw-ip4base-policy-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,171 +0,0 @@
-# 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/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_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}= | ${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-hmac512sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
index 3c6be8b0e1..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) 2021 Cisco and/or its affiliates.
-# Copyright (c) 2021 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,7 +21,7 @@
| ... | 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
@@ -83,7 +82,7 @@
| ${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
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 775a7988fb..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) 2021 Cisco and/or its affiliates.
-# Copyright (c) 2021 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,7 +21,7 @@
| ... | 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
@@ -83,7 +82,7 @@
| ${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
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 ad7484f72a..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) 2021 Cisco and/or its affiliates.
-# Copyright (c) 2021 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,7 +21,7 @@
| ... | 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
@@ -83,7 +82,7 @@
| ${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
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 52d3fdc8e7..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) 2022 Cisco and/or its affiliates.
-# Copyright (c) 2022 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,7 +21,7 @@
| ... | 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_all
@@ -83,7 +82,7 @@
| ${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
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
index abb061975c..56af1531fa 100644
--- 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
@@ -1,5 +1,5 @@
-# Copyright (c) 2022 Intel and/or its affiliates.
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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:
@@ -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 | IPSECSW | IPSECTUN | NIC_Intel-X710 | SCALE
@@ -83,7 +82,7 @@
| ${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
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
index cb52b131ba..e6019e8803 100644
--- 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
@@ -1,5 +1,5 @@
-# Copyright (c) 2022 Intel and/or its affiliates.
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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:
@@ -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 | IPSECSW | IPSECTUN | FLOW_DIR | NIC_Intel-X710 | SCALE
@@ -86,7 +85,7 @@
| ${dut2_spi}= | ${300000}
| ${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
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
index 17fc6bd76b..c8019f97a3 100644
--- 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
@@ -1,5 +1,5 @@
-# Copyright (c) 2022 Intel and/or its affiliates.
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# 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:
@@ -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 | IPSECSW | IPSECTUN | FLOW_RSS | NIC_Intel-X710 | SCALE
@@ -84,7 +83,7 @@
| ${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
@@ -118,10 +117,10 @@
| | 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
+| | ${flow_index} = | And VPP Ipsec Flow Enable 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
+| | ${flow_index} = | And VPP Ipsec Flow Enable Rss
| | ... | ${dut2} | IPSEC_ESP | esp | default
| | And VPP Flow Enable | ${dut2} | ${DUT2_${int}1}[0] | ${flow_index}
| | And VPP IPsec Add Multiple Tunnels
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 22389da054..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) 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:
@@ -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
@@ -82,7 +81,7 @@
| ${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
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 58c1f8b930..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) 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:
@@ -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
@@ -82,7 +81,7 @@
| ${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
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 c718eb4669..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) 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:
@@ -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
@@ -82,7 +81,7 @@
| ${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
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-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1000tnlsw-ip4base-policy-aes256gcm-ndrpdr.robot
index 54b10c08db..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) 2022 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
@@ -82,7 +81,7 @@
| ${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
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
index 98121f3678..55a95344d5 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 PANTHEON.tech s.r.o.
+# 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,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 | IP4FWD
| ... | SCALE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPD_FLOW_CACHE
@@ -73,7 +72,7 @@
| ${local_addr_range_ip4}= | 10.10.10.0/24
| ${rule_amount}= | ${100}
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
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
index 9ca8876fcc..da0bb0edfc 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 PANTHEON.tech s.r.o.
+# 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,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 | IP4FWD
| ... | SCALE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPE_100 | NOCRYPTO
@@ -71,7 +70,7 @@
| ${local_addr_range_ip4}= | 10.10.10.0/24
| ${rule_amount}= | ${100}
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
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
index 9f5475266d..3e665a2fe7 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 PANTHEON.tech s.r.o.
+# 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,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 | IP4FWD
| ... | SCALE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPD_FLOW_CACHE
@@ -73,7 +72,7 @@
| ${local_addr_range_ip4}= | 10.10.10.0/24
| ${rule_amount}= | ${10}
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
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
index 620d174c99..3bb23bbeca 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 PANTHEON.tech s.r.o.
+# 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,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 | IP4FWD
| ... | SCALE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPE_10 | NOCRYPTO
@@ -71,7 +70,7 @@
| ${local_addr_range_ip4}= | 10.10.10.0/24
| ${rule_amount}= | ${10}
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
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
index 0cf49f6711..1fb6841428 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 PANTHEON.tech s.r.o.
+# 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,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 | IP4FWD
| ... | BASE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPD_FLOW_CACHE
@@ -73,7 +72,7 @@
| ${local_addr_range_ip4}= | 10.10.10.0/24
| ${rule_amount}= | ${1}
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
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
index 5b88832e11..39ac669b91 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 PANTHEON.tech s.r.o.
+# 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,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 | IP4FWD
| ... | BASE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPE_1 | NOCRYPTO
@@ -71,7 +70,7 @@
| ${local_addr_range_ip4}= | 10.10.10.0/24
| ${rule_amount}= | ${1}
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
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 cf3cfa0a1b..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
+++ /dev/null
@@ -1,169 +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
-| 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) \
-| ... | 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}= | ${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-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 169f4e60ac..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-int-aes128gcm-ndrpdr.robot
+++ /dev/null
@@ -1,171 +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
-| 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) \
-| ... | 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}= | ${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 f58e2db1ba..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,171 +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
-| 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) \
-| ... | 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}= | ${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-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-policy-aes256gcm-ndrpdr.robot
deleted file mode 100644
index e1d7dbe346..0000000000
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhw-ip4base-policy-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,171 +0,0 @@
-# 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/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_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}= | ${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-hmac512sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
index 4832a75032..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) 2021 Cisco and/or its affiliates.
-# Copyright (c) 2021 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,7 +21,7 @@
| ... | 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
@@ -83,7 +82,7 @@
| ${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
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 d7a2ef1ec8..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) 2021 Cisco and/or its affiliates.
-# Copyright (c) 2021 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,7 +21,7 @@
| ... | 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
@@ -83,7 +82,7 @@
| ${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
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 11f3125e78..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) 2021 Cisco and/or its affiliates.
-# Copyright (c) 2021 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,7 +21,7 @@
| ... | 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
@@ -84,7 +83,7 @@
| ${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
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 2f77cd00b2..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) 2022 Cisco and/or its affiliates.
-# Copyright (c) 2022 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,7 +21,7 @@
| ... | 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_all
@@ -83,7 +82,7 @@
| ${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
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 95a1a7384c..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) 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:
@@ -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
@@ -82,7 +81,7 @@
| ${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
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 435b26da1a..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) 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:
@@ -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
@@ -82,7 +81,7 @@
| ${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
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 21a749e030..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) 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:
@@ -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
@@ -82,7 +81,7 @@
| ${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
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-aes256gcm-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec1tnlsw-ip4base-policy-aes256gcm-ndrpdr.robot
index 0d9cb0e829..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) 2022 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
@@ -82,7 +81,7 @@
| ${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
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
index e0863e12dc..26675c4505 100644
--- 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
@@ -1,5 +1,5 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# 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:
@@ -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 | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | BASE
@@ -86,7 +85,7 @@
| ${n_tunnels}= | ${1}
| ${dp_cores_count}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
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
index 50c7a9b953..d8d091ee0a 100644
--- 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
@@ -1,5 +1,5 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# 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:
@@ -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 | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | BASE
@@ -86,7 +85,7 @@
| ${n_tunnels}= | ${1}
| ${dp_cores_count}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
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
index 4d10947938..88ed9d70c8 100644
--- 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
@@ -1,5 +1,5 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# 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:
@@ -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 | BASE | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | TNL_1
@@ -86,7 +85,7 @@
| ${n_tunnels}= | ${1}
| ${dp_cores_count}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
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
index 8f43531fee..e9b966ff00 100644
--- 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
@@ -1,5 +1,5 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# 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:
@@ -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_2
| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
@@ -86,7 +85,7 @@
| ${n_tunnels}= | ${2}
| ${dp_cores_count}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
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
index fece728712..ced1024fb3 100644
--- 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
@@ -1,5 +1,5 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# 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:
@@ -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_2
| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
@@ -86,7 +85,7 @@
| ${n_tunnels}= | ${2}
| ${dp_cores_count}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
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
index f14e9ff223..61b576e013 100644
--- 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
@@ -1,5 +1,5 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# 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:
@@ -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 | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | TNL_2
@@ -86,7 +85,7 @@
| ${n_tunnels}= | ${2}
| ${dp_cores_count}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
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 e30a012a36..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) 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:
@@ -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
@@ -82,7 +81,7 @@
| ${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
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 ae41bc227e..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) 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:
@@ -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
@@ -82,7 +81,7 @@
| ${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
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 0a433d8255..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) 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:
@@ -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
@@ -82,7 +81,7 @@
| ${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
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-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-1atnl-ip4base-int-aes128cbc-hmac512sha-reconf.robot
index e3ed8b561d..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) 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:
@@ -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
@@ -80,7 +79,7 @@
| ${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
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 999cef15d8..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) 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:
@@ -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
@@ -80,7 +79,7 @@
| ${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
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 fa2a96b71e..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) 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:
@@ -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
@@ -80,7 +79,7 @@
| ${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
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 6d23dd6f68..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) 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:
@@ -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
@@ -82,7 +81,7 @@
| ${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
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 ec10c0c4ea..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) 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:
@@ -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
@@ -82,7 +81,7 @@
| ${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
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 749c67bd4d..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) 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:
@@ -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
@@ -82,7 +81,7 @@
| ${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
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
index 2f1cb1962a..a82851e988 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec40tnlsw-ip4base-policy-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 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 | IPSECTUN | NIC_Intel-X710 | SCALE
@@ -82,7 +81,7 @@
| ${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
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 7aa00d3a01..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) 2021 Cisco and/or its affiliates.
-# Copyright (c) 2021 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,7 +21,7 @@
| ... | 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
@@ -83,7 +82,7 @@
| ${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
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 6a361a44ec..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) 2021 Cisco and/or its affiliates.
-# Copyright (c) 2021 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,7 +21,7 @@
| ... | 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
@@ -83,7 +82,7 @@
| ${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
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 3da2ab8dc9..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) 2021 Cisco and/or its affiliates.
-# Copyright (c) 2021 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,7 +21,7 @@
| ... | 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
@@ -83,7 +82,7 @@
| ${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
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-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-int-aes128cbc-hmac512sha-ndrpdr.robot
index bdaa20a0f0..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) 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:
@@ -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
@@ -82,7 +81,7 @@
| ${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
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 f7f8eaeb12..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) 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:
@@ -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
@@ -82,7 +81,7 @@
| ${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
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 46d8435bb2..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) 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:
@@ -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
@@ -82,7 +81,7 @@
| ${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
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
index 0baef3d75d..1f559c9832 100644
--- a/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-ndrpdr.robot
+++ b/tests/vpp/perf/crypto/10ge2p1x710-ethip4ipsec4tnlsw-ip4base-policy-aes256gcm-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 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 | IPSECTUN | NIC_Intel-X710 | SCALE
@@ -82,7 +81,7 @@
| ${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
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
index 0e535d1131..372e4086e0 100644
--- 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
@@ -1,5 +1,5 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# 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:
@@ -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 | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
@@ -86,7 +85,7 @@
| ${n_tunnels}= | ${4}
| ${dp_cores_count}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
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
index 73cbbcb429..6e0b68c358 100644
--- 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
@@ -1,5 +1,5 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# 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:
@@ -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 | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
@@ -86,7 +85,7 @@
| ${n_tunnels}= | ${4}
| ${dp_cores_count}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
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
index fc6a2f5429..f704fd4b38 100644
--- 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
@@ -1,5 +1,5 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# 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:
@@ -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 | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | TNL_4
@@ -86,7 +85,7 @@
| ${n_tunnels}= | ${4}
| ${dp_cores_count}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
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
index fe049477f0..15ea9311ed 100644
--- 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
@@ -1,5 +1,5 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# 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:
@@ -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_8
| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
@@ -86,7 +85,7 @@
| ${n_tunnels}= | ${8}
| ${dp_cores_count}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
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
index debf9848f2..cf46405ed9 100644
--- 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
@@ -1,5 +1,5 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# 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:
@@ -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_8
| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
@@ -86,7 +85,7 @@
| ${n_tunnels}= | ${8}
| ${dp_cores_count}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
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
index 9039f44c02..feb641d898 100644
--- 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
@@ -1,5 +1,5 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# 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:
@@ -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 | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | TNL_8
@@ -86,7 +85,7 @@
| ${n_tunnels}= | ${8}
| ${dp_cores_count}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}
*** Keywords ***
| Local Template
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
index ac21dd9592..a85f6447b6 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_10000
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${10000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index cefaf3337b..cca185038e 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_10000
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${10000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index 2e5a9e85a5..f7901e19c8 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_10000
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${10000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index d1c3611872..714de836a1 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 PANTHEON.tech s.r.o.
+# 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,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | IP4FWD
| ... | SCALE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPD_FLOW_CACHE
@@ -73,7 +72,7 @@
| ${local_addr_range_ip4}= | 10.10.10.0/24
| ${rule_amount}= | ${1000}
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
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
index c446a8045c..e34705e8cf 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 PANTHEON.tech s.r.o.
+# 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,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | IP4FWD
| ... | SCALE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPE_1000 | NOCRYPTO
@@ -71,7 +70,7 @@
| ${local_addr_range_ip4}= | 10.10.10.0/24
| ${rule_amount}= | ${1000}
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
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
index b8d9e7ca27..25ef11f4ab 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECHW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_1000
@@ -21,7 +20,7 @@
| ... | RXQ_SIZE_0 | TXQ_SIZE_0
| ... | ethip4ipsec1000tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir
|
-| 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
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index e4b712f2cb..ef06f9952c 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECHW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_1000
@@ -21,7 +20,7 @@
| ... | RXQ_SIZE_0 | TXQ_SIZE_0
| ... | ethip4ipsec1000tnlhwasync-ip4base-int-aes128gcm-udir
|
-| 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
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index 0fe5cd61f3..9f48c83647 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECHW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_1000
@@ -21,7 +20,7 @@
| ... | RXQ_SIZE_0 | TXQ_SIZE_0
| ... | ethip4ipsec1000tnlhwasync-ip4base-int-aes256gcm-udir
|
-| 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
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index ada03ae2ec..3714f9406b 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-X710 | SCALE | TNL_1000
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index 8c6a893628..52a9480de8 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_1000
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index e1fd3ac6bd..2f967f5f68 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_1000
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index f90534eaa0..1c4382007c 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_1000
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index 2113d26a46..6024e8f6e5 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 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 | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | NIC_Intel-X710 | SCALE | TNL_1000
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index c2fd5e4e30..e65dbe7d20 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 PANTHEON.tech s.r.o.
+# 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,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | IP4FWD
| ... | SCALE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPD_FLOW_CACHE
@@ -73,7 +72,7 @@
| ${local_addr_range_ip4}= | 10.10.10.0/24
| ${rule_amount}= | ${100}
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
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
index 75bb253f63..315e86876f 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 PANTHEON.tech s.r.o.
+# 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,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | IP4FWD
| ... | SCALE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPE_100 | NOCRYPTO
@@ -71,7 +70,7 @@
| ${local_addr_range_ip4}= | 10.10.10.0/24
| ${rule_amount}= | ${100}
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
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
index 7eda4736ba..37d90181a5 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 PANTHEON.tech s.r.o.
+# 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,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | IP4FWD
| ... | SCALE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPD_FLOW_CACHE
@@ -73,7 +72,7 @@
| ${local_addr_range_ip4}= | 10.10.10.0/24
| ${rule_amount}= | ${10}
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
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
index b623ffd04c..f1bbcf6cc6 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 PANTHEON.tech s.r.o.
+# 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,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | IP4FWD
| ... | SCALE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPE_10 | NOCRYPTO
@@ -71,7 +70,7 @@
| ${local_addr_range_ip4}= | 10.10.10.0/24
| ${rule_amount}= | ${10}
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
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
index f78fdce327..690cad3de1 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 PANTHEON.tech s.r.o.
+# 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,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | IP4FWD
| ... | BASE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPD_FLOW_CACHE
@@ -73,7 +72,7 @@
| ${local_addr_range_ip4}= | 10.10.10.0/24
| ${rule_amount}= | ${1}
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
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
index 94d3b69b93..0ad4fd3c57 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 PANTHEON.tech s.r.o.
+# 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,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | IP4FWD
| ... | BASE | IPSEC | IPSECSW | IPSECSPD | SPD_OUTBOUND | SPE_1 | NOCRYPTO
@@ -71,7 +70,7 @@
| ${local_addr_range_ip4}= | 10.10.10.0/24
| ${rule_amount}= | ${1}
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
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
index ad1fcdeb32..64e073c84a 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECHW | IPSECINT | NIC_Intel-X710 | BASE | TNL_1
@@ -21,7 +20,7 @@
| ... | RXQ_SIZE_0 | TXQ_SIZE_0
| ... | ethip4ipsec1tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir
|
-| 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
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index 90b6be52ee..ddd2aa253f 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR | TNL_1
| ... | IP4FWD | IPSEC | IPSECHW | IPSECINT | NIC_Intel-X710 | BASE
@@ -21,7 +20,7 @@
| ... | RXQ_SIZE_0 | TXQ_SIZE_0
| ... | ethip4ipsec1tnlhwasync-ip4base-int-aes128gcm-udir
|
-| 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
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index 539271287e..4455b8c6cf 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECHW | IPSECINT | NIC_Intel-X710 | BASE | TNL_1
@@ -21,7 +20,7 @@
| ... | RXQ_SIZE_0 | TXQ_SIZE_0
| ... | ethip4ipsec1tnlhwasync-ip4base-int-aes256gcm-udir
|
-| 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
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index f6bbc69ae6..f95733dd97 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECHW | IPSECTUN | NIC_Intel-X710 | BASE | TNL_1
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index 7e751d8ac3..054b205ec9 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | BASE | TNL_1
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index c7d601404f..4e788704f3 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | BASE | TNL_1
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index d8f55b808d..e569935659 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | BASE | TNL_1
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index a65c2b3ca1..a700a87ad8 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 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 | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | NIC_Intel-X710 | BASE | TNL_1
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index bcfe4b27f0..39a5291304 100644
--- 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
@@ -1,5 +1,5 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# 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:
@@ -14,7 +14,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | BASE
@@ -82,7 +81,7 @@
| ${n_tunnels}= | ${1}
| ${dp_cores_count}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index 7681e1f2dc..01834cd466 100644
--- 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
@@ -1,5 +1,5 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# 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:
@@ -14,7 +14,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | BASE
@@ -82,7 +81,7 @@
| ${n_tunnels}= | ${1}
| ${dp_cores_count}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index c137dd31be..95e9eb6afc 100644
--- 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
@@ -1,5 +1,5 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# 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:
@@ -14,7 +14,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | BASE
@@ -82,7 +81,7 @@
| ${n_tunnels}= | ${1}
| ${dp_cores_count}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index 0f4cdedc99..ccca2c592c 100644
--- 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
@@ -1,5 +1,5 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# 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:
@@ -14,7 +14,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
@@ -82,7 +81,7 @@
| ${n_tunnels}= | ${2}
| ${dp_cores_count}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index e7f965da23..ecb457b5d9 100644
--- 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
@@ -1,5 +1,5 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# 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:
@@ -14,7 +14,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
@@ -82,7 +81,7 @@
| ${n_tunnels}= | ${2}
| ${dp_cores_count}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index c9de66e8fc..a9c8f3b2e4 100644
--- 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
@@ -1,5 +1,5 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# 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:
@@ -14,7 +14,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
@@ -82,7 +81,7 @@
| ${n_tunnels}= | ${2}
| ${dp_cores_count}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index a3a53362f8..3d5bfa20fe 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_40000
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${40000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index d6a2a6a77b..f20e782d4d 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_40000
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${40000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index 4b0fe7f205..dd7a0fe2f9 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_40000
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${40000}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index 49d121a7d2..9b6adb3647 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | RECONF
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_40
@@ -77,7 +76,7 @@
| ${n_tunnels}= | ${40}
| ${n_added_tunnels}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index d0e11c7647..db57d81c84 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | RECONF
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_40
@@ -77,7 +76,7 @@
| ${n_tunnels}= | ${40}
| ${n_added_tunnels}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index 3d4f5c953b..00f844d6d4 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | RECONF
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_40
@@ -77,7 +76,7 @@
| ${n_tunnels}= | ${40}
| ${n_added_tunnels}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index 1b05438414..b5ae2d1702 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_40
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${40}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index b667af1a30..141f346b89 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_40
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${40}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index cc531125ef..e1c3af4231 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_40
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${40}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index f22ab2c37c..3b74b44fd7 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 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 | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | NIC_Intel-X710 | SCALE | TNL_40
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${40}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index dec5cf650e..19c75a83e6 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECHW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_4
@@ -21,7 +20,7 @@
| ... | RXQ_SIZE_0 | TXQ_SIZE_0
| ... | ethip4ipsec4tnlhwasync-ip4base-int-aes128cbc-hmac512sha-udir
|
-| 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
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${4}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index 9ebdc8dab8..6012fc3c9b 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECHW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_4
@@ -21,7 +20,7 @@
| ... | RXQ_SIZE_0 | TXQ_SIZE_0
| ... | ethip4ipsec4tnlhwasync-ip4base-int-aes128gcm-udir
|
-| 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
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${4}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index b252afb4a8..0e2f100963 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECHW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_4
@@ -21,7 +20,7 @@
| ... | RXQ_SIZE_0 | TXQ_SIZE_0
| ... | ethip4ipsec4tnlhwasync-ip4base-int-aes256gcm-udir
|
-| 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
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${4}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index a3b5be07b5..30e2c0cb9d 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_4
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${4}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index 073addc9da..6400cc9edb 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_4
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${4}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index 692412b8fb..b88a945bd7 100644
--- 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
@@ -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:
@@ -13,7 +13,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | TNL_4
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${4}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index 21f357c5b5..a6cba480ab 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 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 | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | IPSECTUN | NIC_Intel-X710 | SCALE | TNL_4
@@ -78,7 +77,7 @@
| ${addr_range}= | ${24}
| ${n_tunnels}= | ${4}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index cc9522880e..f7c98c92d4 100644
--- 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
@@ -1,5 +1,5 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# 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:
@@ -14,7 +14,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
@@ -82,7 +81,7 @@
| ${n_tunnels}= | ${4}
| ${dp_cores_count}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index 1bd07d85c1..66be7722b3 100644
--- 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
@@ -1,5 +1,5 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# 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:
@@ -14,7 +14,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
@@ -82,7 +81,7 @@
| ${n_tunnels}= | ${4}
| ${dp_cores_count}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index 1afd38fe11..4e8344aeae 100644
--- 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
@@ -1,5 +1,5 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# 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:
@@ -14,7 +14,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
@@ -82,7 +81,7 @@
| ${n_tunnels}= | ${4}
| ${dp_cores_count}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index 951aba35e8..fe4e9e5e37 100644
--- 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
@@ -1,5 +1,5 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# 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:
@@ -14,7 +14,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
@@ -82,7 +81,7 @@
| ${n_tunnels}= | ${8}
| ${dp_cores_count}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index 6df954a4aa..82648f626e 100644
--- 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
@@ -1,5 +1,5 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# 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:
@@ -14,7 +14,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
@@ -82,7 +81,7 @@
| ${n_tunnels}= | ${8}
| ${dp_cores_count}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
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
index e21e4fbf52..9393bebf30 100644
--- 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
@@ -1,5 +1,5 @@
-# Copyright (c) 2021 Intel and/or its affiliates.
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# 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:
@@ -14,7 +14,6 @@
*** Settings ***
| Resource | resources/libraries/robot/shared/default.robot
-| Resource | resources/libraries/robot/crypto/ipsec.robot
|
| Force Tags | 2_NODE_SINGLE_LINK_TOPO | UDIR | PERFTEST | HW_ENV | NDRPDR
| ... | IP4FWD | IPSEC | IPSECSW | ASYNC | IPSECINT | NIC_Intel-X710 | SCALE
@@ -82,7 +81,7 @@
| ${n_tunnels}= | ${8}
| ${dp_cores_count}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4dst${n_tunnels}-udir
+| ${traffic_profile}= | trex-stl-ethip4-ip4dst${n_tunnels}-udir
| ${traffic_directions}= | ${1}
*** Keywords ***
diff --git a/tests/vpp/perf/crypto/regenerate_testcases.py b/tests/vpp/perf/crypto/regenerate_testcases.py
index 87521e662d..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) 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/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-gso-iperf3-mrr.robot b/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-gso-iperf3-mrr.robot
index 4abc4893f0..862ac91203 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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-iperf3-mrr.robot b/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2tap-iperf3-mrr.robot
index 6d64c05fdd..c093208afb 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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-2vhost-gso-iperf3-mrr.robot b/tests/vpp/perf/gso/2n1l-10ge2p1x710-ethip4-ip4base-2vhost-gso-iperf3-mrr.robot
index 858269258a..c5c2e494f5 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -41,7 +41,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | ping_plugin.so | perfmon_plugin.so
+| @{plugins_to_enable}= | ping_plugin.so | perfmon_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vhost
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
index 9f925fb01a..f5d6db5b1a 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -41,7 +41,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | ping_plugin.so | perfmon_plugin.so
+| @{plugins_to_enable}= | ping_plugin.so | perfmon_plugin.so | vhost_plugin.so
| ${crypto_type}= | ${None}
| ${nic_name}= | Intel-X710
| ${nic_driver}= | vhost
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 72952b00a7..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) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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-nsim-ldpreload-iperf3-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpbase-nsim-ldpreload-iperf3-bps.robot
index bca2bcf5d1..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) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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-ip4tcpscale1cl10s-ldpreload-iperf3-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-ldpreload-iperf3-bps.robot
index 79c6db294b..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) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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-ip4tcpscale1cl10s-nsim-ldpreload-iperf3-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-nsim-ldpreload-iperf3-bps.robot
index b21623606a..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) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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-ip4udpbase-ldpreload-iperf3-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpbase-ldpreload-iperf3-bps.robot
index 0717e39dc7..a77e25f287 100644
--- a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpbase-ldpreload-iperf3-bps.robot
+++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpbase-ldpreload-iperf3-bps.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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-ip4udpquicbase-vppecho-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicbase-vppecho-bps.robot
index 6077a7abf4..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) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -40,7 +40,7 @@
| ... | - **[Ref] Applicable standard specifications:**
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
@@ -50,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 a853579acd..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) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -41,7 +41,7 @@
| ... | - **[Ref] Applicable standard specifications:**
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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 c1deff32ea..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) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -41,7 +41,7 @@
| ... | - **[Ref] Applicable standard specifications:**
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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 28549bb709..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) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -41,7 +41,7 @@
| ... | - **[Ref] Applicable standard specifications:**
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
index 42fd601bb6..a516acf456 100644
--- a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpscale1cl10s-ldpreload-iperf3-bps.robot
+++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpscale1cl10s-ldpreload-iperf3-bps.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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/2n1l-10ge2p1x710-eth-ip4tcphttp-dma-ldpreload-nginx-1_21_5-cps.robot b/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-dma-ldpreload-nginx-1_21_5-cps.robot
new file mode 100644
index 0000000000..1d3d9f91bd
--- /dev/null
+++ b/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-dma-ldpreload-nginx-1_21_5-cps.robot
@@ -0,0 +1,122 @@
+# 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
+| 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 | DMA
+| ... | eth-ip4tcphttp-dma-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 second.**
+| ... |
+| ... | - **[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
+| ... | dma_intel_plugin.so | ping_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}
+#| ${page_size}= | 1G
+| ${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
+| ${use_dma}= | ${True}
+
+*** 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 Add Additional Startup Configuration For DMA On All DUTs
+| | 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}
+| | ... | ${True}
+| | 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-dma-ldpreload-nginx-1_21_5-cps
+| | [Tags] | 0B | 1C
+| | frame_size=${0} | phy_cores=${1}
+
+| 0B-2c-eth-ip4tcphttp-dma-ldpreload-nginx-1_21_5-cps
+| | [Tags] | 0B | 2C
+| | frame_size=${0} | phy_cores=${2}
+
+| 64B-1c-eth-ip4tcphttp-dma-ldpreload-nginx-1_21_5-cps
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-eth-ip4tcphttp-dma-ldpreload-nginx-1_21_5-cps
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 1024B-1c-eth-ip4tcphttp-dma-ldpreload-nginx-1_21_5-cps
+| | [Tags] | 1024B | 1C
+| | frame_size=${1024} | phy_cores=${1}
+
+| 1024B-2c-eth-ip4tcphttp-dma-ldpreload-nginx-1_21_5-cps
+| | [Tags] | 1024B | 2C
+| | frame_size=${1024} | phy_cores=${2}
+
+| 2048B-1c-eth-ip4tcphttp-dma-ldpreload-nginx-1_21_5-cps
+| | [Tags] | 2048B | 1C
+| | frame_size=${2048} | phy_cores=${1}
+
+| 2048B-2c-eth-ip4tcphttp-dma-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-dma-ldpreload-nginx-1_21_5-rps.robot b/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-dma-ldpreload-nginx-1_21_5-rps.robot
new file mode 100644
index 0000000000..667ea038b6
--- /dev/null
+++ b/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-dma-ldpreload-nginx-1_21_5-rps.robot
@@ -0,0 +1,122 @@
+# 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
+| 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 | DMA
+| ... | eth-ip4tcphttp-dma-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
+| ... | dma_intel_plugin.so | ping_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}
+#| ${page_size}= | 1G
+| ${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
+| ${use_dma}= | ${True}
+
+*** 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 Add Additional Startup Configuration For DMA On All DUTs
+| | 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}
+| | ... | ${True}
+| | 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-dma-ldpreload-nginx-1_21_5-rps
+| | [Tags] | 0B | 1C
+| | frame_size=${0} | phy_cores=${1}
+
+| 0B-2c-eth-ip4tcphttp-dma-ldpreload-nginx-1_21_5-rps
+| | [Tags] | 0B | 2C
+| | frame_size=${0} | phy_cores=${2}
+
+| 64B-1c-eth-ip4tcphttp-dma-ldpreload-nginx-1_21_5-rps
+| | [Tags] | 64B | 1C
+| | frame_size=${64} | phy_cores=${1}
+
+| 64B-2c-eth-ip4tcphttp-dma-ldpreload-nginx-1_21_5-rps
+| | [Tags] | 64B | 2C
+| | frame_size=${64} | phy_cores=${2}
+
+| 1024B-1c-eth-ip4tcphttp-dma-ldpreload-nginx-1_21_5-rps
+| | [Tags] | 1024B | 1C
+| | frame_size=${1024} | phy_cores=${1}
+
+| 1024B-2c-eth-ip4tcphttp-dma-ldpreload-nginx-1_21_5-rps
+| | [Tags] | 1024B | 2C
+| | frame_size=${1024} | phy_cores=${2}
+
+| 2048B-1c-eth-ip4tcphttp-dma-ldpreload-nginx-1_21_5-rps
+| | [Tags] | 2048B | 1C
+| | frame_size=${2048} | phy_cores=${1}
+
+| 2048B-2c-eth-ip4tcphttp-dma-ldpreload-nginx-1_21_5-rps
+| | [Tags] | 2048B | 2C
+| | frame_size=${2048} | phy_cores=${2}
diff --git a/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_14_2-cps.robot b/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_14_2-cps.robot
deleted file mode 100644
index 0dcd63f3ed..0000000000
--- a/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_14_2-cps.robot
+++ /dev/null
@@ -1,123 +0,0 @@
-# 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
-| 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_14_2
-|
-| 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.14.2
-
-*** 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}
-| | FOR | ${dut} | IN | @{duts}
-| | | Import Library | resources.libraries.python.VppConfigGenerator
-| | | ... | WITH NAME | ${dut}
-| | | Run keyword | ${dut}.Add Session Event Queues Memfd Segment
-| | | Run keyword | ${dut}.Add tcp congestion control algorithm
-| | | Run keyword | ${dut}.Add session enable
-| | END
-| | 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 DUT node | ${dut1} | ${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_14_2-cps
-| | [Tags] | 0B | 1C
-| | frame_size=${0} | phy_cores=${1}
-
-| 0B-2c-eth-ip4tcphttp-ldpreload-nginx-1_14_2-cps
-| | [Tags] | 0B | 2C
-| | frame_size=${0} | phy_cores=${2}
-
-| 64B-1c-eth-ip4tcphttp-ldpreload-nginx-1_14_2-cps
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-eth-ip4tcphttp-ldpreload-nginx-1_14_2-cps
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 1024B-1c-eth-ip4tcphttp-ldpreload-nginx-1_14_2-cps
-| | [Tags] | 1024B | 1C
-| | frame_size=${1024} | phy_cores=${1}
-
-| 1024B-2c-eth-ip4tcphttp-ldpreload-nginx-1_14_2-cps
-| | [Tags] | 1024B | 2C
-| | frame_size=${1024} | phy_cores=${2}
-
-| 2048B-1c-eth-ip4tcphttp-ldpreload-nginx-1_14_2-cps
-| | [Tags] | 2048B | 1C
-| | frame_size=${2048} | phy_cores=${1}
-
-| 2048B-2c-eth-ip4tcphttp-ldpreload-nginx-1_14_2-cps
-| | [Tags] | 2048B | 2C
-| | frame_size=${2048} | phy_cores=${2}
diff --git a/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_14_2-rps.robot b/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_14_2-rps.robot
deleted file mode 100644
index 42524f0da4..0000000000
--- a/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_14_2-rps.robot
+++ /dev/null
@@ -1,123 +0,0 @@
-# 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
-| 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_14_2
-|
-| 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.14.2
-
-*** 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}
-| | FOR | ${dut} | IN | @{duts}
-| | | Import Library | resources.libraries.python.VppConfigGenerator
-| | | ... | WITH NAME | ${dut}
-| | | Run keyword | ${dut}.Add Session Event Queues Memfd Segment
-| | | Run keyword | ${dut}.Add tcp congestion control algorithm
-| | | Run keyword | ${dut}.Add session enable
-| | END
-| | 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 DUT node | ${dut1} | ${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_14_2-rps
-| | [Tags] | 0B | 1C
-| | frame_size=${0} | phy_cores=${1}
-
-| 0B-2c-eth-ip4tcphttp-ldpreload-nginx-1_14_2-rps
-| | [Tags] | 0B | 2C
-| | frame_size=${0} | phy_cores=${2}
-
-| 64B-1c-eth-ip4tcphttp-ldpreload-nginx-1_14_2-rps
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-eth-ip4tcphttp-ldpreload-nginx-1_14_2-rps
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 1024B-1c-eth-ip4tcphttp-ldpreload-nginx-1_14_2-rps
-| | [Tags] | 1024B | 1C
-| | frame_size=${1024} | phy_cores=${1}
-
-| 1024B-2c-eth-ip4tcphttp-ldpreload-nginx-1_14_2-rps
-| | [Tags] | 1024B | 2C
-| | frame_size=${1024} | phy_cores=${2}
-
-| 2048B-1c-eth-ip4tcphttp-ldpreload-nginx-1_14_2-rps
-| | [Tags] | 2048B | 1C
-| | frame_size=${2048} | phy_cores=${1}
-
-| 2048B-2c-eth-ip4tcphttp-ldpreload-nginx-1_14_2-rps
-| | [Tags] | 2048B | 2C
-| | frame_size=${2048} | phy_cores=${2}
diff --git a/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps.robot b/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps.robot
deleted file mode 100644
index faee23794d..0000000000
--- a/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps.robot
+++ /dev/null
@@ -1,123 +0,0 @@
-# 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
-| 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_15_0
-|
-| 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.15.0
-
-*** 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}
-| | FOR | ${dut} | IN | @{duts}
-| | | Import Library | resources.libraries.python.VppConfigGenerator
-| | | ... | WITH NAME | ${dut}
-| | | Run keyword | ${dut}.Add Session Event Queues Memfd Segment
-| | | Run keyword | ${dut}.Add tcp congestion control algorithm
-| | | Run keyword | ${dut}.Add session enable
-| | END
-| | 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 DUT node | ${dut1} | ${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_15_0-cps
-| | [Tags] | 0B | 1C
-| | frame_size=${0} | phy_cores=${1}
-
-| 0B-2c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps
-| | [Tags] | 0B | 2C
-| | frame_size=${0} | phy_cores=${2}
-
-| 64B-1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 1024B-1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps
-| | [Tags] | 1024B | 1C
-| | frame_size=${1024} | phy_cores=${1}
-
-| 1024B-2c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps
-| | [Tags] | 1024B | 2C
-| | frame_size=${1024} | phy_cores=${2}
-
-| 2048B-1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps
-| | [Tags] | 2048B | 1C
-| | frame_size=${2048} | phy_cores=${1}
-
-| 2048B-2c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-cps
-| | [Tags] | 2048B | 2C
-| | frame_size=${2048} | phy_cores=${2}
diff --git a/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps.robot b/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps.robot
deleted file mode 100644
index 4ea86b3b2f..0000000000
--- a/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps.robot
+++ /dev/null
@@ -1,123 +0,0 @@
-# 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
-| 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_15_0
-|
-| 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.15.0
-
-*** 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}
-| | FOR | ${dut} | IN | @{duts}
-| | | Import Library | resources.libraries.python.VppConfigGenerator
-| | | ... | WITH NAME | ${dut}
-| | | Run keyword | ${dut}.Add Session Event Queues Memfd Segment
-| | | Run keyword | ${dut}.Add tcp congestion control algorithm
-| | | Run keyword | ${dut}.Add session enable
-| | END
-| | 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 DUT node | ${dut1} | ${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_15_0-rps
-| | [Tags] | 0B | 1C
-| | frame_size=${0} | phy_cores=${1}
-
-| 0B-2c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps
-| | [Tags] | 0B | 2C
-| | frame_size=${0} | phy_cores=${2}
-
-| 64B-1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 1024B-1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps
-| | [Tags] | 1024B | 1C
-| | frame_size=${1024} | phy_cores=${1}
-
-| 1024B-2c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps
-| | [Tags] | 1024B | 2C
-| | frame_size=${1024} | phy_cores=${2}
-
-| 2048B-1c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps
-| | [Tags] | 2048B | 1C
-| | frame_size=${2048} | phy_cores=${1}
-
-| 2048B-2c-eth-ip4tcphttp-ldpreload-nginx-1_15_0-rps
-| | [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-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 87521e662d..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) 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/ip4/10ge2p1x710-dot1q-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-dot1q-ip4base-ndrpdr.robot
index 4d771000a8..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) 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:
@@ -71,7 +71,7 @@
| ${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
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 05dfe49d58..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:
@@ -64,7 +64,7 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
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 fcc0b82d33..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) 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:
@@ -64,7 +64,7 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
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 0fe5751ff4..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) 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:
@@ -68,7 +68,7 @@
| ${eir}= | ${150}
| ${dscp}= | AF22
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-ndrpdr.robot
index 6161cef189..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) 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:
@@ -63,7 +63,7 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
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 cb9b486411..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) 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:
@@ -64,7 +64,7 @@
| ${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
@@ -90,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 f5f0f6d862..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:
@@ -64,7 +64,7 @@
| ${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
@@ -90,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 46a544bbc6..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) 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:
@@ -64,7 +64,7 @@
| ${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
@@ -90,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 451bdf2e5a..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:
@@ -64,7 +64,7 @@
| ${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
@@ -90,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 24be059f98..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) 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:
@@ -64,7 +64,7 @@
| ${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
@@ -90,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 a593b32556..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:
@@ -64,7 +64,7 @@
| ${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
@@ -90,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 b68aa218d0..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 62b3e6c7fc..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 625fae6c0a..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 c8f646f41a..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 7d072e555b..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 fb9ac80bf2..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 e38db8e231..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 918ed659b7..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 d21045a7d1..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 58271d3c56..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 a5d928edb5..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 9ef49dc925..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 5d8d8d3ea1..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 a11300ca9b..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 d3833e3723..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 603b512ae3..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 fda09c44f8..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 628c4aa92b..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 cef9a2bc33..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 451ffec339..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 f52d0431ee..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 ba4cf482b5..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 2c908cfb28..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 1a1bf0f9d4..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 f43f3cc8eb..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 b1d6c981e0..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 912b63da32..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 fa83982287..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 04bb3211fa..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 f574196840..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 4be9055071..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 40d37e611e..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 273b5e2a79..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 7a0ecc5599..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 3e6e11906a..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 01392e4aaf..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) 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:
@@ -80,7 +80,7 @@
| ${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
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 b844840778..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) 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:
@@ -71,7 +71,7 @@
| ${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
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 478f7d973e..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:
@@ -64,7 +64,7 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
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 c2a790a2eb..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) 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:
@@ -64,7 +64,7 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
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 3603125e1b..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) 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:
@@ -67,7 +67,7 @@
| ${eir}= | ${150}
| ${dscp}= | AF22
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
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 4679b9b9bd..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) 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:
@@ -63,7 +63,7 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
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 a894529ff2..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) 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:
@@ -64,7 +64,7 @@
| ${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
@@ -90,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 f7ce70c3bf..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:
@@ -65,7 +65,7 @@
| ${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
@@ -91,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 27cc66acc5..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) 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:
@@ -64,7 +64,7 @@
| ${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
@@ -90,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 d900f5f66c..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:
@@ -65,7 +65,7 @@
| ${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
@@ -91,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 f3203989ea..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) 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:
@@ -64,7 +64,7 @@
| ${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
@@ -90,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 ffab0d3f11..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:
@@ -65,7 +65,7 @@
| ${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
@@ -91,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 7631571404..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) 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/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
index 530da192cc..32f03827f7 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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/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 13bf271534..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) 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/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
index 39364cee13..fd6a71d473 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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/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 c61412a9f0..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) 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/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
index 451e4bcc33..b34a62f424 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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/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 92300bddfd..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) 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/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
index f9c20a82ea..e28823de6c 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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/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 b9f4ff59c1..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) 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/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
index 282c6c617e..e0f0f287de 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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/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 824cc6f0f4..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) 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/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
index a14a655cf6..1f2c7a1a69 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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/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 f85f6e1114..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) 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/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
index 1c7855630e..1f163c4b86 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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/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 5372b2e9ce..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) 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/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
index 3758c30dd2..82b6adab22 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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/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 c3aa83e37e..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) 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/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
index e006a1b2bc..f21131ad06 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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/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 5399ff7369..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) 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/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
index 0ab425b9b0..7ef60af30d 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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/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 1785cd0505..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) 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/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
index 8fe47539de..e1e755cafa 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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/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 bf1c6d9c69..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) 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/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
index 05bff4db24..7a7b6f2b13 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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/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 96baa98a8e..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) 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/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
index 3fd9552d28..75279120ba 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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/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 0e94b882f6..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) 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/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
index ee4b6a4a8d..a92513cd4e 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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/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 02190615c3..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) 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/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
index 592efc5ed4..8f10ed040e 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl1sf-10kflows-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl1sf-10kflows-ndrpdr.robot
index 4ac0c394f7..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) 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:
@@ -79,7 +79,7 @@
| ${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
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 21681928ae..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) 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:
@@ -79,7 +79,7 @@
| ${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
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 4f01fab94b..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) 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:
@@ -79,7 +79,7 @@
| ${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
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 7a3060bcd0..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) 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:
@@ -79,7 +79,7 @@
| ${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
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 91a3ef584d..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) 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:
@@ -79,7 +79,7 @@
| ${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
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 2bf5f7d89c..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) 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:
@@ -79,7 +79,7 @@
| ${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
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 1eb8b091c6..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) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -91,7 +91,7 @@
| ${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
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 64b7954e2f..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) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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/2n1l-10ge2p1x710-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h16384-p63-s1032192-ndrpdr.robot
index df584d4aeb..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) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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/2n1l-10ge2p1x710-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h262144-p63-s16515072-ndrpdr.robot
index af8145d3d1..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) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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/2n1l-10ge2p1x710-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h4096-p63-s258048-ndrpdr.robot
index ad62d3887c..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) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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/2n1l-10ge2p1x710-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-nat44det-h65536-p63-s4128758-ndrpdr.robot
index 4a45ef8284..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) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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/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 bfcefa0f5d..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) 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/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
index 5135ac771c..e650f1022d 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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/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 0535f00eab..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) 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/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 c58c73107f..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) 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/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
index 021f787408..38205ffa72 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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/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 ab474a01e0..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) 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/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 f8e930ff31..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) 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/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
index d2b08f7e10..9cec21c2db 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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/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 77d52ab86f..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) 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/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 33c8ca99a5..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) 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/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
index 6febe234ae..1829f5d357 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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/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 586188cc65..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) 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/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 e6a2a95ddc..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) 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/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
index 0dcff13163..e7c3029064 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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/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 6776ad51ea..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) 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/ip4/regenerate_testcases.py b/tests/vpp/perf/ip4/regenerate_testcases.py
index 87521e662d..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) 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/ip4_tunnels/10ge2p1x710-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-dot1q--ethip4vxlan-l2bdscale100l2bd100vlan100vxlan-ndrpdr.robot
index 34b6170257..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) 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:
@@ -58,7 +58,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
@@ -69,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}
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 22021e1043..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) 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,7 +57,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
@@ -68,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}
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 07050239d7..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) 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,7 +57,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
@@ -68,7 +68,7 @@
| ${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}
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 ed036a3363..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) 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,7 +57,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
@@ -68,7 +68,7 @@
| ${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}
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4gtpuhw-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4gtpuhw-ip4base-ndrpdr.robot
index 86bbd56164..2dc8e88e14 100644
--- a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4gtpuhw-ip4base-ndrpdr.robot
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4gtpuhw-ip4base-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 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:
@@ -65,7 +65,7 @@
| ${osi_layer}= | L3
| ${overhead}= | ${36}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
diff --git a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4gtpusw-ip4base-ndrpdr.robot b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4gtpusw-ip4base-ndrpdr.robot
index f9cecd3bc0..e53a267242 100644
--- a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4gtpusw-ip4base-ndrpdr.robot
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4gtpusw-ip4base-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 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:
@@ -64,7 +64,7 @@
| ${osi_layer}= | L3
| ${overhead}= | ${36}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
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 687e3e1ba7..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) 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:
@@ -68,7 +68,7 @@
| ${osi_layer}= | L3
| ${overhead}= | ${8}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
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 3b74615119..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) 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:
@@ -68,7 +68,7 @@
| ${osi_layer}= | L3
| ${overhead}= | ${48}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
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
index 13d95512cd..54156cda56 100644
--- a/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard1tnlsw-ip4base-ndrpdr.robot
+++ b/tests/vpp/perf/ip4_tunnels/10ge2p1x710-ethip4udpwireguard1tnlsw-ip4base-ndrpdr.robot
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 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:
@@ -77,15 +77,15 @@
| ${dut2_if1_ip4}= | 200.0.0.2
| ${dut2_if2_ip4}= | 192.168.20.1
| ${tg_if2_ip4}= | 192.168.20.2
-| ${wg_if1_ip4}= | 192.168.110.1
-| ${wg_if2_ip4}= | 192.168.120.1
+| ${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-3n-ethip4-ip4dst${n_tunnels}
+| ${traffic_profile}= | trex-stl-ethip4-ip4src${n_tunnels}ip4dst${n_tunnels}
*** Keywords ***
| Local Template
@@ -111,7 +111,7 @@
| | When Initialize layer driver | ${nic_driver}
| | And Initialize layer interface
| | And Initialize WireGuard in 3-node circular topology
-| | And VPP WireGuard Create Tunnel Interface On DUTs
+| | 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}
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 3b2bd801a6..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) 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:
@@ -36,7 +36,7 @@
| ... | on \
| ... | TG-DUTn. Eth-IPv4-VXLAN-Eth-IPv4 is applied on link between DUTs.
| ... |
-| ... | - **[Cfg] DUT configuration:** DUT1 and DUT2 are configured with L2
+| ... | - **[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}.
@@ -56,7 +56,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
@@ -67,7 +67,7 @@
| ${osi_layer}= | L2
| ${overhead}= | ${50}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
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 5a94a7b350..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) 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:
@@ -55,7 +55,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
@@ -66,7 +66,7 @@
| ${osi_layer}= | L2
| ${overhead}= | ${50}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
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 0432fcc084..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) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -81,7 +81,7 @@
| ... | 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
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 702f40538c..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) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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,7 +80,7 @@
| ... | 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
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 f0624a207e..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:
@@ -80,7 +80,7 @@
| ... | 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
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 a930d4cf68..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) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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,7 +80,7 @@
| ... | 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
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 913858cf76..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) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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,7 +80,7 @@
| ... | 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
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 25c74b9742..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) 2022 Cisco and/or its affiliates.
+# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.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,7 +80,7 @@
| ... | 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
diff --git a/tests/vpp/perf/ip4_tunnels/regenerate_testcases.py b/tests/vpp/perf/ip4_tunnels/regenerate_testcases.py
index 87521e662d..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) 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/ip6/10ge2p1x710-dot1q-ip6base-ndrpdr.robot b/tests/vpp/perf/ip6/10ge2p1x710-dot1q-ip6base-ndrpdr.robot
index 6014571243..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) 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:
@@ -71,7 +71,7 @@
| ${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
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 d764614d5c..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:
@@ -65,7 +65,7 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip6-ip6src253
+| ${traffic_profile}= | trex-stl-ethip6-ip6src253
*** Keywords ***
| Local Template
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 598c2657fe..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) 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:
@@ -64,7 +64,7 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip6-ip6src253
+| ${traffic_profile}= | trex-stl-ethip6-ip6src253
*** Keywords ***
| Local Template
diff --git a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-ndrpdr.robot b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-ndrpdr.robot
index 41e90183fa..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) 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:
@@ -63,7 +63,7 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip6-ip6src253
+| ${traffic_profile}= | trex-stl-ethip6-ip6src253
*** Keywords ***
| Local Template
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..bbd18f049a
--- /dev/null
+++ b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6scale1m-ndrpdr.robot
@@ -0,0 +1,145 @@
+# 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
+| ... | 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 /128 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}-${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-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 42d79e471f..28190f4b8e 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:
@@ -34,7 +34,7 @@
| ... | - **[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 \
+| ... | routing and 2x100k static IPv6 /128 route entries. DUT1 and DUT2 tested \
| ... | with ${nic_name}.
| ... |
| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
@@ -65,7 +65,7 @@
| ${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
@@ -90,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 dfd56440cb..304a57976d 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:
@@ -34,7 +34,7 @@
| ... | - **[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 \
+| ... | routing and 2x100k static IPv6 /128 route entries. DUT1 and DUT2 tested \
| ... | with ${nic_name}.
| ... |
| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
@@ -65,7 +65,7 @@
| ${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
@@ -90,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 33a1a7b299..dcc361d6a0 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:
@@ -34,7 +34,7 @@
| ... | - **[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 \
+| ... | routing and 2x10k static IPv6 /128 route entries. DUT1 and DUT2 tested \
| ... | with ${nic_name}.
| ... |
| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
@@ -65,7 +65,7 @@
| ${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
@@ -90,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 83dae86089..9e3cf7ce01 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:
@@ -34,7 +34,7 @@
| ... | - **[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 \
+| ... | routing and 2x10k static IPv6 /128 route entries. DUT1 and DUT2 tested \
| ... | with ${nic_name}.
| ... |
| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
@@ -65,7 +65,7 @@
| ${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
@@ -90,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 60ad9678de..a063c4c132 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:
@@ -34,7 +34,7 @@
| ... | - **[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 \
+| ... | routing and 2x1M static IPv6 /128 route entries. DUT1 and DUT2 tested \
| ... | with ${nic_name}.
| ... |
| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
@@ -65,7 +65,7 @@
| ${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
@@ -90,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 e75a766091..a0c8c63488 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:
@@ -34,7 +34,7 @@
| ... | - **[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 \
+| ... | routing and 2x1M static IPv6 /128 route entries. DUT1 and DUT2 tested \
| ... | with ${nic_name}.
| ... |
| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
@@ -65,7 +65,7 @@
| ${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
@@ -90,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..82d345dde1
--- /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 /128 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..1fc8ecb81a
--- /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 /128 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..edd393df18
--- /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 /128 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..3c537fc157
--- /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 /128 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..142c951cb0
--- /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 /128 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..b4e9efd584
--- /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 /128 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 dcafad5897..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) 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:
@@ -70,7 +70,7 @@
| ${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
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 ab6a3b089d..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:
@@ -65,7 +65,7 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip6-ip6src253
+| ${traffic_profile}= | trex-stl-ethip6-ip6src253
*** Keywords ***
| Local Template
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 180a42fc56..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) 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:
@@ -64,7 +64,7 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip6-ip6src253
+| ${traffic_profile}= | trex-stl-ethip6-ip6src253
*** Keywords ***
| Local Template
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 64a2e289eb..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) 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:
@@ -62,7 +62,7 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip6-ip6src253
+| ${traffic_profile}= | trex-stl-ethip6-ip6src253
*** Keywords ***
| Local Template
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..acd535bc11
--- /dev/null
+++ b/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6scale1m-ndrpdr.robot
@@ -0,0 +1,144 @@
+# 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 | 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 /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, 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}-${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-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 82213a23b2..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:
@@ -34,7 +34,7 @@
| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
| ... |
| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv6 routing \
-| ... | 2x100k static IPv6 /64 route entries. DUT1 is tested with ${nic_name}.
+| ... | 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 \
@@ -64,7 +64,7 @@
| ${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
@@ -89,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 fc5253ef50..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:
@@ -34,7 +34,7 @@
| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
| ... |
| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv6 routing \
-| ... | 2x100k static IPv6 /64 route entries. DUT1 is tested with ${nic_name}.
+| ... | 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 \
@@ -64,7 +64,7 @@
| ${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
@@ -89,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 66f7d5349d..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:
@@ -34,7 +34,7 @@
| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
| ... |
| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv6 routing \
-| ... | 2x10k static IPv6 /64 route entries. DUT1 is tested with ${nic_name}.
+| ... | 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 \
@@ -64,7 +64,7 @@
| ${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
@@ -89,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 b4aefe38ef..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:
@@ -34,7 +34,7 @@
| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
| ... |
| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv6 routing \
-| ... | 2x10k static IPv6 /64 route entries. DUT1 is tested with ${nic_name}.
+| ... | 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 \
@@ -64,7 +64,7 @@
| ${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
@@ -89,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 887f10334c..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:
@@ -34,7 +34,7 @@
| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
| ... |
| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv6 routing \
-| ... | 2x1M static IPv6 /64 route entries. DUT1 is tested with ${nic_name}.
+| ... | 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 \
@@ -64,7 +64,7 @@
| ${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
@@ -89,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 879c3ce5c7..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:
@@ -34,7 +34,7 @@
| ... | - **[Enc] Packet Encapsulations:** Eth-IPv6 for IPv6 routing.
| ... |
| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv6 routing \
-| ... | 2x1M static IPv6 /64 route entries. DUT1 is tested with ${nic_name}.
+| ... | 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 \
@@ -64,7 +64,7 @@
| ${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
@@ -89,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 b1c6336c72..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) 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/ip6_tunnels/10ge2p1x710-ethip6lispip4-ip6base-ndrpdr.robot b/tests/vpp/perf/ip6_tunnels/10ge2p1x710-ethip6lispip4-ip6base-ndrpdr.robot
index 1284d541a9..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) 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:
@@ -63,7 +63,7 @@
| ${osi_layer}= | L3
| ${overhead}= | ${48}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip6-ip6src253
+| ${traffic_profile}= | trex-stl-ethip6-ip6src253
*** Keywords ***
| Local Template
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 47fd4a8d50..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) 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:
@@ -63,7 +63,7 @@
| ${osi_layer}= | L3
| ${overhead}= | ${8}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip6-ip6src253
+| ${traffic_profile}= | trex-stl-ethip6-ip6src253
*** Keywords ***
| Local Template
diff --git a/tests/vpp/perf/ip6_tunnels/regenerate_testcases.py b/tests/vpp/perf/ip6_tunnels/regenerate_testcases.py
index b1c6336c72..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) 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/l2/10ge2p1x710-dot1ad-l2xcbase-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-dot1ad-l2xcbase-ndrpdr.robot
index 6aecbb1e80..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) 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:
@@ -71,7 +71,7 @@
| ${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
diff --git a/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2bdbasemaclrn-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2bdbasemaclrn-ndrpdr.robot
index cbde673ec1..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) 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:
@@ -71,7 +71,7 @@
| ${bd_id1}= | 1
| ${bd_id2}= | 2
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
diff --git a/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2xcbase-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2xcbase-ndrpdr.robot
index ac8ea43997..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) 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:
@@ -67,7 +67,7 @@
| ${subid}= | 10
| ${tag_rewrite}= | pop-1
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
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 e80d3cdc78..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:
@@ -82,7 +82,7 @@
| ${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
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 a259c75522..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:
@@ -82,7 +82,7 @@
| ${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
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 3ef84a7063..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:
@@ -82,7 +82,7 @@
| ${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
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 95c00c5acc..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:
@@ -82,7 +82,7 @@
| ${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
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 f8f6dfbb27..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:
@@ -82,7 +82,7 @@
| ${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
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 2d30830a10..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:
@@ -82,7 +82,7 @@
| ${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
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 557821d924..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:
@@ -82,7 +82,7 @@
| ${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
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 3b6f09a76d..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:
@@ -82,7 +82,7 @@
| ${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
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 675cbf134d..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:
@@ -82,7 +82,7 @@
| ${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
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 6a1c65f7bb..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:
@@ -82,7 +82,7 @@
| ${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
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 5fb3469dc7..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:
@@ -82,7 +82,7 @@
| ${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
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 c2dae43adf..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:
@@ -82,7 +82,7 @@
| ${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
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 01978a1b41..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:
@@ -82,7 +82,7 @@
| ${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
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 b7c1939df6..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:
@@ -82,7 +82,7 @@
| ${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
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 cfaa0063f7..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:
@@ -82,7 +82,7 @@
| ${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
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 bd81d25007..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:
@@ -82,7 +82,7 @@
| ${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
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 28de9e4354..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:
@@ -82,7 +82,7 @@
| ${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
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 64ae6b1df4..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:
@@ -82,7 +82,7 @@
| ${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
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 8f9c364698..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:
@@ -83,7 +83,7 @@
| ${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
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 6830f3556f..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:
@@ -83,7 +83,7 @@
| ${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
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 4ebe9e4a15..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:
@@ -83,7 +83,7 @@
| ${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
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 8a951d1a9a..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:
@@ -82,7 +82,7 @@
| ${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
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 35058db983..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:
@@ -82,7 +82,7 @@
| ${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
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 b167cd8684..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:
@@ -82,7 +82,7 @@
| ${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
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 a6e7aa7454..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:
@@ -82,7 +82,7 @@
| ${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
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 04ffc75b77..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:
@@ -82,7 +82,7 @@
| ${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
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 0c64674e32..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:
@@ -82,7 +82,7 @@
| ${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
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-ndrpdr.robot
index a425bb61cb..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) 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:
@@ -63,7 +63,7 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
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 fce37e5a59..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:
@@ -82,7 +82,7 @@
| ${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
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 fe9434ece8..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:
@@ -82,7 +82,7 @@
| ${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
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 108e375a0c..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:
@@ -82,7 +82,7 @@
| ${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
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 7f9c73d38c..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:
@@ -82,7 +82,7 @@
| ${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
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 406377f139..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:
@@ -82,7 +82,7 @@
| ${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
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 8c576f25b9..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:
@@ -82,7 +82,7 @@
| ${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
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 5adca7053c..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:
@@ -82,7 +82,7 @@
| ${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
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 ed7ab8d15b..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:
@@ -82,7 +82,7 @@
| ${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
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 e0d2886966..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:
@@ -82,7 +82,7 @@
| ${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
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 beb82978d8..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:
@@ -82,7 +82,7 @@
| ${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
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 a4d169ab56..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:
@@ -82,7 +82,7 @@
| ${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
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 aedb96a8b2..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:
@@ -82,7 +82,7 @@
| ${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
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 72a7b16df0..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:
@@ -82,7 +82,7 @@
| ${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
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 bd7c6e36cc..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:
@@ -82,7 +82,7 @@
| ${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
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 71a21d17dd..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:
@@ -82,7 +82,7 @@
| ${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
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 b577a8acec..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:
@@ -82,7 +82,7 @@
| ${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
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 045b1b39b6..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:
@@ -82,7 +82,7 @@
| ${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
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 fe88c5f4ce..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:
@@ -82,7 +82,7 @@
| ${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
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale100kmaclrn-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale100kmaclrn-ndrpdr.robot
index e43e6892f1..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) 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:
@@ -68,7 +68,7 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-macsrc50kdst50k
+| ${traffic_profile}= | trex-stl-ethip4-macsrc50kdst50k
*** Keywords ***
| Local Template
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale10kmaclrn-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale10kmaclrn-ndrpdr.robot
index 1d2f9a94f0..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) 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:
@@ -68,7 +68,7 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-macsrc5kdst5k
+| ${traffic_profile}= | trex-stl-ethip4-macsrc5kdst5k
*** Keywords ***
| Local Template
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale1mmaclrn-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale1mmaclrn-ndrpdr.robot
index 25af80e97d..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) 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:
@@ -68,7 +68,7 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-macsrc500kdst500k
+| ${traffic_profile}= | trex-stl-ethip4-macsrc500kdst500k
*** Keywords ***
| Local Template
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2patch-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2patch-ndrpdr.robot
index 8d42937058..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) 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:
@@ -62,7 +62,7 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2xcbase-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2xcbase-ndrpdr.robot
index b67ad4ea4a..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) 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:
@@ -62,7 +62,7 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
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 468f4eed29..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) 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/l2/2n1l-10ge2p1x710-dot1q-l2xcbase-ndrpdr.robot b/tests/vpp/perf/l2/2n1l-10ge2p1x710-dot1q-l2xcbase-ndrpdr.robot
index 7456c0b799..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) 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/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr.robot b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr.robot
index 780903e995..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:
@@ -81,7 +81,7 @@
| ${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
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 a22e4e8494..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:
@@ -81,7 +81,7 @@
| ${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
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 14fa1214f2..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:
@@ -81,7 +81,7 @@
| ${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
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 d300bc4487..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) 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:
@@ -62,7 +62,7 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
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 f6fc83ed21..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:
@@ -81,7 +81,7 @@
| ${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
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 33a82e92ba..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:
@@ -81,7 +81,7 @@
| ${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
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 6b12fc1a17..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:
@@ -67,7 +67,7 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-macsrc50kdst50k
+| ${traffic_profile}= | trex-stl-ethip4-macsrc50kdst50k
*** Keywords ***
| Local Template
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 8d19ecde87..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:
@@ -67,7 +67,7 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-macsrc5kdst5k
+| ${traffic_profile}= | trex-stl-ethip4-macsrc5kdst5k
*** Keywords ***
| Local Template
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 c8ed6a8cce..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:
@@ -67,7 +67,7 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-macsrc500kdst500k
+| ${traffic_profile}= | trex-stl-ethip4-macsrc500kdst500k
*** Keywords ***
| Local Template
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 356eff5d15..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) 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:
@@ -62,7 +62,7 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
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 aa9e0458ee..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) 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:
@@ -62,7 +62,7 @@
| ${osi_layer}= | L2
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
diff --git a/tests/vpp/perf/l2/regenerate_testcases.py b/tests/vpp/perf/l2/regenerate_testcases.py
index 87521e662d..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) 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/lb/2n1l-10ge2p1x710-ethip4-loadbalancer-l3dsr-ndrpdr.robot b/tests/vpp/perf/lb/2n1l-10ge2p1x710-ethip4-loadbalancer-l3dsr-ndrpdr.robot
index ebda8a2ea6..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) 2021 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:
@@ -63,7 +63,7 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4udp-lb
+| ${traffic_profile}= | trex-stl-ethip4udp-lb
| ${traffic_directions}= | ${1}
*** Keywords ***
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 3edefd9891..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) 2021 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:
@@ -63,7 +63,7 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4udp-lb
+| ${traffic_profile}= | trex-stl-ethip4udp-lb
| ${traffic_directions}= | ${1}
*** Keywords ***
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 20620ed210..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) 2021 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:
@@ -63,7 +63,7 @@
| ${osi_layer}= | L3
| ${overhead}= | ${0}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4udp-lb
+| ${traffic_profile}= | trex-stl-ethip4udp-lb
*** Keywords ***
| Local Template
diff --git a/tests/vpp/perf/lb/regenerate_testcases.py b/tests/vpp/perf/lb/regenerate_testcases.py
index b2108a0ac5..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) 2021 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 6305950a9d..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) 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/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 2b8dd07af8..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) 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/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 2fed1befdd..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) 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/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 acb97f0186..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) 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/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 5f2b7d885e..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) 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/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 461bb70851..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) 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/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 759dcd3ad7..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) 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/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 1a5ff16fc7..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) 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/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 1de1be0bf1..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) 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/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 270b1272bd..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) 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/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 90b0c806f8..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) 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/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 a360c5c59f..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) 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/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 80671e2a74..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) 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/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 536beb8fb5..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) 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/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 7bb3e9864c..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) 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/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 d1d65cb577..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) 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/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 eb0c84267f..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) 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/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 f141a5d481..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) 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/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 a69b285002..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) 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/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 d942801292..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) 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/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 2c59f700d0..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) 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:
@@ -115,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}
@@ -123,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}
@@ -131,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}
@@ -138,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 832714800e..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) 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/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 2ae915fcb4..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) 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/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 0ce59acd8a..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) 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/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 0015d457cc..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) 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/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 dc66918c24..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) 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/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 799dc93714..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) 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/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 ecf2d4d42a..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) 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/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 a54062105c..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) 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/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 53f8672ab6..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) 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:
@@ -114,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}
@@ -122,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}
@@ -130,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}
@@ -137,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 efbfbc2c25..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) 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:
@@ -114,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}
@@ -122,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}
@@ -130,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}
@@ -137,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 acc6e19c0c..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) 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/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 49fe257376..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) 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/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 98988a8782..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) 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/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 a9273ce6e0..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) 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/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 ed38bd9f0f..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) 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/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 474a300fb3..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) 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/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 e52a9499de..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) 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:
@@ -114,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}
@@ -122,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}
@@ -130,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}
@@ -137,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 93d32c0857..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) 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:
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 bc9efd7cf3..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) 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/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 b0b3cd3fea..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) 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:
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 82c34ba477..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) 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:
@@ -114,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}
@@ -122,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}
@@ -130,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}
@@ -137,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 87521e662d..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) 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/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
deleted file mode 100644
index 8befe8b7da..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec10000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_10000
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 8DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec10000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${8}
-| ${n_tunnels}= | ${10000}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec10000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec10000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec10000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec10000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec10000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec10000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec10000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec10000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec10000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec10000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec10000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec10000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index 14c54e8f46..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_10000
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 1DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${1}
-| ${n_tunnels}= | ${10000}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec10000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index 0fee9cf910..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_10000
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 2DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${2}
-| ${n_tunnels}= | ${10000}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec10000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index 42d3f81d72..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_10000
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 4DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${4}
-| ${n_tunnels}= | ${10000}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec10000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index 4c43bc32cc..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1000
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 8DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${8}
-| ${n_tunnels}= | ${1000}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index b32b75e6b7..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1000
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 1DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${1}
-| ${n_tunnels}= | ${1000}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index 3b73e63b99..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1000
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 2DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${2}
-| ${n_tunnels}= | ${1000}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index 1eed7ee67f..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_1000
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 4DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${4}
-| ${n_tunnels}= | ${1000}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec1000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index c712922c44..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec20000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_20000
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 8DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec20000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${8}
-| ${n_tunnels}= | ${20000}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec20000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec20000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec20000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec20000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec20000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec20000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec20000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec20000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec20000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec20000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec20000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec20000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index 5643f2f7f6..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec20000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_20000
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 1DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec20000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${1}
-| ${n_tunnels}= | ${20000}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec20000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec20000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec20000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec20000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec20000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec20000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec20000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec20000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec20000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec20000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec20000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec20000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index a0e60c657c..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec20000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_20000
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 2DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec20000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${2}
-| ${n_tunnels}= | ${20000}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec20000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec20000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec20000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec20000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec20000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec20000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec20000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec20000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec20000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec20000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec20000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec20000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index fd04f7a5f4..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec20000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_20000
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 4DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec20000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${4}
-| ${n_tunnels}= | ${20000}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec20000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec20000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec20000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec20000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec20000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec20000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec20000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec20000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec20000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec20000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec20000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec20000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index 678f90fb28..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_40000
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 8DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec40000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${8}
-| ${n_tunnels}= | ${40000}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec40000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec40000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec40000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec40000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec40000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec40000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec40000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec40000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec40000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec40000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec40000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec40000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index 414033a6b3..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_40000
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 1DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec40000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${1}
-| ${n_tunnels}= | ${40000}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec40000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec40000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec40000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec40000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec40000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec40000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec40000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec40000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec40000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec40000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec40000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec40000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index ffdbc724c6..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_40000
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 2DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec40000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${2}
-| ${n_tunnels}= | ${40000}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec40000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec40000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec40000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec40000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec40000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec40000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec40000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec40000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec40000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec40000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec40000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec40000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index 6a629f2799..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_40000
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 4DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec40000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${4}
-| ${n_tunnels}= | ${40000}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec40000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec40000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec40000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec40000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec40000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec40000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec40000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec40000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec40000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec40000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec40000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec40000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index c8bd703068..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec400tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,171 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_400
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 8DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec400tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${8}
-| ${n_tunnels}= | ${400}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec400tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec400tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec400tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec400tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec400tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec400tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec400tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec400tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec400tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec400tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec400tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec400tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index 2586f4a070..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec400tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_400
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 1DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec400tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${1}
-| ${n_tunnels}= | ${400}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec400tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec400tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec400tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec400tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec400tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec400tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec400tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec400tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec400tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec400tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec400tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec400tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index ffacd20c8b..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec400tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_400
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 2DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec400tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${2}
-| ${n_tunnels}= | ${400}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec400tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec400tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec400tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec400tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec400tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec400tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec400tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec400tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec400tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec400tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec400tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec400tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index 6ed18b156b..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec400tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_400
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 4DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec400tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${4}
-| ${n_tunnels}= | ${400}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec400tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec400tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec400tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec400tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec400tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec400tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec400tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec400tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec400tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec400tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec400tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec400tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index 450c45fe4d..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_40
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 8DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec40tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${8}
-| ${n_tunnels}= | ${40}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec40tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec40tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec40tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec40tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec40tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec40tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec40tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec40tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec40tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec40tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec40tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec40tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index 740c6b128c..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_40
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 1DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec40tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${1}
-| ${n_tunnels}= | ${40}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec40tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec40tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec40tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec40tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec40tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec40tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec40tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec40tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec40tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec40tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec40tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec40tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index a47ee55c00..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_40
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 2DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec40tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${2}
-| ${n_tunnels}= | ${40}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec40tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec40tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec40tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec40tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec40tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec40tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec40tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec40tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec40tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec40tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec40tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec40tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index c5709e5a6f..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec40tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_40
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 4DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec40tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${4}
-| ${n_tunnels}= | ${40}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec40tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec40tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec40tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec40tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec40tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec40tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec40tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec40tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec40tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec40tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec40tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec40tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index c8b8472d77..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_4
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 1DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${1}
-| ${n_tunnels}= | ${4}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec4tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index 654a8ba464..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_4
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 2DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${2}
-| ${n_tunnels}= | ${4}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec4tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index bb77b1d908..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_4
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 4DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${4}
-| ${n_tunnels}= | ${4}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec4tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index 9b2a98fdfb..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec5000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_5000
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 8DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec5000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${8}
-| ${n_tunnels}= | ${5000}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec5000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec5000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec5000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec5000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec5000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec5000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec5000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec5000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec5000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec5000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec5000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec5000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index 9be86f79e8..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec5000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_5000
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 1DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec5000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${1}
-| ${n_tunnels}= | ${5000}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec5000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec5000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec5000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec5000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec5000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec5000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec5000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec5000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec5000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec5000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec5000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec5000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index e22132637b..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec5000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_5000
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 2DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec5000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${2}
-| ${n_tunnels}= | ${5000}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec5000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec5000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec5000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec5000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec5000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec5000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec5000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec5000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec5000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec5000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec5000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec5000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index 904ea7f3df..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec5000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_5000
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 4DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec5000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${4}
-| ${n_tunnels}= | ${5000}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec5000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec5000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec5000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec5000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec5000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec5000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec5000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec5000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec5000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec5000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec5000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec5000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index e8f358e460..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec60000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_60000
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 8DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec60000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${8}
-| ${n_tunnels}= | ${60000}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec60000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec60000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec60000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec60000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec60000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec60000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec60000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec60000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec60000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec60000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec60000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec60000tnlsw-l2bd-1ch-16mif-8dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index defeaa0953..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec60000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_60000
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 1DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec60000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${1}
-| ${n_tunnels}= | ${60000}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec60000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec60000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec60000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec60000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec60000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec60000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec60000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec60000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec60000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec60000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec60000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec60000tnlsw-l2bd-1ch-2mif-1dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index f68de9b6ee..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec60000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_60000
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 2DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec60000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${2}
-| ${n_tunnels}= | ${60000}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec60000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec60000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec60000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec60000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec60000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec60000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec60000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec60000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec60000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec60000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec60000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec60000tnlsw-l2bd-1ch-4mif-2dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100644
index 77aa2c5c8e..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/10ge2p1x710-ethip4ipsec60000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr.robot
+++ /dev/null
@@ -1,172 +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 | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | TNL_60000
-| ... | IPSEC | IPSECSW | IPSECINT | NIC_Intel-X710 | SCALE | 4DCR
-| ... | DOCKER | 2R1C | NF_DENSITY | CHAIN | NF_VPPIP4 | 1DCR1T
-| ... | AES_256_GCM | AES | DRV_VFIO_PCI
-| ... | RXQ_SIZE_0 | TXQ_SIZE_0
-| ... | ethip4ipsec60000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-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 | container
-|
-| 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 \
-| ... | addresses of the TG node interfaces.
-| ... |
-| ... | - **[Ref] Applicable standard specifications:** RFC4303 and RFC2544.
-
-*** Variables ***
-| @{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}
-| ${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}= | ${54}
-| ${tg_if1_ip4}= | 192.168.10.254
-| ${dut1_if1_ip4}= | 192.168.10.11
-| ${dut1_if2_ip4}= | 100.0.0.254
-| ${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
-| ${addr_range}= | ${24}
-| ${n_instances}= | ${4}
-| ${n_tunnels}= | ${60000}
-| ${nf_dtcr}= | ${1}
-| ${nf_dtc}= | ${1}
-# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4dst${n_tunnels}-${n_instances}cnf
-# Container
-| ${container_engine}= | Docker
-| ${container_chain_topology}= | chain_ipsec
-
-*** Keywords ***
-| Local Template
-| | [Documentation]
-| | ... | - **[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.
-| |
-| | ... | *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 IPSec in 3-node circular topology
-| | And Stop VPP service on all DUTs | ${nodes}
-| | And VPP IPsec Create Tunnel Interfaces in Containers
-| | ... | ${nodes} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels}
-| | ... | ${encr_alg} | ${auth_alg} | ${laddr_ip4} | ${raddr_ip4}
-| | ... | ${addr_range} | ${n_instances}
-| | And Start containers for test
-| | ... | nf_chains=${1} | nf_nodes=${n_instances} | auto_scale=${False}
-| | ... | pinning=${False}
-| | And Start vswitch in container | phy_cores=${phy_cores} | rx_queues=${rxq}
-| | Then Find NDR and PDR intervals using optimized search
-
-*** Test Cases ***
-| 64B-1c-ethip4ipsec60000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 1C
-| | frame_size=${64} | phy_cores=${1}
-
-| 64B-2c-ethip4ipsec60000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 2C
-| | frame_size=${64} | phy_cores=${2}
-
-| 64B-4c-ethip4ipsec60000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 64B | 4C
-| | frame_size=${64} | phy_cores=${4}
-
-| 1518B-1c-ethip4ipsec60000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 1C
-| | frame_size=${1518} | phy_cores=${1}
-
-| 1518B-2c-ethip4ipsec60000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 2C
-| | frame_size=${1518} | phy_cores=${2}
-
-| 1518B-4c-ethip4ipsec60000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 1518B | 4C
-| | frame_size=${1518} | phy_cores=${4}
-
-| 9000B-1c-ethip4ipsec60000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 1C
-| | frame_size=${9000} | phy_cores=${1}
-
-| 9000B-2c-ethip4ipsec60000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 2C
-| | frame_size=${9000} | phy_cores=${2}
-
-| 9000B-4c-ethip4ipsec60000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | 9000B | 4C
-| | frame_size=${9000} | phy_cores=${4}
-
-| IMIX-1c-ethip4ipsec60000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 1C
-| | frame_size=IMIX_v4_1 | phy_cores=${1}
-
-| IMIX-2c-ethip4ipsec60000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 2C
-| | frame_size=IMIX_v4_1 | phy_cores=${2}
-
-| IMIX-4c-ethip4ipsec60000tnlsw-l2bd-1ch-8mif-4dcr1c-vppip4-aes256gcm-ndrpdr
-| | [Tags] | IMIX | 4C
-| | frame_size=IMIX_v4_1 | phy_cores=${4}
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
deleted file mode 100755
index 87521e662d..0000000000
--- a/tests/vpp/perf/nfv_density/dcr_memif/chain_ipsec/regenerate_testcases.py
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/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/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 3b672cb501..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) 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/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 be9be72c28..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) 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/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 f70330d022..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) 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/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 7b90ee1256..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) 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/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 be38caf4f9..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) 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/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 99dd4a3bed..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) 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/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 42de5f3682..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) 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/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 93a86e0952..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) 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/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 55d36087aa..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) 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/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 b8488dba2c..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) 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/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 2dee783d0a..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) 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/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 5a6878ec4e..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) 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/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 5619da47a2..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) 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/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 d794125c35..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) 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/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 a37472ecc4..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) 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/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 890a9d33d8..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) 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/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 b22a15fd70..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) 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/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 7f87e4ce90..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) 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/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 05d5b16ea5..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) 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:
@@ -114,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}
@@ -122,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}
@@ -130,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}
@@ -137,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 86cb4aaefa..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) 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/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 d3e061799f..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) 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/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 f68cbbf2b8..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) 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/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 6eeb515d11..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) 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/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 90416f60c0..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) 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/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 a59dfc4901..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) 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/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 b97c8b7763..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) 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/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 fce6314c4c..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) 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/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 7b6a93310d..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) 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/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 a1b8e16b00..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) 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/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 d3721f16de..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) 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:
@@ -114,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}
@@ -122,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}
@@ -130,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}
@@ -137,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 cab519e492..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) 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:
@@ -114,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}
@@ -122,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}
@@ -130,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}
@@ -137,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 b5a1f3872d..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) 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/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 b04420185f..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) 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/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 d577b722c6..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) 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/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 3e062b08a2..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) 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/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 92e5a664ed..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) 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:
@@ -114,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}
@@ -122,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}
@@ -130,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}
@@ -137,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 5f7280295a..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) 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/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 b759be9119..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) 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/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 fde632079b..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) 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/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 a78f82ea1f..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) 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:
@@ -114,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}
@@ -122,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}
@@ -130,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}
@@ -137,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 d82987b755..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) 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/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 60b7f8fdae..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) 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/nfv_density/dcr_memif/pipeline/regenerate_testcases.py b/tests/vpp/perf/nfv_density/dcr_memif/pipeline/regenerate_testcases.py
index 87521e662d..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) 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/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 41f465d047..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) 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,7 +57,7 @@
| ... | - **[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
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 9b38eb7677..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) 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,7 +57,7 @@
| ... | - **[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
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 cabd5af426..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) 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,7 +57,7 @@
| ... | - **[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
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 6077e3ae3f..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 9d7946a90d..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 498d0ee31f..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 df87b85c46..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 ab2e7a53e4..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 ff14e79fc9..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 288784e8ed..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 e470f9c493..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 d64420346c..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 4d6e309445..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 321da41a3e..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 657625e82f..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 6ac1160acb..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 7a92e4a61d..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 686b427361..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) 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,7 +57,7 @@
| ... | - **[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
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 d5a3c5aa4e..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) 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,7 +57,7 @@
| ... | - **[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
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 fe2a47dcca..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) 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,7 +57,7 @@
| ... | - **[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
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 66a479a402..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) 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:
@@ -57,7 +57,7 @@
| ... | - **[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
@@ -114,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}
@@ -122,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}
@@ -130,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}
@@ -137,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 11ea845ba6..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) 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,7 +57,7 @@
| ... | - **[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
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 e8614f79e0..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 428d4f27bf..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 e2d69d5305..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 7c74872319..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 ea9339334e..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 09f570b52e..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 bb13aa4464..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) 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,7 +57,7 @@
| ... | - **[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
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 2f95b64458..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) 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:
@@ -57,7 +57,7 @@
| ... | - **[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
@@ -114,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}
@@ -122,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}
@@ -130,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}
@@ -137,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 f2dd317f48..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) 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:
@@ -57,7 +57,7 @@
| ... | - **[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
@@ -114,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}
@@ -122,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}
@@ -130,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}
@@ -137,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 65810ee148..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 941af191da..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 cc962503f6..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 498d816114..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 7eb8cdeb1f..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) 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,7 +57,7 @@
| ... | - **[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
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 31c7313e22..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) 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,7 +57,7 @@
| ... | - **[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
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 3e2fb16465..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) 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:
@@ -57,7 +57,7 @@
| ... | - **[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
@@ -114,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}
@@ -122,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}
@@ -130,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}
@@ -137,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 9403733165..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 93fca9e93b..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 c83cad8fa9..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) 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,7 +57,7 @@
| ... | - **[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
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 e85f4f01f3..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) 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:
@@ -57,7 +57,7 @@
| ... | - **[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
@@ -114,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}
@@ -122,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}
@@ -130,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}
@@ -137,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 87521e662d..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) 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/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 77d05cf1c0..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 3b039b843c..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 362cf6f868..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) 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:
@@ -59,7 +59,7 @@
| ... | - **[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
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 0079641010..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) 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:
@@ -59,7 +59,7 @@
| ... | - **[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
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 ea9768e31e..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 edfe00dd11..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 bb1d9ba3e3..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) 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:
@@ -59,7 +59,7 @@
| ... | - **[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
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 2ba72ba791..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) 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:
@@ -59,7 +59,7 @@
| ... | - **[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
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 aa31b22bcc..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 15b2cb50f5..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 533e232576..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) 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:
@@ -59,7 +59,7 @@
| ... | - **[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
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 aaa862c2d8..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) 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:
@@ -59,7 +59,7 @@
| ... | - **[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
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 6a73767d73..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 89ff4ddfde..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 fd77197895..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) 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:
@@ -59,7 +59,7 @@
| ... | - **[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
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 c113b6b4f9..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) 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:
@@ -59,7 +59,7 @@
| ... | - **[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
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 cb820f1227..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) 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:
@@ -59,7 +59,7 @@
| ... | - **[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
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 8072729392..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) 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:
@@ -59,7 +59,7 @@
| ... | - **[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
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 9494cd9d51..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 6370c55d88..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 edeeb04c12..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) 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:
@@ -59,7 +59,7 @@
| ... | - **[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
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 08d87e6359..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) 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:
@@ -59,7 +59,7 @@
| ... | - **[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
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 19b19fbe3c..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 a4f594257d..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[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
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 a0ab498f84..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) 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/srv6/10ge2p1x710-ethip6ip6-ip6base-srv6enc1sid-ndrpdr.robot b/tests/vpp/perf/srv6/10ge2p1x710-ethip6ip6-ip6base-srv6enc1sid-ndrpdr.robot
index 4dddd7ccb1..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) 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:
@@ -86,7 +86,7 @@
| ${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
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 922cfea64e..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) 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:
@@ -89,7 +89,7 @@
| ${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
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 4f37c1c66f..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) 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:
@@ -89,7 +89,7 @@
| ${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
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 af154cc5ea..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) 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:
@@ -99,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
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 07f2312e81..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) 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:
@@ -99,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
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 79a298ab1e..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) 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:
@@ -99,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
diff --git a/tests/vpp/perf/srv6/regenerate_testcases.py b/tests/vpp/perf/srv6/regenerate_testcases.py
index b1c6336c72..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) 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/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 292fcadecb..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) 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,6 +60,7 @@
*** Variables ***
| @{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
@@ -81,7 +82,7 @@
| ${bd_id1}= | 1
| ${bd_id2}= | 2
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
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 d77747cf19..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) 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,6 +60,7 @@
*** Variables ***
| @{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
@@ -81,7 +82,7 @@
| ${bd_id1}= | 1
| ${bd_id2}= | 2
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
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 83ee9ba158..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) 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,6 +60,7 @@
*** Variables ***
| @{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
@@ -79,7 +80,7 @@
| ${bond_mode}= | lacp
| ${lb_mode}= | l34
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
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 0e93bf1e6c..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) 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,6 +60,7 @@
*** Variables ***
| @{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
@@ -79,7 +80,7 @@
| ${bond_mode}= | lacp
| ${lb_mode}= | l34
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
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 ca4c3fb896..0000000000
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-ndrpdr.robot
+++ /dev/null
@@ -1,165 +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 | 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 | perfmon_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 bd2009c718..0000000000
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-2lbvpplacp-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
+++ /dev/null
@@ -1,166 +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 | 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 | perfmon_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 375df7d4c5..0000000000
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr.robot
+++ /dev/null
@@ -1,162 +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 | 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 | perfmon_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 4010bf930c..0000000000
--- a/tests/vpp/perf/vm_vhost/10ge2p1x710-2lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-vppl2xc-ndrpdr.robot
+++ /dev/null
@@ -1,163 +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 | 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 | perfmon_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 8a906500cf..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) 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:
@@ -59,7 +59,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
@@ -78,7 +78,7 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
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 aefddb7f54..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) 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:
@@ -59,7 +59,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
@@ -78,7 +78,7 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
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 517310d332..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
@@ -73,7 +73,7 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
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 4246f14c9a..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
@@ -73,7 +73,7 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
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 ce423cb3d1..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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,7 +71,7 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
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 e661980a86..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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,7 +71,7 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
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 2d64a5e3a5..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) 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:
@@ -55,7 +55,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
@@ -70,7 +70,7 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
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 49e1a8f8c1..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) 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:
@@ -55,7 +55,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
@@ -70,7 +70,7 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
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 e6e00282d9..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) 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:
@@ -55,7 +55,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
@@ -70,7 +70,7 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
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 5a6f1e3cf4..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) 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:
@@ -55,7 +55,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
@@ -70,7 +70,7 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
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 73e263a1a7..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) 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,7 +57,8 @@
| ... | - **[Ref] Applicable standard specifications:** RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
@@ -74,7 +75,7 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
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 e7bef37e4c..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) 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,7 +57,8 @@
| ... | - **[Ref] Applicable standard specifications:** RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
@@ -74,7 +75,7 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-3n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
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 ce4b44e11c..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) 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:
@@ -58,7 +58,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
@@ -77,7 +77,7 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-dot1qip4asym-ip4src254
+| ${traffic_profile}= | trex-stl-dot1qip4asym-ip4src254
*** Keywords ***
| Local Template
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 bc316687f3..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) 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:
@@ -58,7 +58,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
@@ -77,7 +77,7 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-dot1qip4asym-ip4src254
+| ${traffic_profile}= | trex-stl-dot1qip4asym-ip4src254
*** Keywords ***
| Local Template
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 08a12cbddb..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) 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:
@@ -58,7 +58,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
@@ -77,7 +77,7 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-dot1qip4asym-ip4src254
+| ${traffic_profile}= | trex-stl-dot1qip4asym-ip4src254
*** Keywords ***
| Local Template
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 e928115315..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) 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,7 +57,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
@@ -74,7 +74,7 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-dot1qip4asym-ip4src254
+| ${traffic_profile}= | trex-stl-dot1qip4asym-ip4src254
*** Keywords ***
| Local Template
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 69d006e157..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) 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,7 +57,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
@@ -74,7 +74,7 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-dot1qip4asym-ip4src254
+| ${traffic_profile}= | trex-stl-dot1qip4asym-ip4src254
*** Keywords ***
| Local Template
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 21457e0d85..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) 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,7 +57,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
@@ -74,7 +74,7 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-dot1qip4asym-ip4src254
+| ${traffic_profile}= | trex-stl-dot1qip4asym-ip4src254
*** Keywords ***
| Local Template
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 ba9d42712c..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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,7 +71,7 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
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 f9e6a46dd1..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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,7 +71,7 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
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 dbfc4974ba..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) 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:
@@ -56,7 +56,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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,7 +71,7 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
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 86eb66fce0..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) 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:
@@ -55,7 +55,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
@@ -70,7 +70,7 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
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 6cf645b93e..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) 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:
@@ -55,7 +55,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
@@ -70,7 +70,7 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
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 6a8856969a..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) 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:
@@ -54,7 +54,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
@@ -69,7 +69,7 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src254
+| ${traffic_profile}= | trex-stl-ethip4-ip4src254
*** Keywords ***
| Local Template
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 1350d99041..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) 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:
@@ -55,7 +55,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
@@ -70,7 +70,7 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
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 b5233bedd2..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) 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:
@@ -55,7 +55,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
@@ -70,7 +70,7 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
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 4ca2980a2b..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) 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:
@@ -55,7 +55,7 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
@@ -70,7 +70,7 @@
| ${nf_chains}= | ${1}
| ${nf_nodes}= | ${1}
# Traffic profile:
-| ${traffic_profile}= | trex-stl-2n-ethip4-ip4src253
+| ${traffic_profile}= | trex-stl-ethip4-ip4src253
*** Keywords ***
| Local Template
diff --git a/tests/vpp/perf/vm_vhost/regenerate_testcases.py b/tests/vpp/perf/vm_vhost/regenerate_testcases.py
index 87521e662d..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) 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/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 6072b5371a..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) 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:
@@ -59,6 +59,7 @@
*** Variables ***
| @{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
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 a38d5b8d55..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) 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:
@@ -59,6 +59,7 @@
*** Variables ***
| @{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
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 c62b53a72d..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) 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:
@@ -58,7 +58,8 @@
| ... | - **[Ref] Applicable standard specifications:** RFC2544, RFC7348.
*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_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
diff --git a/tests/vpp/perf/vts/regenerate_testcases.py b/tests/vpp/perf/vts/regenerate_testcases.py
index 85a40e61e0..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) 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/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/lf_2n_clx_testbed27.yaml b/topologies/available/lf_2n_clx_testbed27.yaml
index 2373d98277..63e16d90e2 100644
--- a/topologies/available/lf_2n_clx_testbed27.yaml
+++ b/topologies/available/lf_2n_clx_testbed27.yaml
@@ -16,22 +16,22 @@ nodes:
username: testuser
password: Csit1234
interfaces:
- #port1:
- # # s34-t27-tg1-c2/p1 - 10GE port1 on Intel NIC x710 4p10GE.
- # mac_address: "3c:fd:fe:ca:e9:88"
- # pci_address: "0000:18:00.0"
- # ip4_address: "172.16.10.2"
- # driver: i40e
- # link: link1
- # model: Intel-X710
- #port2:
- # # s34-t27-tg1-c2/p2 - 10GE port2 on Intel NIC x710 4p10GE.
- # mac_address: "3c:fd:fe:ca:e9:89"
- # pci_address: "0000:18:00.1"
- # ip4_address: "172.16.20.2"
- # driver: i40e
- # link: link2
- # model: Intel-X710
+ port1:
+ # s34-t27-tg1-c2/p1 - 10GE port1 on Intel NIC x710 4p10GE.
+ mac_address: "3c:fd:fe:ca:e9:88"
+ pci_address: "0000:18:00.0"
+ ip4_address: "172.16.10.2"
+ driver: i40e
+ link: disabled1
+ model: Intel-X710
+ port2:
+ # s34-t27-tg1-c2/p2 - 10GE port2 on Intel NIC x710 4p10GE.
+ mac_address: "3c:fd:fe:ca:e9:89"
+ pci_address: "0000:18:00.1"
+ ip4_address: "172.16.20.2"
+ driver: i40e
+ link: disabled2
+ model: Intel-X710
port3:
# s34-t27-tg1-c2/p3 - 10GE port3 on Intel NIC x710 4p10GE.
mac_address: "3c:fd:fe:ca:e9:8a"
@@ -121,22 +121,22 @@ nodes:
password: Csit1234
uio_driver: vfio-pci
interfaces:
- #port1:
- # # s33-t27-sut1-c2/p1 - 10GE port1 on Intel NIC x710 4p10GE.
- # mac_address: "3c:fd:fe:ca:e9:98"
- # pci_address: "0000:18:00.0"
- # ip4_address: "172.16.10.1"
- # driver: i40e
- # link: link1
- # model: Intel-X710
- #port2:
- # # s33-t27-sut1-c2/p2 - 10GE port2 on Intel NIC x710 4p10GE.
- # mac_address: "3c:fd:fe:ca:e9:99"
- # pci_address: "0000:18:00.1"
- # ip4_address: "172.16.20.1"
- # driver: i40e
- # link: link2
- # model: Intel-X710
+ port1:
+ # s33-t27-sut1-c2/p1 - 10GE port1 on Intel NIC x710 4p10GE.
+ mac_address: "3c:fd:fe:ca:e9:98"
+ pci_address: "0000:18:00.0"
+ ip4_address: "172.16.10.1"
+ driver: i40e
+ link: disabled3
+ model: Intel-X710
+ port2:
+ # s33-t27-sut1-c2/p2 - 10GE port2 on Intel NIC x710 4p10GE.
+ mac_address: "3c:fd:fe:ca:e9:99"
+ pci_address: "0000:18:00.1"
+ ip4_address: "172.16.20.1"
+ driver: i40e
+ link: disabled4
+ model: Intel-X710
port3:
# s33-t27-sut1-c2/p3 - 10GE port3 on Intel NIC x710 4p10GE.
mac_address: "3c:fd:fe:ca:e9:9a"
@@ -179,7 +179,7 @@ nodes:
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.80.1"
driver: mlx5_core
diff --git a/topologies/available/lf_2n_clx_testbed28.yaml b/topologies/available/lf_2n_clx_testbed28.yaml
index 53d14a10bb..771cb20c52 100644
--- a/topologies/available/lf_2n_clx_testbed28.yaml
+++ b/topologies/available/lf_2n_clx_testbed28.yaml
@@ -16,22 +16,22 @@ nodes:
username: testuser
password: Csit1234
interfaces:
- #port1:
- # # s36-t28-tg1-c2/p1 - 10GE port1 on Intel NIC x710 4p10GE.
- # mac_address: "3c:fd:fe:ca:e8:28"
- # pci_address: "0000:18:00.0"
- # ip4_address: "172.16.10.2"
- # driver: i40e
- # link: link1
- # model: Intel-X710
- #port2:
- # # s36-t28-tg1-c2/p2 - 10GE port2 on Intel NIC x710 4p10GE.
- # mac_address: "3c:fd:fe:ca:e8:29"
- # pci_address: "0000:18:00.1"
- # ip4_address: "172.16.20.2"
- # driver: i40e
- # link: link2
- # model: Intel-X710
+ port1:
+ # s36-t28-tg1-c2/p1 - 10GE port1 on Intel NIC x710 4p10GE.
+ mac_address: "3c:fd:fe:ca:e8:28"
+ pci_address: "0000:18:00.0"
+ ip4_address: "172.16.10.2"
+ driver: i40e
+ link: disabled1
+ model: Intel-X710
+ port2:
+ # s36-t28-tg1-c2/p2 - 10GE port2 on Intel NIC x710 4p10GE.
+ mac_address: "3c:fd:fe:ca:e8:29"
+ pci_address: "0000:18:00.1"
+ ip4_address: "172.16.20.2"
+ driver: i40e
+ link: disabled2
+ model: Intel-X710
port3:
# s36-t28-tg1-c2/p3 - 10GE port3 on Intel NIC x710 4p10GE.
mac_address: "3c:fd:fe:ca:e8:2a"
@@ -121,22 +121,22 @@ nodes:
password: Csit1234
uio_driver: vfio-pci
interfaces:
- #port1:
- # # s35-t28-sut1-c2/p1 - 10GE port1 on Intel NIC x710 4p10GE.
- # mac_address: "3c:fd:fe:ca:e3:b0"
- # pci_address: "0000:18:00.0"
- # ip4_address: "172.16.10.1"
- # driver: i40e
- # link: link1
- # model: Intel-X710
- #port2:
- # # s35-t28-sut1-c2/p2 - 10GE port2 on Intel NIC x710 4p10GE.
- # mac_address: "3c:fd:fe:ca:e3:b1"
- # pci_address: "0000:18:00.1"
- # ip4_address: "172.16.20.1"
- # driver: i40e
- # link: link2
- # model: Intel-X710
+ port1:
+ # s35-t28-sut1-c2/p1 - 10GE port1 on Intel NIC x710 4p10GE.
+ mac_address: "3c:fd:fe:ca:e3:b0"
+ pci_address: "0000:18:00.0"
+ ip4_address: "172.16.10.1"
+ driver: i40e
+ link: disabled3
+ model: Intel-X710
+ port2:
+ # s35-t28-sut1-c2/p2 - 10GE port2 on Intel NIC x710 4p10GE.
+ mac_address: "3c:fd:fe:ca:e3:b1"
+ pci_address: "0000:18:00.1"
+ ip4_address: "172.16.20.1"
+ driver: i40e
+ link: disabled4
+ model: Intel-X710
port3:
# s35-t28-sut1-c2/p3 - 10GE port3 on Intel NIC x710 4p10GE.
mac_address: "3c:fd:fe:ca:e3:b2"
diff --git a/topologies/available/lf_2n_clx_testbed29.yaml b/topologies/available/lf_2n_clx_testbed29.yaml
index e21cdef843..24cba15af9 100644
--- a/topologies/available/lf_2n_clx_testbed29.yaml
+++ b/topologies/available/lf_2n_clx_testbed29.yaml
@@ -16,22 +16,22 @@ nodes:
username: testuser
password: Csit1234
interfaces:
- #port1:
- # # s38-t29-tg1-c2/p1 - 10GE port1 on Intel NIC x710 4p10GE.
- # mac_address: "3c:fd:fe:a8:b1:90"
- # pci_address: "0000:18:00.0"
- # ip4_address: "172.16.10.2"
- # driver: i40e
- # link: link1
- # model: Intel-X710
- #port2:
- # # s38-t29-tg1-c2/p2 - 10GE port2 on Intel NIC x710 4p10GE.
- # mac_address: "3c:fd:fe:a8:b1:91"
- # pci_address: "0000:18:00.1"
- # ip4_address: "172.16.20.2"
- # driver: i40e
- # link: link2
- # model: Intel-X710
+ port1:
+ # s38-t29-tg1-c2/p1 - 10GE port1 on Intel NIC x710 4p10GE.
+ mac_address: "3c:fd:fe:a8:b1:90"
+ pci_address: "0000:18:00.0"
+ ip4_address: "172.16.10.2"
+ driver: i40e
+ link: disabled1
+ model: Intel-X710
+ port2:
+ # s38-t29-tg1-c2/p2 - 10GE port2 on Intel NIC x710 4p10GE.
+ mac_address: "3c:fd:fe:a8:b1:91"
+ pci_address: "0000:18:00.1"
+ ip4_address: "172.16.20.2"
+ driver: i40e
+ link: disabled2
+ model: Intel-X710
port3:
# s38-t29-tg1-c2/p3 - 10GE port3 on Intel NIC x710 4p10GE.
mac_address: "3c:fd:fe:a8:b1:92"
@@ -105,22 +105,22 @@ nodes:
password: Csit1234
uio_driver: vfio-pci
interfaces:
- #port1:
- # # s37-t29-sut1-c2/p1 - 10GE port1 on Intel NIC x710 4p10GE.
- # mac_address: "3c:fd:fe:ca:eb:10"
- # pci_address: "0000:18:00.0"
- # ip4_address: "172.16.10.1"
- # driver: i40e
- # link: link1
- # model: Intel-X710
- #port2:
- # # s37-t29-sut1-c2/p2 - 10GE port2 on Intel NIC x710 4p10GE.
- # mac_address: "3c:fd:fe:ca:eb:11"
- # pci_address: "0000:18:00.1"
- # ip4_address: "172.16.20.1"
- # driver: i40e
- # link: link2
- # model: Intel-X710
+ port1:
+ # s37-t29-sut1-c2/p1 - 10GE port1 on Intel NIC x710 4p10GE.
+ mac_address: "3c:fd:fe:ca:eb:10"
+ pci_address: "0000:18:00.0"
+ ip4_address: "172.16.10.1"
+ driver: i40e
+ link: disabled3
+ model: Intel-X710
+ port2:
+ # s37-t29-sut1-c2/p2 - 10GE port2 on Intel NIC x710 4p10GE.
+ mac_address: "3c:fd:fe:ca:eb:11"
+ pci_address: "0000:18:00.1"
+ ip4_address: "172.16.20.1"
+ driver: i40e
+ link: disabled4
+ model: Intel-X710
port3:
# s37-t29-sut1-c2/p3 - 10GE port3 on Intel NIC x710 4p10GE.
mac_address: "3c:fd:fe:ca:eb:12"
diff --git a/topologies/available/lf_2n_dnv_testbed26.yaml b/topologies/available/lf_2n_dnv_testbed26.yaml
deleted file mode 100644
index d0bca7d84a..0000000000
--- a/topologies/available/lf_2n_dnv_testbed26.yaml
+++ /dev/null
@@ -1,53 +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
- cryptodev: "0000:01:00.0"
- 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
index 8676a9b6be..5ea3d46772 100644
--- a/topologies/available/lf_2n_icx_testbed212.yaml
+++ b/topologies/available/lf_2n_icx_testbed212.yaml
@@ -81,20 +81,36 @@ nodes:
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.90.2"
+ ip4_address: "172.16.110.2"
driver: ice
- link: link9
+ link: link11
model: Intel-E810CQ
- port10:
+ 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.100.2"
+ ip4_address: "172.16.120.2"
driver: ice
- link: link9
+ link: link11
model: Intel-E810CQ
DUT1:
type: DUT
@@ -169,3 +185,19 @@ nodes:
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
index fac1e866ba..2f7536ce76 100644
--- a/topologies/available/lf_2n_icx_testbed213.yaml
+++ b/topologies/available/lf_2n_icx_testbed213.yaml
@@ -81,20 +81,36 @@ nodes:
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.90.2"
+ ip4_address: "172.16.110.2"
driver: ice
- link: link9
+ link: link11
model: Intel-E810CQ
- port10:
+ 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.100.2"
+ ip4_address: "172.16.110.2"
driver: ice
- link: link9
+ link: link11
model: Intel-E810CQ
DUT1:
type: DUT
@@ -169,3 +185,19 @@ nodes:
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
index bdd7132f17..03bb8c22e1 100644
--- a/topologies/available/lf_2n_icx_testbed214.yaml
+++ b/topologies/available/lf_2n_icx_testbed214.yaml
@@ -81,20 +81,36 @@ nodes:
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.90.2"
+ ip4_address: "172.16.100.2"
driver: ice
- link: link9
+ link: link11
model: Intel-E810CQ
- port10:
+ 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.100.2"
+ ip4_address: "172.16.110.2"
driver: ice
- link: link9
+ link: link11
model: Intel-E810CQ
DUT1:
type: DUT
@@ -111,7 +127,7 @@ nodes:
pci_address: "0000:17:00.0"
ip4_address: "172.16.10.1"
driver: ice
- link: link1
+ link: link2
model: Intel-E810CQ
port2:
# s85-t214-sut1-c9/p2 - 100GE port2 Intel E810-CQDA2 2p100GE.
@@ -119,7 +135,7 @@ nodes:
pci_address: "0000:19:00.0"
ip4_address: "172.16.20.1"
driver: ice
- link: link2
+ link: link1
model: Intel-E810CQ
port3:
# s85-t214-sut1-c4/p1 - 25GE port1 Intel E810-XXVDA4 4p25GE.
@@ -169,3 +185,19 @@ nodes:
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
index 19edc5e396..6b0b0dee0c 100644
--- a/topologies/available/lf_2n_icx_testbed215.yaml
+++ b/topologies/available/lf_2n_icx_testbed215.yaml
@@ -81,20 +81,36 @@ nodes:
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.90.2"
+ ip4_address: "172.16.110.2"
driver: ice
- link: link9
+ link: link11
model: Intel-E810CQ
- port10:
+ 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.100.2"
+ ip4_address: "172.16.120.2"
driver: ice
- link: link9
+ link: link11
model: Intel-E810CQ
DUT1:
type: DUT
@@ -169,3 +185,19 @@ nodes:
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 86a5f3fe24..0000000000
--- a/topologies/available/lf_2n_skx_testbed21.yaml
+++ /dev/null
@@ -1,155 +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
- 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 ee25175946..0000000000
--- a/topologies/available/lf_2n_skx_testbed22.yaml
+++ /dev/null
@@ -1,155 +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
- 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 cb08cddf7d..0000000000
--- a/topologies/available/lf_2n_skx_testbed23.yaml
+++ /dev/null
@@ -1,155 +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
- 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_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
index 1505e9db60..2fa26922e6 100644
--- a/topologies/available/lf_3n_alt_testbed34.yaml
+++ b/topologies/available/lf_3n_alt_testbed34.yaml
@@ -1,16 +1,3 @@
-# Copyright (c) 2022 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.
-
---
metadata:
version: 0.1
@@ -29,18 +16,38 @@ nodes:
username: testuser
password: Csit1234
interfaces:
- port0:
- mac_address: "3c:fd:fe:c3:e7:a0"
+ 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"
- link: link1
+ ip4_address: "172.16.10.2"
driver: i40e
+ link: link1
model: Intel-XL710
- port1:
- mac_address: "3c:fd:fe:c3:e7:a1"
+ 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"
- link: link2
+ 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
@@ -50,18 +57,38 @@ nodes:
username: testuser
password: Csit1234
interfaces:
- port0:
- mac_address: "40:a6:b7:85:e7:80"
+ 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"
- link: link3
+ ip4_address: "172.16.10.1"
driver: i40e
+ link: link3
model: Intel-XL710
- port1:
- mac_address: "40:a6:b7:85:e7:81"
+ 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"
- link: link2
+ 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
@@ -71,15 +98,35 @@ nodes:
uio_driver: vfio-pci
password: Csit1234
interfaces:
- port0:
- mac_address: "40:a6:b7:85:e7:78"
+ 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"
- link: link1
+ ip4_address: "172.16.10.3"
driver: i40e
+ link: link1
model: Intel-XL710
- port1:
- mac_address: "40:a6:b7:85:e7:79"
+ 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"
- link: link3
+ 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_icx_testbed37.yaml b/topologies/available/lf_3n_icx_testbed37.yaml
index 59d0bb1088..560da3007e 100644
--- a/topologies/available/lf_3n_icx_testbed37.yaml
+++ b/topologies/available/lf_3n_icx_testbed37.yaml
@@ -80,6 +80,22 @@ nodes:
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"
@@ -153,6 +169,22 @@ nodes:
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"
@@ -164,7 +196,7 @@ nodes:
interfaces:
port1:
# s66-t37-sut2-c9/p1 - 100GE port1 Intel E810-CQDA2 2p100GE.
- mac_address: "40:a6:b7:67:27:5c"
+ mac_address: "40:a6:b7:67:27:54"
pci_address: "0000:17:00.0"
ip4_address: "172.16.10.3"
driver: ice
@@ -226,3 +258,19 @@ nodes:
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
index 8b7ba2c962..8ab57e6d20 100644
--- a/topologies/available/lf_3n_icx_testbed38.yaml
+++ b/topologies/available/lf_3n_icx_testbed38.yaml
@@ -80,6 +80,22 @@ nodes:
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"
@@ -153,6 +169,22 @@ nodes:
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"
@@ -226,3 +258,19 @@ nodes:
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 6cb33b6ce0..0000000000
--- a/topologies/available/lf_3n_skx_testbed31.yaml
+++ /dev/null
@@ -1,212 +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
- 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
- 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 206b469b90..0000000000
--- a/topologies/available/lf_3n_skx_testbed32.yaml
+++ /dev/null
@@ -1,212 +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
- 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
- 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/tox.ini b/tox.ini
index 126af2d454..e0ac85c22a 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,4 +1,4 @@
-# Copyright (c) 2022 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:
@@ -26,16 +26,14 @@
[tox]
# Fast and brief checkers to front, slow or verbose checkers to back.
-envlist = job_spec, copyright_year, gpl_license, model_version,
- 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.
script_dir = ./resources/libraries/bash/entry/tox
-# TODO: Tox prints various warnings. Figure them out and fix them.
-
# Recommended ordering withinn testenv definition:
# + General comments.
# + ignore_outcome for non-voting checkers,
@@ -44,43 +42,35 @@ script_dir = ./resources/libraries/bash/entry/tox
# + whitelist_externals to enable bash.
# + Commands with a single bash to launch the corresponding script.
-# Keep testenvs sorted alphabetically, please.
-
[testenv:autogen]
setenv = PYTHONPATH = {toxinidir}
-whitelist_externals = /bin/bash
+whitelist_externals = bash
commands = bash {[tox]script_dir}/autogen.sh
[testenv:copyright_year]
-whitelist_externals = /bin/bash
+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]script_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
+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
+whitelist_externals = bash
commands = bash {[tox]script_dir}/line.sh
-[testenv:model_version]
-whitelist_externals = /bin/bash
-commands = bash {[tox]script_dir}/model_version.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
+whitelist_externals = bash
commands = bash {[tox]script_dir}/new_line.sh
[testenv:pylint]
@@ -88,22 +78,6 @@ commands = bash {[tox]script_dir}/new_line.sh
ignore_outcome = true
setenv = PYTHONPATH = {toxinidir}
basepython = python3
-deps =
- pylint==2.4.3
- -r ./requirements.txt
-whitelist_externals = /bin/bash
+deps = -r ./requirements.txt
+whitelist_externals = bash
commands = bash {[tox]script_dir}/pylint.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 checker with something smarter
-# wherever possible.