summaryrefslogtreecommitdiffstats
path: root/src/plugins/acl
AgeCommit message (Expand)AuthorFilesLines
2021-07-15acl: Fix the CLI to accept IPv6 prefixesNeale Ranns1-16/+5
2021-07-15misc: replace CLIB_PREFETCH with clib_prefetch_{load,store}Damjan Marion1-1/+1
2021-07-13misc: fix init order to avoid startup warningsBin Zhou (bzhou2)1-6/+4
2021-05-13tests: move test source to vpp/testDave Wallace6-5069/+0
2021-03-26vlib: introduce vlib_get_main_by_index(), vlib_get_n_threads()Damjan Marion3-7/+8
2021-03-25acl: fix the integer overflow bug in API message length validation logicAndrew Yourtchenko1-4/+4
2021-02-08tests: allow for externally supplied VPP workers config for testsAndrew Yourtchenko1-0/+2
2021-01-20acl: replace glibc internal __bswap_64 with clibNathan Moos1-1/+2
2021-01-11acl: fix tag C-string overflowBenoît Ganne1-5/+14
2021-01-06acl: fix cli tag parsingBenoît Ganne1-1/+5
2020-12-14misc: refactor clib_bitmap_foreach macroDamjan Marion1-2/+2
2020-12-14misc: move to new pool_foreach macrosDamjan Marion3-30/+30
2020-12-14api: add missing version infoPaul Vinciguerra1-0/+1
2020-12-04acl: fix acl-plugin testcases packet countingAndrew Yourtchenko1-2/+3
2020-11-25api: vat2 and json autogeneration for api messagesOle Troan5-462/+50
2020-10-19misc: don't export symbols from pluginsDamjan Marion1-1/+2
2020-10-16acl: do vlib_buffer_enqueue_to_next in outer functionDamjan Marion1-8/+11
2020-10-09acl: move nonip nodes to separate fileDamjan Marion3-221/+296
2020-10-07misc: Purge unused pg includesNeale Ranns3-3/+0
2020-09-21acl: remove custom ACL-plugin heapAndrew Yourtchenko7-232/+17
2020-08-13acl: use the global heap when allocating the lookup contextAndrew Yourtchenko1-0/+3
2020-07-23acl: correct acl vat help messageLijian.Zhang1-2/+2
2020-06-16misc: fix sonarclound warningsDave Barach1-1/+4
2020-04-28tests: move defaults from defaultmapping to .api filesPaul Vinciguerra1-6/+6
2020-04-24acl: ACL creation CLI parsing fixNeale Ranns1-2/+4
2020-04-08acl: fix unresolved symbol for format_fib_prefix in vat pluginNeale Ranns1-8/+8
2020-03-27acl: API cleanupJakub Grajciar11-784/+1014
2020-03-26acl: revert acl: api cleanupOle Trøan11-1012/+699
2020-03-26acl: API cleanupJakub Grajciar11-699/+1012
2020-03-25acl: Add CLI additionsNeale Ranns1-0/+254
2020-02-25feature: provide a u16 version of vnet_feature_nextNeale Ranns1-3/+2
2020-02-11vppinfra: remove the historical mheap memory allocatorDave Barach2-50/+3
2020-01-13acl: Remove unsued typeNeale Ranns2-53/+31
2020-01-08acl: add FEATURE.yamlAndrew Yourtchenko1-0/+26
2019-12-17ip: Protocol Independent IP NeighborsNeale Ranns2-4/+3
2019-12-14tests: changes for scapy 2.4.3 migrationsnaramre1-1/+1
2019-12-03classify: API cleanupJakub Grajciar1-90/+8
2019-11-05misc: Fix python scripts shebang lineRenato Botelho do Couto5-5/+5
2019-10-31acl: add missing square brackets to vat_help option in acl apiJieqiang Wang1-2/+2
2019-10-21acl: l2 classify test support python3Ole Troan1-2/+2
2019-10-17tests: python3 changes for span and aclplugin testsnaramre2-7/+7
2019-10-10acl: remove api boilerplateOle Troan5-172/+44
2019-10-03acl: fix intermittent test failureAndrew Yourtchenko1-9/+9
2019-09-27acl: remove api boilerplateOle Troan2-92/+12
2019-09-16api: autogenerate api trace print/endianOle Troan3-1/+55
2019-08-28acl: perform a sanity check of ACL rules before creating ACLAndrew Yourtchenko1-0/+81
2019-08-22tests: move plugin tests to src/plugins/*/testDave Wallace5-0/+4785
2019-08-20vppapigen: remove support for legacy typedefsPaul Vinciguerra2-57/+2
2019-08-16acl: fix stats-segment counters validation on acl updateAndrew Yourtchenko2-8/+46
2019-07-29api acl: breakout acl_types.api for reuse by othersPaul Vinciguerra2-79/+101
n>->string2); *result = demo1; } void serialize_demo1 (serialize_main_t * sm, va_list * args) { demo_struct1_t *demo1 = va_arg (*args, demo_struct1_t *); demo_struct2_t *demo2 = demo1->demo2; serialize_cstring (sm, (char *) demo1->name); serialize_cstring (sm, (char *) demo2->string1); serialize_cstring (sm, (char *) demo2->string2); } /* Serialize / unserialize variant */ clib_error_t * persist_serialize (persist_main_t * pm) { u8 *checkpoint; serialize_main_t sm; demo_struct2_t *demo2; demo_struct1_t *demo1; time_t starttime = time (0); char *datestring = ctime (&starttime); /* Get back the root pointer */ checkpoint = svmdb_local_get_vec_variable (pm->c, "demo1_checkpoint", sizeof (u8)); /* It doesnt exist create our data structures */ if (checkpoint == 0) { /* Allocate data structures in process-private memory */ demo1 = clib_mem_alloc (sizeof (*demo2)); vec_validate (demo1, 0); demo2 = clib_mem_alloc (sizeof (*demo2)); demo1->demo2 = demo2; demo1->name = format (0, "My name is Ishmael%c", 0); demo2->string1 = format (0, "Here is string1%c", 0); demo2->string2 = format (0, "Born at %s%c", datestring, 0); /* Create checkpoint */ serialize_open_vector (&sm, checkpoint); serialize (&sm, serialize_demo1, demo1); checkpoint = serialize_close_vector (&sm); /* Copy checkpoint into shared memory */ svmdb_local_set_vec_variable (pm->c, "demo1_checkpoint", checkpoint, sizeof (u8)); /* Toss the process-private-memory original.. */ vec_free (checkpoint); } else { /* Open the checkpoint */ unserialize_open_data (&sm, checkpoint, vec_len (checkpoint)); unserialize (&sm, unserialize_demo1, &demo1); /* Toss the process-private-memory checkpoint copy */ vec_free (checkpoint); /* Off we go... */ demo2 = demo1->demo2; fformat (stdout, "name: %s\n", demo1->name); fformat (stdout, "demo2 location: %llx\n", demo2); fformat (stdout, "string1: %s\n", demo2->string1); fformat (stdout, "string2: %s\n", demo2->string2); } return 0; } int main (int argc, char **argv) { unformat_input_t _input, *input = &_input; persist_main_t *pm = &persist_main; clib_error_t *error = 0; /* Make a 4mb database arena, chroot so it's truly private */ pm->c = svmdb_map_chroot_size ("/ptest", 4 << 20); ASSERT (pm->c); unformat_init_command_line (input, argv); while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) { if (unformat (input, "malloc")) error = persist_malloc (pm); else if (unformat (input, "serialize")) error = persist_serialize (pm); else { error = clib_error_return (0, "Unknown flavor '%U'", format_unformat_error, input); break; } } svmdb_unmap (pm->c); if (error) { clib_error_report (error); exit (1); } return 0; } /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */