aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/python/autogen
AgeCommit message (Expand)AuthorFilesLines
2021-02-19Add test suites for crypto sw scheduler engineYulong Pei1-1/+24
2021-02-19FIX: Naming convention compliancepmikus1-1/+1
2021-02-05NAT44ed: Add pure throuhput bidir testsVratko Polak1-1/+5
2021-01-04GSO: TAP/VHOST use casepmikus2-2/+69
2020-11-26Re-enable 9000B tests for ipsecVratko Polak1-4/+0
2020-10-29Support existing test types with ASTFVratko Polak1-0/+3
2020-07-16Remove remains of WRK testsTibor Frank1-5/+0
2020-06-09Remove leading tc[nn] from test namesJuraj Linkeš2-14/+8
2020-04-23Performance: DPDK refactorPeter Mikus1-5/+34
2020-04-06Improve pf layerPeter Mikus1-6/+6
2020-03-12rls2001 perf: fix hoststack test packet sizesDave Wallace2-7/+13
2020-03-10Regenerator: Fix pylint errorsTibor Frank2-9/+7
2020-03-03perf: Clean up Hoststack testsDave Wallace2-75/+23
2020-02-03Autogen: Fix typo affecting DPDKVratko Polak1-1/+1
2020-01-30perf: Add hoststack NSIM+LDPRELOAD+IPERF3 test suiteDave Wallace1-4/+6
2020-01-29perf: QUIC transport hoststack test suiteDave Wallace1-7/+7
2020-01-28perf: hoststack iperf3 test tuningDave Wallace2-16/+18
2020-01-17perf: add TCP Iperf3+LDPRELOAD test suiteDave Wallace2-19/+79
2020-01-10Support suite tags in autogenVratko Polak2-22/+167
2020-01-10Autogen: Generate also NIC drivers.Vratko Polak1-27/+100
2019-11-28Python3: resources and librariesJan Gelety2-124/+140
2019-09-04Clarify why 9000B tests are skipped for IPsecVratko Polak1-1/+2
2019-08-27- Removed 9000B test cases from ipsec test suites.Ludovit Mikula1-0/+3
2019-08-23Introduce reconfig suites, for dot1q+ip4+vxlanVratko Polak1-1/+43
2019-08-19Autogen: Create NICs for TCP suites.Vratko Polak3-245/+270
2019-07-24NF_density dot1qip4udpvxlanPeter Mikus1-1/+2
2019-06-21Allow 9000b tests for AVFVratko Polak1-4/+0
2019-05-27FIX: do not generate 9000B perf test in case of vic1385 nicJan Gelety1-0/+3
2019-05-09Add new higher density NF testsPeter Mikus1-0/+5
2019-04-26NF density tests with dtc=0.5 and dtcr=2Peter Mikus1-1/+1
2019-04-08Upgrade autogen to NICs and search typesVratko Polak3-36/+128
2019-02-27Add tox.ini and few checker scriptsVratko Polak2-35/+23
2019-02-19Adapt autogen for SFd testsVratko Polak1-12/+23
2019-01-29PLRsearch: Initial implementation and suitesVratko Polak1-0/+5
2018-09-21Fix autogen regenerator and few suitesVratko Polak1-1/+1
2018-09-20CSIT-1205 Create AVF driver test - Add Tests L2BD L2XCPeter Mikus1-6/+18
2018-09-04Fix pylint part 1Peter Mikus2-4/+36
2018-07-24CSIT-1097: Migrate L2 to NDRPDR and edit MRRVratko Polak2-11/+13
2018-07-24CSIT-1097: Migrate Vts suite to NDRPDRVratko Polak2-4/+10
2018-07-18CSIT-1097: Ip6 NDRPDR and edited MRR suitesVratko Polak1-1/+8
2018-07-17CSIT-1186: Add srv6 NDRPDR suitesVratko Polak5-0/+245
_NEXT_POP_HOP_BY_HOP); em->sr_localsid_ts.as_u64[0] = 0; em->sr_localsid_ts.as_u64[1] = 0; ioam_cache_ts_table_destroy (vm); ip6_ioam_ts_cache_cleanup_rewrite (); ip6_hbh_unregister_option (HBH_OPTION_TYPE_IOAM_EDGE_TO_EDGE_ID); ip6_hbh_unregister_option (HBH_OPTION_TYPE_IOAM_E2E_CACHE_ID); } return 0; } /* API message handler */ static void vl_api_ioam_cache_ip6_enable_disable_t_handler (vl_api_ioam_cache_ip6_enable_disable_t * mp) { vl_api_ioam_cache_ip6_enable_disable_reply_t *rmp; ioam_cache_main_t *cm = &ioam_cache_main; ip6_address_t sr_localsid; int rv; sr_localsid.as_u64[0] = 0; sr_localsid.as_u64[1] = 0; rv = ioam_cache_ip6_enable_disable (cm, &sr_localsid, (int) (mp->is_disable)); REPLY_MACRO (VL_API_IOAM_CACHE_IP6_ENABLE_DISABLE_REPLY); } /* Set up the API message handling tables */ static clib_error_t * ioam_cache_plugin_api_hookup (vlib_main_t * vm) { ioam_cache_main_t *sm = &ioam_cache_main; #define _(N,n) \ vl_msg_api_set_handlers((VL_API_##N + sm->msg_id_base), \ #n, \ vl_api_##n##_t_handler, \ vl_noop_handler, \ vl_api_##n##_t_endian, \ vl_api_##n##_t_print, \ sizeof(vl_api_##n##_t), 1); foreach_ioam_cache_plugin_api_msg; #undef _ return 0; } #define vl_msg_name_crc_list #include <ioam/ip6/ioam_cache_all_api_h.h> #undef vl_msg_name_crc_list static void setup_message_id_table (ioam_cache_main_t * sm, api_main_t * am) { #define _(id,n,crc) \ vl_msg_api_add_msg_name_crc (am, #n "_" #crc, id + sm->msg_id_base); foreach_vl_msg_name_crc_ioam_cache; #undef _ } static clib_error_t * set_ioam_cache_command_fn (vlib_main_t * vm, unformat_input_t * input, vlib_cli_command_t * cmd) { ioam_cache_main_t *em = &ioam_cache_main; u8 is_disable = 0; ip6_address_t sr_localsid; u8 address_set = 0; while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) { if (unformat (input, "disable")) is_disable = 1; else if (!address_set && unformat (input, "sr_localsid %U", unformat_ip6_address, &sr_localsid)) address_set = 1; else break; } if (is_disable == 0 && !address_set) return clib_error_return (0, "Error: SRv6 LocalSID address is mandatory"); ioam_cache_ip6_enable_disable (em, &sr_localsid, is_disable); return 0; } /* *INDENT_OFF* */ VLIB_CLI_COMMAND (set_ioam_cache_command, static) = { .path = "set ioam ip6 cache",.short_help = "set ioam ip6 cache sr_localsid <ip6 address> [disable]",.function = set_ioam_cache_command_fn}; /* *INDENT_ON* */ #define IOAM_TS_WAIT_FOR_RESPONSES 3 static clib_error_t * set_ioam_tunnel_select_command_fn (vlib_main_t * vm, unformat_input_t * input, vlib_cli_command_t * cmd) { ioam_cache_main_t *em = &ioam_cache_main; u8 is_disable = 0; u8 one_way = 0; ip6_address_t sr_localsid; u8 address_set = 0; u8 no_of_responses = IOAM_TS_WAIT_FOR_RESPONSES; while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) { if (unformat (input, "disable")) is_disable = 1; else if (unformat (input, "rtt")) one_way = 0; else if (unformat (input, "oneway")) one_way = 1; else if (unformat (input, "wait_for_responses %d", &no_of_responses)) ; else if (!address_set && unformat (input, "sr_localsid %U", unformat_ip6_address, &sr_localsid)) address_set = 1; else break; } if (is_disable == 0 && !address_set) return clib_error_return (0, "Error: SRv6 LocalSID address is mandatory to receive response."); ioam_tunnel_select_ip6_enable_disable (em, one_way, no_of_responses, &sr_localsid, is_disable); return 0; } /* *INDENT_OFF* */ VLIB_CLI_COMMAND (set_ioam_cache_ts_command, static) = { .path = "set ioam ip6 sr-tunnel-select",.short_help = "set ioam ip6 sr-tunnel-select [disable] [oneway|rtt] [wait_for_responses <n|default 3>] \ [sr_localsid <ip6 address>]",.function = set_ioam_tunnel_select_command_fn}; /* *INDENT_ON* */ static void ioam_cache_table_print (vlib_main_t * vm, u8 verbose) { ioam_cache_main_t *cm = &ioam_cache_main; ioam_cache_entry_t *entry = 0; ioam_cache_ts_entry_t *ts_entry = 0; int no_of_threads = vec_len (vlib_worker_threads); int i; pool_foreach (entry, cm->ioam_rewrite_pool, ( { vlib_cli_output (vm, "%U", format_ioam_cache_entry, entry); })); if (cm->ts_stats) for (i = 0; i < no_of_threads; i++) { vlib_cli_output (vm, "Number of entries in thread-%d selection pool: %lu\n \ (pool found to be full: %lu times)", i, cm->ts_stats[i].inuse, cm->ts_stats[i].add_failed); if (verbose == 1) vlib_worker_thread_barrier_sync (vm); pool_foreach (ts_entry, cm->ioam_ts_pool[i], ( { vlib_cli_output (vm, "%U", format_ioam_cache_ts_entry, ts_entry, (u32) i); } )); vlib_worker_thread_barrier_release (vm); } } static clib_error_t * show_ioam_cache_command_fn (vlib_main_t * vm, unformat_input_t * input, vlib_cli_command_t * cmd) { u8 verbose = 0; while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) { if (unformat (input, "verbose")) verbose = 1; else return clib_error_return (0, "unknown input `%U'", format_unformat_error, input); } ioam_cache_table_print (vm, verbose); return 0; } /* *INDENT_OFF* */ VLIB_CLI_COMMAND (show_ioam_cache_command, static) = { .path = "show ioam ip6 cache",.short_help = "show ioam ip6 cache [verbose]",.function = show_ioam_cache_command_fn}; /* *INDENT_ON* */ static clib_error_t * ioam_cache_init (vlib_main_t * vm) { vlib_node_t *node; ioam_cache_main_t *em = &ioam_cache_main; clib_error_t *error = 0; u8 *name; u32 cache_node_index = ioam_cache_node.index; u32 ts_node_index = ioam_cache_ts_node.index; vlib_node_t *ip6_hbyh_node = NULL, *ip6_hbh_pop_node = NULL, *error_node = NULL; name = format (0, "ioam_cache_%08x%c", api_version, 0); clib_memset (&ioam_cache_main, 0, sizeof (ioam_cache_main)); /* Ask for a correctly-sized block of API message decode slots */ em->msg_id_base = vl_msg_api_get_msg_ids ((char *) name, VL_MSG_FIRST_AVAILABLE); error = ioam_cache_plugin_api_hookup (vm); /* Add our API messages to the global name_crc hash table */ setup_message_id_table (em, &api_main); /* Hook this node to ip6-hop-by-hop */ ip6_hbyh_node = vlib_get_node_by_name (vm, (u8 *) "ip6-hop-by-hop"); em->cache_hbh_slot = vlib_node_add_next (vm, ip6_hbyh_node->index, cache_node_index); em->ts_hbh_slot = vlib_node_add_next (vm, ip6_hbyh_node->index, ts_node_index); ip6_hbh_pop_node = vlib_get_node_by_name (vm, (u8 *) "ip6-pop-hop-by-hop"); em->ip6_hbh_pop_node_index = ip6_hbh_pop_node->index; error_node = vlib_get_node_by_name (vm, (u8 *) "error-drop"); em->error_node_index = error_node->index; em->vlib_main = vm; node = vlib_get_node_by_name (vm, (u8 *) "ip6-add-from-cache-hop-by-hop"); em->ip6_add_from_cache_hbh_node_index = node->index; node = vlib_get_node_by_name (vm, (u8 *) "ip6-add-syn-hop-by-hop"); em->ip6_reset_ts_hbh_node_index = node->index; vec_free (name); return error; } VLIB_INIT_FUNCTION (ioam_cache_init); /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */