aboutsummaryrefslogtreecommitdiffstats
path: root/tests/perf
AgeCommit message (Expand)AuthorFilesLines
2017-06-08CSIT-662: KWI - KW renamingTibor Frank92-5110/+5110
2017-06-05CSIT-614: PDRCHK test for vpp-csit-verify-hw-perf jobTibor Frank10-0/+1884
2017-06-05CSIT-524: Traffic generator using python profilesTibor Frank82-6346/+5730
2017-05-11CSIT-574: IPSec Scale File Splitsjan.hradil8-1164/+1448
2017-05-10CSIT-573: Split SNAT scale tests to multiple filesjan.hradil7-919/+1249
2017-04-28Fix: VAT timeout in IPv6 scale 2MPeter Mikus2-0/+27
2017-04-25Improve doc in data driven perf testsTibor Frank4-63/+72
2017-04-24CSIT-557: Performance jobs reorganisation, part 3Tibor Frank8-8/+8
2017-04-24Fix: tc02-64B-1t1c-eth-l2xcbase-eth-4vhost-2vm-pdrdiscPeter Mikus1-0/+1
2017-04-21Added Ethernet frame size tags for performance tests:Maciek Konstantynowicz73-1060/+1067
2017-04-19Use QEMU virtio queue size 1024 for perf testsJan Gelety15-256/+4
2017-04-19Fix: IPSec+Lisp suite namingPeter Mikus1-0/+0
2017-04-18Remove the tag THIS from SNAT perf testsTibor Frank2-2/+2
2017-04-18CSIT-545: Performance tests for SNATTibor Frank2-0/+1165
2017-04-12IPsectptLispGpe performance test suitepmikus7-24/+363
2017-04-10IPsec Multi-Tunnel performance test suiteKirill Rybalchenko4-0/+2540
2017-04-07CSIT-553 Make QEMU bin configurablepmikus1-1/+5
2017-04-06CSIT-552: Add xl710 perf test with 2 VMs per DUTJan Gelety3-0/+1812
2017-04-03CSIT-550: Add x520 L2 x-connect perf test with 2 VMs per DUTJan Gelety2-25/+589
2017-03-30Update: NDRCHK rate values and typospmikus22-322/+322
2017-03-30Fix: Naming of perf suites following conventionspmikus38-0/+0
2017-03-30CSIT-548: Add x520 IP4base perf test with 2 VMs per DUTJan Gelety4-17/+584
2017-03-27CSIT-547: Add x520 L2BD perf test with 2 VMs per DUTJan Gelety2-0/+565
2017-03-08CSIT-530: Add common setup and teardown to perf testsTibor Frank61-2828/+2691
2017-02-27CSIT-339: Add Keywords for SMTTibor Frank2-72/+72
2017-01-27CSIT-507: Add perf tests for Cisco VIC-1385 L2BDMiroslav Miklus1-0/+348
2017-01-27CSIT-508: Add perf tests for Cisco VIC-1227 L2BDMiroslav Miklus1-0/+286
2017-01-26CSIT-512: Add x710, xl710 l2bd vhost testsTibor Frank2-0/+1338
2017-01-24CSIT-509: Add perf tests for vlan + l2 + vhostTibor Frank3-1/+1411
2017-01-19Fix: Adjust NDRCHK threshold valuespmikus2-12/+12
2017-01-18Renaming of all perf TCs.Tibor Frank54-937/+973
2017-01-12CSIT-501: Perf tests re-taggingTibor Frank54-904/+848
2017-01-10CSIT-469 Rename performance suitespmikus54-3365/+3665
2017-01-10CSIT-499: Perf Tests - VXLAN + L2BD + vhostTibor Frank1-0/+684
2017-01-04CSIT-498: Packet throughput L2BD with VXLANoIPv4Tibor Frank1-0/+475
2016-12-14vhost perf testing with Qemu 5t5pcpmikus3-11/+11
2016-12-13CSIT-470 Add option to configure CFS scheduler priority for VPPpmikus3-6/+57
2016-11-15CSIT-403 Data-Driven Performance Test Suite IIpmikus4-292/+414
2016-11-04CSIT-458 Use node aware config in all perf TCspmikus41-640/+640
2016-11-04CSIT-466 Remove dpdk-vhost testspmikus2-133/+0
2016-10-25TB1 X710 topology file, X710 BD Long testsMiroslav Miklus1-0/+196
2016-10-24CSIT-452: Switch Qemu binary to Ubuntu defaultpmikus3-3/+0
2016-10-24CSIT-318 Long_IPv6_Intel-XL710Miroslav Miklus1-0/+187
2016-10-13CSIT-403 Data-Driven Performance Test Suite Ipmikus2-511/+190
2016-10-05CSIT-327 XL710 IPv4 testsMiroslav Miklus2-1/+263
2016-10-05FIX: Perf-Long-Xconnect-XL710 documentationMiroslav Miklus1-10/+10
2016-10-05IPv4 2M scale tests - adjust heapsize to 3GMiroslav Miklus2-0/+27
2016-10-04CSIT-322 XL710 BD testsMiroslav Miklus1-0/+258
2016-09-22CSIT-411 Show Vhost Userpmikus3-0/+3
2016-09-21Latency stream 10k > 9k, min_rate 5k > 10kMiroslav Miklus21-147/+147
an class="p">, be); } pool_put(bier_entry_pool, be); } void bier_entry_path_add (index_t bei, const fib_route_path_t *rpaths) { fib_node_index_t old_pl_index; bier_entry_t *be; be = bier_entry_get(bei); old_pl_index = be->be_path_list; /* * lock the path-list so it does not go away before we unlink * from its resolved fmasks */ fib_path_list_lock(old_pl_index); if (FIB_NODE_INDEX_INVALID == be->be_path_list) { old_pl_index = FIB_NODE_INDEX_INVALID; be->be_path_list = fib_path_list_create((FIB_PATH_LIST_FLAG_SHARED | FIB_PATH_LIST_FLAG_NO_URPF), rpaths); be->be_sibling_index = fib_path_list_child_add(be->be_path_list, FIB_NODE_TYPE_BIER_ENTRY, bier_entry_get_index(be)); } else { old_pl_index = be->be_path_list; be->be_path_list = fib_path_list_copy_and_path_add(old_pl_index, (FIB_PATH_LIST_FLAG_SHARED | FIB_PATH_LIST_FLAG_NO_URPF), rpaths); fib_path_list_child_remove(old_pl_index, be->be_sibling_index); be->be_sibling_index = fib_path_list_child_add(be->be_path_list, FIB_NODE_TYPE_BIER_ENTRY, bier_entry_get_index(be)); } /* * link the entry's bit-position to each fmask in the new path-list * then unlink from the old. */ fib_path_list_walk(be->be_path_list, bier_entry_link_walk, be); if (FIB_NODE_INDEX_INVALID != old_pl_index) { fib_path_list_walk(old_pl_index, bier_entry_unlink_walk, be); } /* * update the ECMP tables with the new choice */ bier_table_ecmp_walk(be->be_bti, bier_entry_table_ecmp_walk_add_fmask, be); /* * symmetric unlock. The old path-list may not exist hereinafter */ fib_path_list_unlock(old_pl_index); } void bier_entry_path_update (index_t bei, const fib_route_path_t *rpaths) { fib_node_index_t old_pl_index; bier_entry_t *be; be = bier_entry_get(bei); old_pl_index = be->be_path_list; /* * lock the path-list so it does not go away before we unlink * from its resolved fmasks */ fib_path_list_lock(old_pl_index); if (FIB_NODE_INDEX_INVALID != old_pl_index) { fib_path_list_child_remove(old_pl_index, be->be_sibling_index); } be->be_path_list = fib_path_list_create((FIB_PATH_LIST_FLAG_SHARED | FIB_PATH_LIST_FLAG_NO_URPF), rpaths); be->be_sibling_index = fib_path_list_child_add(be->be_path_list, FIB_NODE_TYPE_BIER_ENTRY, bier_entry_get_index(be)); /* * link the entry's bit-position to each fmask in the new path-list * then unlink from the old. */ fib_path_list_walk(be->be_path_list, bier_entry_link_walk, be); if (FIB_NODE_INDEX_INVALID != old_pl_index) { fib_path_list_walk(old_pl_index, bier_entry_unlink_walk, be); } /* * update the ECMP tables with the new choice */ bier_table_ecmp_walk(be->be_bti, bier_entry_table_ecmp_walk_add_fmask, be); /* * symmetric unlock. The old path-list may not exist hereinafter */ fib_path_list_unlock(old_pl_index); } int bier_entry_path_remove (index_t bei, const fib_route_path_t *rpaths) { fib_node_index_t old_pl_index; bier_entry_t *be; be = bier_entry_get(bei); old_pl_index = be->be_path_list; fib_path_list_lock(old_pl_index); ASSERT (FIB_NODE_INDEX_INVALID != be->be_path_list); be->be_path_list = fib_path_list_copy_and_path_remove(old_pl_index, (FIB_PATH_LIST_FLAG_SHARED | FIB_PATH_LIST_FLAG_NO_URPF), rpaths); if (be->be_path_list != old_pl_index) { /* * a path was removed */ fib_path_list_child_remove(old_pl_index, be->be_sibling_index); if (FIB_NODE_INDEX_INVALID != be->be_path_list) { /* * link the entry's bit-position to each fmask in the new path-list * then unlink from the old. */ fib_path_list_walk(be->be_path_list, bier_entry_link_walk, be); be->be_sibling_index = fib_path_list_child_add(be->be_path_list, FIB_NODE_TYPE_BIER_ENTRY, bier_entry_get_index(be)); } fib_path_list_walk(old_pl_index, bier_entry_unlink_walk, be); } fib_path_list_unlock(old_pl_index); /* * update the ECMP tables with the new choice */ bier_table_ecmp_walk(be->be_bti, bier_entry_table_ecmp_walk_add_fmask, be); return (fib_path_list_get_n_paths(be->be_path_list)); } void bier_entry_contribute_forwarding(index_t bei, dpo_id_t *dpo) { bier_entry_t *be = bier_entry_get(bei); fib_path_list_contribute_forwarding(be->be_path_list, FIB_FORW_CHAIN_TYPE_BIER, FIB_PATH_LIST_FWD_FLAG_COLLAPSE, dpo); } u8* format_bier_entry (u8* s, va_list *ap) { index_t bei = va_arg(*ap, index_t); bier_show_flags_t flags = va_arg(*ap, bier_show_flags_t); bier_entry_t *be = bier_entry_get(bei); s = format(s, " bp:%d\n", be->be_bp); s = fib_path_list_format(be->be_path_list, s); if (flags & BIER_SHOW_DETAIL) { dpo_id_t dpo = DPO_INVALID; bier_entry_contribute_forwarding(bei, &dpo); s = format(s, " forwarding:\n"); s = format(s, " %U", format_dpo_id, &dpo, 2); s = format(s, "\n"); } return (s); } static fib_node_t * bier_entry_get_node (fib_node_index_t index) { bier_entry_t *be = bier_entry_get(index); return (&(be->be_node)); } static bier_entry_t* bier_entry_get_from_node (fib_node_t *node) { return ((bier_entry_t*)(((char*)node) - STRUCT_OFFSET_OF(bier_entry_t, be_node))); } static void bier_entry_last_lock_gone (fib_node_t *node) { /* * the lifetime of the entry is managed by the table. */ ASSERT(0); } /* * A back walk has reached this BIER entry */ static fib_node_back_walk_rc_t bier_entry_back_walk_notify (fib_node_t *node, fib_node_back_walk_ctx_t *ctx) { /* * re-populate the ECMP tables with new choices */ bier_entry_t *be = bier_entry_get_from_node(node); bier_table_ecmp_walk(be->be_bti, bier_entry_table_ecmp_walk_add_fmask, be); /* * no need to propagate further up the graph. */ return (FIB_NODE_BACK_WALK_CONTINUE); } /* * The BIER fmask's graph node virtual function table */ static const fib_node_vft_t bier_entry_vft = { .fnv_get = bier_entry_get_node, .fnv_last_lock = bier_entry_last_lock_gone, .fnv_back_walk = bier_entry_back_walk_notify, }; clib_error_t * bier_entry_module_init (vlib_main_t * vm) { fib_node_register_type (FIB_NODE_TYPE_BIER_ENTRY, &bier_entry_vft); return (NULL); } VLIB_INIT_FUNCTION (bier_entry_module_init);