aboutsummaryrefslogtreecommitdiffstats
path: root/docs/cpta/ndrpdr_trending/nat44-ed-udp-cps-2n-skx.rst
blob: 4edee4b846516b9ea1fd43850086402d42238738 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14

@media only all and (prefers-color-scheme: dark) {
.highlight .hll { background-color: #49483e }
.highlight .c { color: #75715e } /* Comment */
.highlight .err { color: #960050; background-color: #1e0010 } /* Error */
.highlight .k { color: #66d9ef } /* Keyword */
.highlight .l { color: #ae81ff } /* Literal */
.highlight .n { color: #f8f8f2 } /* Name */
.highlight .o { color: #f92672 } /* Operator */
.highlight .p { color: #f8f8f2 } /* Punctuation */
.highlight .ch { color: #75715e } /* Comment.Hashbang */
.highlight .cm { color: #75715e } /* Comment.Multiline */
.highlight .cp { color: #7571
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>
class="cm"> * Add a bunch of random numbers to the skip-list, * sorting them. */ for (i = 0; i < tm->iter; i++) { pool_get (tm->random_pool, tv); *tv = random_u32 (&tm->seed); clib_slist_add (&tm->slist, tv, tv - tm->random_pool); } /* make sure we can find each one */ for (i = 0; i < tm->iter; i++) { u32 search_result; tv = pool_elt_at_index (tm->random_pool, i); search_result = clib_slist_search (&tm->slist, tv, &ncompares); ASSERT (search_result == i); total_compares += ncompares; } fformat (stdout, "%.2f avg compares/search\n", (f64) total_compares / (f64) i); fformat (stdout, "%U\n", format_slist, &tm->slist, tm->iter < 1000 /* verbose */ ); /* delete half of them */ for (i = tm->iter / 2; i < tm->iter; i++) { tv = pool_elt_at_index (tm->random_pool, i); (void) clib_slist_del (&tm->slist, tv); } /* make sure we can find the set we should find, and no others */ for (i = 0; i < tm->iter; i++) { u32 search_result; tv = pool_elt_at_index (tm->random_pool, i); search_result = clib_slist_search (&tm->slist, tv, &ncompares); if (i >= tm->iter / 2) ASSERT (search_result == (u32) ~ 0); else ASSERT (search_result == i); } fformat (stdout, "%U\n", format_slist, &tm->slist, tm->iter < 1000 /* verbose */ ); /* delete the rest */ for (i = 0; i < tm->iter; i++) { tv = pool_elt_at_index (tm->random_pool, i); (void) clib_slist_del (&tm->slist, tv); } fformat (stdout, "%U\n", format_slist, &tm->slist, tm->iter < 1000 /* verbose */ ); } else { #define _(n) \ do { \ pool_get (tm->random_pool, tv); \ *tv = n; \ clib_slist_add (&tm->slist, tv, tv - tm->random_pool); \ fformat(stdout, "%U\n", format_slist, &tm->slist, 1 /* verbose */); \ } while (0); foreach_simple_test; #undef _ } return; } word test_compare (void *key, u32 elt_index) { u32 *k = (u32 *) key; u32 elt = test_main.random_pool[elt_index]; if (*k < elt) return -1; if (*k > elt) return 1; return 0; } u8 * test_format (u8 * s, va_list * args) { u32 elt_index = va_arg (*args, u32); u32 elt = test_main.random_pool[elt_index]; return format (s, "%u", elt); } void initialize_slist (test_main_t * tm) { clib_slist_init (&tm->slist, tm->branching_factor, test_compare, test_format); } int test_slist_main (unformat_input_t * input) { test_main_t *tm = &test_main; u32 tmp; tm->seed = 0xbabeb00b; tm->iter = 100000; tm->verbose = 1; tm->branching_factor = 1.0 / 5.0; while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) { if (unformat (input, "seed %d", &tm->seed)) continue; else if (unformat (input, "iter %d", &tm->iter)) continue; else if (unformat (input, "verbose")) tm->verbose = 1; else if (unformat (input, "branch %d", &tmp)) { if (tmp > 0) tm->branching_factor = 1.0 / (f64) tmp; else fformat (stderr, "warning: branch = 0, ignored\n"); } else { clib_error ("unknown input `%U'", format_unformat_error, input); goto usage; } } initialize_slist (tm); run_test (tm); return 0; usage: fformat (stderr, "usage: test_slist seed <seed> iter <iter> [verbose]\n"); return 1; } #ifdef CLIB_UNIX int main (int argc, char *argv[]) { unformat_input_t i; int ret; clib_mem_init (0, (u64) 4 << 30); unformat_init_command_line (&i, argv); ret = test_slist_main (&i); unformat_free (&i); return ret; } #endif /* CLIB_UNIX */ /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */