summaryrefslogtreecommitdiffstats
path: root/src/vcl
AgeCommit message (Collapse)AuthorFilesLines
2018-12-05bapi: add options to have vpp cleanup client registrationFlorin Coras1-5/+8
A client can send a memclnt delete message and ask vpp to cleanup the shared memory queue. Obviously, in this case no delete reply is sent back to the client. Change-Id: I9c8375093f8607680ad498a6bed0690ba02a7c3b Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-12-05ldp: avoid calling write in destructorsFlorin Coras2-5/+8
Change-Id: Ia9c3d7a68a23dc4ab3be06f88fdfb053db422372 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-12-04vcl: cleanup children that use _exit()Florin Coras4-32/+152
Change-Id: Ia56c2698adb0ea7811203844dc4db10e121fbc42 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-12-04vcl: test refactor and improvementsFlorin Coras4-11/+17
Change-Id: I92f415bf253d6e051ec9d94ebeb98f081b2a0293 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-12-03vcl: handle worker process exitFlorin Coras4-15/+41
Change-Id: Ife05d25fd736ae3064f01e974e5aecc5b48de924 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-12-03svm: use explicit svm fifo segment main for slavesFlorin Coras3-4/+7
Change-Id: Id39d64bf1b49345a3dc31c63360569212aba6865 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-11-30vcl: wait for segments with segment handleFlorin Coras4-67/+140
Instead of waiting for notification from binary api. Change-Id: I5ecab857d6bcdbed62d6bb06709570c4cf6b19ea Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-11-30session: segment handle in accept/connect notificationsFlorin Coras1-1/+2
Change-Id: I03884b6cde9d4c38ae13d1994fd8d37d44016ef0 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-11-29vcl: basic support for apps that forkFlorin Coras8-166/+356
- intercept fork and register a new worker with vpp - share sessions between parent and forked child - keep binary api state per worker Change-Id: Ib177517d661724fa042bd2d98d18e777056352a2 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-11-29ldp: basic multiworker supportFlorin Coras3-119/+170
Change-Id: Ia794fa7e15dac02c8607c4cee2f119ad9815c0a8 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-11-27ldp: sid to fd mapper for apps with multiple workersFlorin Coras3-22/+112
Change-Id: I79585cd6b467b007c3eb9a7668387ff3777de46d Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-11-21session: cleanup use of api_client_indexFlorin Coras4-5/+5
Change-Id: I8a680be62ab91d2ccb144641981a635506973a49 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-11-18vcl/session: apps with process workersFlorin Coras5-44/+118
Allow apps to register child processes as app workers. In particular, on fork vcl now registers the child process with vpp as a new worker. Change-Id: I52a65fbc3292962b1f6e1fe0f6153f739e6e0d4a Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-11-17ldp: fixes/improvements to selectFlorin Coras2-94/+84
Change-Id: I3f3e8fce01309da02689c7e9d23cf1b3181e78c9 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-11-14Remove c-11 memcpy checks from perf-critical codeDave Barach3-65/+69
Change-Id: Id4f37f5d4a03160572954a416efa1ef9b3d79ad1 Signed-off-by: Dave Barach <dave@barachs.net>
2018-11-14vcl/ldp: fix pollFlorin Coras3-70/+80
Change-Id: I8eb5546ff8634d5498d8ce5bbc9407bceb9ae3ef Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-10-16vcl: fix bidirectional tests (VPP-1455)Florin Coras3-13/+17
- add epoll dequeued events beyond maxevents to unhandled - filter multiple epoll rx events Change-Id: I618f5f02b19581473de891b3b59bb6a0faad10b5 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-10-14vcl: fix empty epoll returns (VPP-1453)Florin Coras1-0/+3
Change-Id: I0b191ddb749b1aa132c2d33b8359c146b36d27af Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-10-07vcl: cleanup and fixes for vcl test codeFlorin Coras8-979/+958
- better approximate time when test finishes - move common vcl and sock test code to vcl_test.h - overall refactor of variable names Change-Id: I8e6b43fc017cd05a0ddaa3891767a44fb300c09e Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-10-07vcl: use want_tx_evt for ct sessionsFlorin Coras1-5/+4
Change-Id: Id46c651c41b1c633326081583ee3383e27ef475d Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-10-04vcl: fix test throughput computationFlorin Coras1-2/+2
Change-Id: I78260cd1a412e93a5d6686888b6ea17f52245a4a Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-10-02vcl: fix coverity warningFlorin Coras1-1/+1
Change-Id: I08b0244ba8b0e8a463224b39e1f7b878ba8e4e6f Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-09-29vcl: handle old events before blocking in epollFlorin Coras2-3/+14
Change-Id: I3e62c787882d93c3bfb398ed0d04ef56b3a60b2b Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-09-22vcl: remove vcl_eventFlorin Coras8-1062/+0
Change-Id: I0f805ae47f6e9465070a54d85f164bc74877af01 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-09-20session/svm: add want_tx_event flag to fifoFlorin Coras4-30/+22
Have applications use explicit flag to request events from vpp when it transmits from a full fifo. Change-Id: I687c8f050a066bd5ce739d880eaec1f286038d95 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-09-14vcl: keep track of unexpected eventsFlorin Coras4-252/+299
If sessions are marked as blocking, events for other sessions received while waiting for the blocking sessions, are added to a pending list and processed later. Change-Id: Ia6c71006b1c2bcb78af708390da0cd436af397cc Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-09-12vcl: add apis that expos fifo as bufferFlorin Coras6-53/+263
Change-Id: I4bd9c9f73499711e04b38d53daa5c917a4285bf5 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-09-12vcl: improve read and fifo event handlingFlorin Coras3-16/+19
Change-Id: Ic1c51818b8aa8dbd164e70bb3b7471868e5af6f6 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-09-11remove libvlib from libvlibmemoryclient libsMatthew Smith1-1/+1
On CentOS 7, having libvlibmemoryclient link libvlib causes a SEGV when a program or library is run which links against libvlibmemoryclient and dlopen() is called. This is because dlopen() executes any functions with __attribute((constructor)) set. The VLIB_CLI_COMMAND macro creates CLI registration functions that have this attribute set. So CLI registration functions end up being run by applications which are clients of the VPP API. This doesn't occur on ubuntu 16.04, because ld seems to omit shared libraries that were listed on the command line if they are not used to resolve any symbols. Removing the link to libvlib on vlibmemoryclient to fix this problem results in another problem. Tests of libvcl_preload fail when running 'make test'. This happens because libvcl_preload calls dlopen but does not link against libdl. When libvlibmemoryclient had libvlib linked, these errors did not occur since libvlib links libdl. Adjusted the build of libvcl_preload to explicitly link libdl. Change-Id: I271ba2f9226ce1602e1f6c1525f3b093bb0345ed Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2018-09-10session: lock app worker mq for io eventsFlorin Coras3-72/+104
Also fixes vcl client/server stats and closing procedure. Change-Id: I7d5a274ea0a3c8ea13062bf61bf402248dfe1a19 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-09-08vcl: set worker pthread stop keyFlorin Coras3-1/+11
Otherwise the key destructor is not called on pthread_exit. Change-Id: I11e6b9683a926eecd3f40a44aab41924ff9c3101 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-09-08vcl: register workers in orderFlorin Coras4-5/+19
Change-Id: Ibc74e7f7587f8b17fc0dcec20cc4530b9dd4c3ca Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-09-07vcl: refactor test client to support workersFlorin Coras7-639/+588
Change-Id: I7fcfddc2bc7d9a64f8aa0d57ba5d11d325a15ce1 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-09-06vcl/session/svm: fix coverity warningsFlorin Coras1-1/+8
Change-Id: I27532b3ab244dc95955e836a42b229a6e4e32818 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-09-06session: support multiple worker bindsFlorin Coras5-33/+59
Allows app workers to listen on the same session endpoint. Incoming connects are spread across the workers in a round-robin fashion Change-Id: Ib5f5817230d9abc6127a85cdbdcad70d980c0f7f Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-09-04vcl: refactor test apps to use multiple workersFlorin Coras3-324/+344
Change-Id: Ia931377004c2996826a5f504d16c3c934ca3b70d Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-09-02Switch to cmakeDamjan Marion1-0/+9
Change-Id: I982b69390c55b5ffbd744f355efc0aaf425b360c Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-08-30vcl: add support for multi-worker appsFlorin Coras8-594/+905
Add basic support for app registration of multiple workers. LDP does not work with multi-worker apps. Change-Id: I3fc421a2a591a077b275827463f874b261415a63 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-08-28cmake: don't install some test executableDamjan Marion1-1/+2
To be equal in what autotools do... Change-Id: Ib9f1609f803622a364a08e2c73d6c0fae3d85f3f Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-08-28vcl: remove session locksFlorin Coras3-318/+143
Support for multi-worker apps will be added in future patches. This also disables vce. Change-Id: I43b0ed2d5daa2b3d8f8a12fb18bd89dcdfa0619d Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-08-28vcl/session: use mq for bind repliesFlorin Coras2-57/+63
Change-Id: Iac6e1c32cf99c5392a29f7366401b7fc39e463e3 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-08-26cmake: add add_vpp_library and add_vpp_executable macrosDamjan Marion1-11/+8
Change-Id: I1382021a6f616571b4b3243ba8c8999239d10815 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-08-25cmake: add more headers to the install listDamjan Marion1-0/+6
Change-Id: I3a0f48381232fcac1727034aa6d2504a8d1edb04 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-08-25vcl: remove unused binary api handlersFlorin Coras2-296/+73
Change-Id: Ifc36e3934574ba479f71157f797b2d0745b1d100 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-08-24session: add support for multiple app workersFlorin Coras1-1/+1
Refactor session layer to support multiple workers per application. Change-Id: Ie67354688d396449d14bbbb8c56050206e307cd8 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-08-17CMake as an alternative to autotools (experimental)Damjan Marion1-0/+53
Change-Id: Ibc59323e849810531dd0963e85493efad3b86857 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-08-17vcl: unset fifo events only in read/writeFlorin Coras1-57/+21
Avoids accumulation of io event messages when the receiver is slow to read. Change-Id: I3a713d339a6ac0781c010be1fbad5a7963ab02c6 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-08-10vcl: support for eventfd mq signalingFlorin Coras8-599/+1063
- support eventfd based mq signaling. Based on configuration, vcl epoll/select can use either condvars or epoll on mq eventfds. - add vcl support for memfd segments - vpp explicitly registers cut-through segments with apps/vcl - if using eventfd, make ldp allow one call to libc_epoll_create. Needed for the message queue epfd - update svm_queue_t to allow blocking calls with eventfd signaling. Change-Id: I064151ac370bbe29bb16c968bf4e3659c8286bea Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-08-02vcl: fix debug messages output before heap cfgFlorin Coras1-5/+7
Change-Id: Ifaef7ab2bc2fd4f5b4822d894facbcae01849031 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-07-31vcl: add read/write udp supportFlorin Coras5-72/+111
Change-Id: Ie6171c12055cde6915856de340839f5da1b1b1da Signed-off-by: Florin Coras <fcoras@cisco.com>