vcl: use events for epoll/select/read/write 28/13528/36
authorFlorin Coras <fcoras@cisco.com>
Tue, 17 Jul 2018 17:46:29 +0000 (10:46 -0700)
committerFlorin Coras <florin.coras@gmail.com>
Fri, 27 Jul 2018 17:40:29 +0000 (17:40 +0000)
commit54693d23307ce8944a4d97379efd3bd4dcf0485c
tree14ee8cded17a87405de9c0cc9ba3fe7370aabc7f
parent5df580eec93c0c6fc07dd38f8713f671565b9c38
vcl: use events for epoll/select/read/write

Have vcl poll and wait on the event message queues as opposed to
constantly polling the session fifos. This also adds event signaling to
cut through sessions.

On the downside, because we can't wait on multiple condvars, i.e., when
we have multiple message queues because of cut-through registrations, we
do timed waits.

Change-Id: I29ade95dba449659fe46008bb1af502276a7c5fd
Signed-off-by: Florin Coras <fcoras@cisco.com>
23 files changed:
src/svm/message_queue.c
src/svm/message_queue.h
src/svm/svm_fifo.c
src/vcl/ldp.c
src/vcl/sock_test_client.c
src/vcl/vcl_bapi.c
src/vcl/vcl_cfg.c
src/vcl/vcl_private.h
src/vcl/vcl_test.h
src/vcl/vcl_test_client.c
src/vcl/vcl_test_server.c
src/vcl/vppcom.c
src/vcl/vppcom.h
src/vnet/session/application.c
src/vnet/session/application_interface.c
src/vnet/session/application_interface.h
src/vnet/session/session.c
src/vnet/session/session.h
src/vnet/session/session_api.c
src/vnet/session/session_cli.c
src/vnet/session/session_lookup.c
src/vnet/session/session_node.c
test/test_vcl.py