buffers: configurable buffer fault injector 61/26461/3
authorDave Barach <dave@barachs.net>
Thu, 9 Apr 2020 21:24:07 +0000 (17:24 -0400)
committerFlorin Coras <florin.coras@gmail.com>
Mon, 13 Apr 2020 15:54:31 +0000 (15:54 +0000)
commitc74b43c80789f5e437dfe4cc491157b45a7f222e
tree0d149b8147d8225b5a872e709c6845476575fd1f
parentc54162981cdd41d65ed283df36955007552ddffe
buffers: configurable buffer fault injector

When configured at compile time via the cmake
VPP_BUFFER_FAULT_INJECTOR option, the buffer allocator will appear to
fail a certain fraction of the time.

By default, the allocator succeeds 80% of the time. Detailed command
line configuration options are available, but only when the image has
been compiled with cmake option described above:

    vlib { buffer-alloc-success-rate [0.0 ... 1.0]
           buffer-alloc-success-seed <nnnn> }

Modify vlib_buffer_pool_create(...) so 0 is always an invalid buffer
index.

Debug images: add checks for bad buffer index enqueues, and also
verify that f->n_vectors doesn't accidentally map one or more
instances of the frame poison pattern 0xfefefefe.

Type: improvement

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: Iab939858014463d1e664682805013d334d6fcbe5
src/vlib/CMakeLists.txt
src/vlib/buffer.c
src/vlib/buffer_funcs.h
src/vlib/buffer_node.h
src/vlib/config.h.in
src/vlib/main.c
src/vlib/main.h