summaryrefslogtreecommitdiffstats
path: root/src/plugins/tlsopenssl
AgeCommit message (Expand)AuthorFilesLines
2019-09-02tls: some rework based on TLS openssl C APIPing Yu3-26/+33
2019-08-20tls: Add C API for TLS openssl to set enginePing Yu9-10/+436
2019-08-09tls: mark as no lookup transportFlorin Coras1-14/+24
2019-08-08tls: fix close with dataFlorin Coras1-12/+43
2019-06-29svm: rename fifo tx notifications to reflect useFlorin Coras1-1/+1
2019-05-16init / exit function orderingDave Barach1-7/+6
2019-05-08session: send tx events when data is dequeuedFlorin Coras1-0/+3
2019-05-03plugins: clean up plugin descriptionsDave Wallace1-1/+1
2019-04-18tls: allow engines to customize closeFlorin Coras1-0/+24
2019-04-16svm_fifo rework to avoid contention on cursizeSirshak Das1-7/+7
2019-02-18tls: fix openssl/mbedtls use of app_wrk indexFlorin Coras1-2/+7
2019-02-04session: cleanup part 1Florin Coras3-22/+19
2019-01-28update openssl TLS async to align with openssl master branchPing Yu1-4/+2
2019-01-07Change vpp code to align with openssl interface changePing Yu3-36/+27
2018-11-08tlsopenssl: remove unused #includeKlement Sekera1-1/+0
2018-10-23c11 safe string handling supportDave Barach2-3/+3
2018-10-02tls: fix disconnects for sessions with pending dataFlorin Coras1-12/+12
2018-09-27add cmake build option to build openssl asyncPing Yu1-0/+11
2018-09-15tls: fix openssl engine write complete conditionFlorin Coras1-1/+1
2018-09-13Add a polling configure to make thread bind with hardware enginePing Yu1-4/+9
2018-09-04add option to allow user to set ciphersPing Yu2-6/+33
2018-08-26cmake: move functions to src/cmakeDamjan Marion1-0/+1
2018-08-25cmake: improve add_vpp_plugin macroDamjan Marion1-2/+8
2018-08-17CMake as an alternative to autotools (experimental)Damjan Marion1-0/+18
2018-08-17optimize init_server to reduce session overheadPing Yu2-33/+107
2018-08-14reduce polling and resume overhead by checking if inflight request existsPing Yu1-3/+6
2018-07-23tls: avoid possible async handler duplicationPing Yu1-1/+1
2018-07-19Add a new communication channel between VPP and openssl enginePing Yu3-19/+59
2018-07-16Enable openssl TLS async support in client for HW acclerationPing Yu1-0/+15
2018-06-15TLS async supportPing Yu3-22/+735
2018-05-31Fix TLS issue to load certification and keyPing Yu1-0/+2
2018-03-15tls: add openssl engineFlorin Coras1-0/+675
span class="p">(!v) { new = clib_mem_alloc_aligned_at_offset (data_bytes, data_align, header_bytes, 1 /* yes, call os_out_of_memory */ ); new_alloc_bytes = clib_mem_size (new); CLIB_MEM_UNPOISON (new + data_bytes, new_alloc_bytes - data_bytes); clib_memset (new, 0, new_alloc_bytes); CLIB_MEM_POISON (new + data_bytes, new_alloc_bytes - data_bytes); v = new + header_bytes; _vec_len (v) = length_increment; _vec_numa (v) = numa_id; if (PREDICT_FALSE (numa_id != VEC_NUMA_UNSPECIFIED)) clib_mem_set_per_cpu_heap (oldheap); return v; } vh->len += length_increment; old = v - header_bytes; /* Vector header must start heap object. */ ASSERT (clib_mem_is_heap_object (old)); old_alloc_bytes = clib_mem_size (old); /* Need to resize? */ if (data_bytes <= old_alloc_bytes) { CLIB_MEM_UNPOISON (v, data_bytes); if (PREDICT_FALSE (numa_id != VEC_NUMA_UNSPECIFIED)) clib_mem_set_per_cpu_heap (oldheap); return v; } #if CLIB_VECTOR_GROW_BY_ONE > 0 new_alloc_bytes = data_bytes; #else new_alloc_bytes = (old_alloc_bytes * 3) / 2; if (new_alloc_bytes < data_bytes) new_alloc_bytes = data_bytes; #endif new = clib_mem_alloc_aligned_at_offset (new_alloc_bytes, data_align, header_bytes, 1 /* yes, call os_out_of_memory */ ); /* FIXME fail gracefully. */ if (!new) clib_panic ("vec_resize fails, length increment %d, data bytes %d, alignment %d", length_increment, data_bytes, data_align); CLIB_MEM_UNPOISON (old, old_alloc_bytes); clib_memcpy_fast (new, old, old_alloc_bytes); clib_mem_free (old); /* Allocator may give a bit of extra room. */ new_alloc_bytes = clib_mem_size (new); v = new; /* Zero new memory. */ CLIB_MEM_UNPOISON (new + data_bytes, new_alloc_bytes - data_bytes); memset (v + old_alloc_bytes, 0, new_alloc_bytes - old_alloc_bytes); CLIB_MEM_POISON (new + data_bytes, new_alloc_bytes - data_bytes); _vec_numa ((v + header_bytes)) = numa_id; if (PREDICT_FALSE (numa_id != VEC_NUMA_UNSPECIFIED)) clib_mem_set_per_cpu_heap (oldheap); return v + header_bytes; } uword clib_mem_is_vec_h (void *v, uword header_bytes) { return clib_mem_is_heap_object (vec_header (v, header_bytes)); } u32 vec_len_not_inline (void *v) { return vec_len (v); } void vec_free_not_inline (void *v) { vec_free (v); } /** \cond */ #ifdef TEST #include <stdio.h> void main (int argc, char *argv[]) { word n = atoi (argv[1]); word i, *x = 0; typedef struct { word x, y, z; } FOO; FOO *foos = vec_init (FOO, 10), *f; vec_validate (foos, 100); foos[100].x = 99; _vec_len (foos) = 0; for (i = 0; i < n; i++) { vec_add1 (x, i); vec_add2 (foos, f, 1); f->x = 2 * i; f->y = 3 * i; f->z = 4 * i; } { word n = 2; word m = 42; vec_delete (foos, n, m); } { word n = 2; word m = 42; vec_insert (foos, n, m); } vec_free (x); vec_free (foos); exit (0); } #endif /** \endcond */ /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */