summaryrefslogtreecommitdiffstats
path: root/src/vcl
AgeCommit message (Collapse)AuthorFilesLines
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>
2018-07-27vcl: use events for epoll/select/read/writeFlorin Coras10-695/+1023
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>
2018-07-18Add config option to use dlmalloc instead of mheapDave Barach4-8/+8
Configure w/ --enable-dlmalloc, see .../build-data/platforms/vpp.mk src/vppinfra/dlmalloc.[ch] are slightly modified versions of the well-known Doug Lea malloc. Main advantage: dlmalloc mspaces have no inherent size limit. Change-Id: I19b3f43f3c65bcfb82c1a265a97922d01912446e Signed-off-by: Dave Barach <dave@barachs.net>
2018-07-17session: use msg queue for eventsFlorin Coras3-20/+19
Change-Id: I3c58367eec2243fe19b75be78a175c5261863e9e Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-06-28vcl: move binary api and cfg to separate filesFlorin Coras5-1951/+2077
Change-Id: Ib88d703bb7d4b170059960b0688352c90c5fcc39 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-06-28vcl: refactor vcl sessionFlorin Coras1-189/+185
Change-Id: Idcba72fd84128547718dd32858e8c728925a6b1d Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-06-27vcl: refactor debuggingFlorin Coras2-1800/+755
Change-Id: I82e5239239ea24bdc97b1d59946ca0bba739f248 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-06-25VCL: Refactor VCL test (part 1)Dave Wallace5-322/+2161
Change-Id: I6a326e24ed953b1cef63bd4010a3bedd6c4a7b1c Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2018-06-19VCL: Fix session peer and local addressesDave Wallace1-6/+20
VPP-1302: VCL does not provide local and peer addresses Change-Id: I7ff12e57799796dfeb030b181b4c24da07dc12eb Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2018-06-19VCL: refactor async & spinlocksDave Wallace5-544/+577
- Consolidate async code. - Add macros for spinlocks to improve readability. Change-Id: I2e0fd2b82ea76987aaf298a183d816c7d2ee0867 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2018-05-31fix socket send() return size checkqchang1-1/+1
Change-Id: I098c671607c75cb34d04f421b4d16b73f7b47392 Signed-off-by: qchang <qing.chang1@huawei.com>
2018-04-12VCL IOEvent external API callbackKeith Burns (alagalah)6-90/+367
Change-Id: I417357b00c43b27872aa3f681335bdc1ef574eca Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com> Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2018-04-12Fixes for 'make UNATTENDED=yes CC=clang CXX=clang verify'Neale Ranns1-4/+8
Change-Id: I994649761fe2e66e12ae0e49a84fb1d0a966ddfb Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-03-26VCL: add IPv6 to socket_test.sh and make testDave Wallace4-41/+188
Change-Id: If3827828062a46f1cce43642535333f677f06e62 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2018-03-19VCL: Fix Coverity CID183003Dave Wallace1-1/+1
*** CID 183003: Program hangs (LOCK) /src/vcl/vppcom.c: 2988 in vppcom_session_accept() Change-Id: I123b73198d305fb0226516942caa410d3647a6bc Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2018-03-19VCL: Fix Coverity CID183009Dave Wallace1-1/+1
Change-Id: I0233b20eb4c7dcb325e15b97a22ecd54200f6fde Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2018-03-14VCL: Handle epoll HUP events in sock_test_serverDave Wallace1-1/+10
Change-Id: I7b13319228c498a565f8556b73628e7ff3b106c4 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2018-03-13VCL: Fix race condition in event thread functionDave Wallace1-11/+17
Change-Id: I8586faee0b3a40932cd711b60cebe1a23ff82a56 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2018-03-09VCL API for external callback for listener/connect eventKeith Burns (alagalah)6-22/+312
Change-Id: Ic59355683b581945d10a2df97d9b2deae87a998e Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2018-03-09VCL: add event registration to listen session in select()Dave Wallace1-5/+27
Change-Id: Ie2e8f4ec3a7ec1018e5f9ca6f28f8cb18beaa814 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2018-03-08VCL event handling changesKeith Burns (alagalah)3-1/+27
- added vce_get_event_handler() - added check for event before blocking on mutex in vppcom_session_accept() Change-Id: I8e19ea5fcbaa40279cb28152b9923ca8f1328670 Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2018-03-08VCL refactoringKeith Burns (alagalah)3-48/+55
- simplified event handling and unregister - removed fixed need to bit flip event hash key - added spinlock for client_session_fifo (was using sessions_lockp) - removed redundant vars Change-Id: I3c7645da660fb5560efdc4e9347e105df9650a16 Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2018-03-08VCL: cleanup namespace_secret env-var cfg code.Dave Wallace1-20/+1
Change-Id: I9de8dd822494abe1b8701a72a9b8bede34dea8dc Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2018-03-06VCL registration handler added to session for polling sessionsKeith Burns (alagalah)1-6/+9
Change-Id: I5f0f3b07a7aa3f243c3d44a9a15cf0670dbb2d46 Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2018-03-05VCL async event handlerKeith Burns (alagalah)3-202/+651
- provides async handling of events such as accept/connect Change-Id: Id95947237ef16629371b3c99822059d423e2f918 Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2018-02-24LDP: Refactor epoll_ctl wrapper.Dave Wallace4-48/+348
- Add AF_UNIX transaction to sock_test_client/server echo test to verify mixed epoll ldp implementation. - Misc cleanup / refactoring of ldp code. - Fix LDP_DEBUG in test/socket_test.sh Change-Id: Ib524c824728f109007d8c4d07d74603b6c687902 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2018-02-23VCL/LDP: Suppress trace output unless debug is enabled.Dave Wallace2-26/+32
Change-Id: Iaef2fe4b8c6b57d54ef6309423c9a0acba8a2f89 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2018-02-22VCL: Fix for vppcom_session_listen() q_len <= 0 crashKeith Burns (alagalah)1-0/+3
Change-Id: I089dd3855fc21b26a125ee392c7548d44b5732b8 Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2018-02-20vppcomm refactorKeith Burns (alagalah)1-428/+245
- server_[tx|rx]_fifo renamed to [tx|rx]_fifo - is_cut_thru etc no longer required, vpp session layer works it out - logic to flip tx/rx fifos in vppcom no longer required - allocation of memory in vppcom no longer required (if(0) at moment for testing) - clean up of some uneeded vars - fixstyle Change-Id: I266561a6e4b08edb875c98582b22616c295d5a81 Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2018-02-19VCL: config api prefix using env var.Dave Wallace2-21/+95
- Configure vpp api prefix using VCL_API_PREFIX environment variable. - Prepend api prefix to vpp api filename when connecting to vpp. - Fix stale vcl_cfg ptr after heap allocation. - Cleanup misleading warning messages wrt. reading the vcl config file. Change-Id: I908c9b567ff4f6f0c21ae43a4627a1a3202a3290 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2018-02-16VPP modified some state checking logicKeith Burns (alagalah)1-72/+72
Change-Id: I5daff79a31f2db33ed55edd54ce043a61f6c6209 Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2018-02-09LD_PRELOAD: Refactor nomenclature (vcom -> ldp).Dave Wallace5-427/+427
Change-Id: Id3891fe2873b631f8f69c1ca2905968130678561 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2018-02-08VCL: remove vrf from vppcom api.Dave Wallace5-36/+14
Change-Id: I6d91c8051de786fb8781cd0750ea9c350036b306 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2018-02-07Fix bug with glibc epoll fdKeith Burns (alagalah)1-1/+3
Change-Id: I0b8ebe2c47fdd1e23a91723a7b454a0c1c8b996e Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2018-02-06VCL: Fix type in trace output.Dave Wallace1-2/+2
Change-Id: I7834e676c23a697a12a6e06111c68450ba787fc9 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2018-02-05session: segment manager refactorFlorin Coras1-6/+11
- use valloc as a 'central' segment baseva manager - use per segment manager segment pools and use rwlocks to guard them - add session test that exercises segment creation - embed segment manager properties into application since they're shared - fix rw locks Change-Id: I761164c147275d9e8a926f1eda395e090d231f9a Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-02-02Clean up for vcl.am, making vppcom.h C++ awareKeith Burns (alagalah)1-0/+13
Change-Id: I2548ebd37e16bed50b5c8046b728415a341413e3 Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2018-01-29vcl: fix VPPCOM_ATTR_GET_LIBC_EPFD elogFlorin Coras1-10/+4
Change-Id: Idc3e8f4ee69d8871534a94d4f485e695fac81756 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-01-25session: add support for memfd segmentsFlorin Coras1-2/+1
- update segment manager and session api to work with both flavors of ssvm segments - added generic ssvm slave/master init and del functions - cleanup/refactor tcp_echo - fixed uses of svm fifo pool as vector Change-Id: Ieee8b163faa407da6e77e657a2322de213a9d2a0 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-01-25Event log entries for VCLKeith Burns (alagalah)1-1/+258
Change-Id: I8303859ef65552f64c94525c9b1112ec9a1a88d0 Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2018-01-20VCL/LD_PRELOAD: Fix unfiltered debug output.Dave Wallace2-5/+4
Change-Id: I625b219fe6ffd21f87a163244569a4075cd432a4 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2018-01-19LD_PRELOAD: Fix Coverity Warning CID 182227Dave Wallace1-1/+1
Change-Id: I2698a59db29cbace49335e035478b5f456d0b06a Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2018-01-19Elog entries for VCLKeith Burns (alagalah)1-2/+225
Change-Id: Ica8470aaf581e69a74fe4f0fc0296ff3fb6f87d3 Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2018-01-18LD_PRELOAD: Fix coverity warningsDave Wallace1-4/+13
** CID 182185: Memory - illegal accesses (UNINIT) ** CID 182184: Memory - illegal accesses (UNINIT) ** CID 182183: (UNINIT) ** CID 182182: Memory - illegal accesses (UNINIT) ** CID 182181: Memory - illegal accesses (UNINIT) ** CID 182180: Uninitialized variables (UNINIT) ** CID 182179: Null pointer dereferences (REVERSE_INULL) ** CID 182178: Uninitialized variables (UNINIT) ** CID 182177: Uninitialized variables (UNINIT) Change-Id: I33e043572db493eef58d85c5096ceac5a7d41c7a Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2018-01-18Event log entries for VCLKeith Burns (alagalah)1-1/+300
Change-Id: I288ecd7f39422ed900a5c6fbaf9c939ab5c06880 Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2018-01-17LD_PRELOAD: stateless LDPDave Wallace9-7369/+3776
- Refactor LDP to be stateless. - Use upper bit of fd to identify tag as VCL session. - Clean up debug output. - Add VCOM config env vars for app name and sid bit. - Add VCL get/set attributes - Add VCL poll implementation. Change-Id: I4603ae88254c460a024fdb79fe91c6d1ef9bc7b9 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2018-01-17ELOG additions for VCLKeith Burns (alagalah)1-41/+148
Change-Id: I61557f9ad9ca2a033ba01bd25a7a8cd4d5ce092e Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>