summaryrefslogtreecommitdiffstats
path: root/src/vcl
AgeCommit message (Collapse)AuthorFilesLines
2021-03-29svm session vcl: per app rx message queuesFlorin Coras2-2/+21
Add option to use per app private segments for app to vpp message queues, as opposed to exposing internal message queues segment. When so configured, internal message queues are still polled by the session queue node but external app message queues are handled by a new input node (appsl-rx-mqs-input) that runs in interrupt state. Signaling of the node, when mqs receive new messages, is done through eventfds epolled by worker epoll input nodes. Type: feature Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Iffe8ce5a9944a56a14e6d0f492a850cb9e392d16
2021-03-28vcl: fix only first epoll listen session be registerednandfan1-14/+2
If configure listen port more than 1 with epoll in nginx, only first listen port can be registered successed in nginx worker process. Type: fix Signed-off-by: nandfan <fanyufei521@outlook.com> Change-Id: Iec2e058ee972a2cd5b2d1d7d20d373dc17084ce1
2021-03-22vcl: fix libc epoll pwait starvedwanghanlin2-1/+5
We call vls_epoll_wait with 0 timeout to process unhandled_evts_vector in ldp_epoll_pwait_eventfd. But vls_epoll_wait will then call vppcom_epoll_wait_eventfd to process events in event queue. If there are continuous events to be handled, then libc_epoll_pwait have no chance to be called. Type: fix Signed-off-by: wanghanlin <wanghanlin@corp.netease.com> Change-Id: Ia4f61d0d438a3475bfde9f6715805274671d4e75
2021-02-23vcl: segment index leak on attachFlorin Coras1-1/+1
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: If8840d455f8841264136adb19cc9a2046ba37b11
2021-02-23vcl: fix coverity warningFlorin Coras1-7/+9
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Id9f922eafe4a68661d2858d72fc548a372e9596a
2021-02-22vcl: fix vls_intercept_sigchld_handler be called recursivelynandfan1-0/+5
The old_sa is rewrite with vls_intercept_sigchld_handler when parent process fork child second time, parent process will call vls_intercept_sigchld_handler recursively when received child signal. Type: fix Signed-off-by: nandfan <fanyufei521@outlook.com> Change-Id: Ia58a254d58058489aa2d91b76a3b3cab1e38f802
2021-02-22vcl: cleanup fifos detached from segmentsFlorin Coras2-0/+34
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I412024731c1f561680736ad7bfabb99b595e3dff
2021-02-22vcl: support sockopt of SO_REUSEPORT and SO_DOMAINwanghanlin3-0/+26
Type: fix Signed-off-by: wanghanlin <wanghanlin@corp.netease.com> Change-Id: I800cfffb07bf7d4c4d1454b73febdba03f7d6b75
2021-02-18vcl: epoll out deq notifications only if fifo existsFlorin Coras1-4/+7
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ia37d8474224f6074826c9ffb82feb919b2ef52f7
2021-02-10vcl: validate seg handle on migrate only if neededFlorin Coras1-5/+10
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I3c15a465f84f2ceb6bd5f1c459899824d4bc1c90
2021-02-09tls: dtls initial implementationFlorin Coras3-25/+34
Type: feature Basic dtls transport protocol implementation that relies on openssl wire protocol implementation. Retries/timeouts not yet supported. To test using vcl test apps, first ensure all arp entries are properly resolved and subsequently: server: vcl_server -p dtls 1234 client: vcl_client -p dtls <server-ip> 1234 -U -N 2000000 -T 1460 -X Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I04b4516a8fe9ce85ba230bcdd891f33a900046ed
2021-02-05session svm: non blocking mqFlorin Coras1-103/+33
Avoid synchronizing producers and the consumer. Instead, only use mutex or spinlock (if eventfds are configured) to synchronize producers. Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ie2aafbdc2e07fced5d5e46ee2df6b30a186faa2f
2021-02-01vcl: remove verbose output from vcl iperf testsFlorin Coras1-8/+8
For high throughput tests the amount of debug output can be considerable. Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Icc9f2092918ebca432502af960da11b154818a02
2021-01-28vcl: support set/get vrf attributeFlorin Coras3-0/+24
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I011faa52939d44bdc90de69ad381dc1eea8c8eb3
2021-01-28vcl: fix select want deq ntf for ct sessionsFlorin Coras1-32/+35
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I2d008a12da6c6e68ad8955a638b44d09e4febd8d
2021-01-28svm vcl: add helper fn that discovers mqs in segmentFlorin Coras4-9/+37
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I1b083ee793a7cf91b1001bfe88353fa5e6515c42
2021-01-28vcl: honor time wait in eventfd epoll waitFlorin Coras1-11/+35
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I4bfdeb4bfbdcf333cfd4047a80edd04e35a371fc
2021-01-25svm: add custom q implementation for mqFlorin Coras3-6/+5
Add separate queue implementation for the message queue as it's custom tailored for fifo segments as opposed to binary api. Also move eventfds to the private data structures. Type: refactor Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I6df0c824ecd94c7904516373f92a9fffc6b04736
2021-01-12vcl: fix session_handle_to_vlsh_table update after session migratewanghanlin1-7/+48
Type: fix Signed-off-by: wanghanlin <wanghanlin@corp.netease.com> Change-Id: I6698749163b0ed38093d8439e94b18b6841dc6ce
2021-01-11vcl: fix deadlock in rpcwanghanlin2-71/+134
Worker thread A send rpc to worker thread B with vls_table_lock when worker thread B try to lock vls_table_lock, so unlock it temporarily. Add worker_rpc_lock to synchronize rpc message among workers to prevent waiting for each other deadly. Add timeout for rpc response to prevent hanging when VPP exit/crash. Type: fix Signed-off-by: wanghanlin <wanghanlin@corp.netease.com> Change-Id: I675f1fe76673ede09107f6eeaaa0eda8bbfc6e61
2021-01-07vcl session: switch to generic cert key apisFlorin Coras5-136/+172
Remove the deprecated tls apis. Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ia1e12bd813671146f0aca22e83d04c23ac13e595
2021-01-06vcl: allow all workers to block on apiFlorin Coras2-32/+53
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Id94cf2aeae8167868d5f96534224759c1ef6f837
2020-12-29svm vcl: allow random offsets for fifo segments in appsFlorin Coras1-9/+5
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I1658a9c19d8eae4c9a42c0a111d4ad343b8eb8a4
2020-12-29svm: allow mq attachments at random offsetsFlorin Coras5-28/+77
Type: feature Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ic373cd2c11272da539eb4b0db27227f36f2f9688
2020-12-24svm: split fifo into private and shared structsFlorin Coras3-73/+89
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Id8e77e8b2623be719fd43a95e181eaa5b7df2b6e
2020-12-14misc: refactor clib_bitmap_foreach macroDamjan Marion3-12/+11
Type: refactor Change-Id: I077110e1a422722e20aa546a6f3224c06ab0cde5 Signed-off-by: Damjan Marion <damarion@cisco.com>
2020-12-14misc: move to new pool_foreach macrosDamjan Marion3-8/+8
Type: refactor Change-Id: Ie67dc579e88132ddb1ee4a34cb69f96920101772 Signed-off-by: Damjan Marion <damarion@cisco.com>
2020-12-11vcl: fix listener session close problemwanghanlin1-1/+1
Type: fix Signed-off-by: wanghanlin <wanghanlin@corp.netease.com> Change-Id: I34ac04f05b84b271679aafc253f1606f11e29835
2020-12-11vcl: fix crash problem for invalidation of vls_table_lockwanghanlin1-6/+5
Type: fix Signed-off-by: wanghanlin <wanghanlin@corp.netease.com> Change-Id: I0649f4d5adb5fa5b407431ea23982f2ad87fb657
2020-11-26vcl: avoid coalescing dgrams on readFlorin Coras1-2/+2
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I035f1ef26202bbcf918548cbaa3cdbc17944bf8a
2020-11-25session: add startup option to poll in mainFlorin Coras1-0/+1
Type: improvement Needed to support multi-worker tests Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I68d5590cece24a744513dc6c324dfb2861a38a94
2020-11-24tests: remove bond, pipe, session and api_namespace from vpp_papi_providerJakub Grajciar1-5/+5
Type: refactor Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com> Change-Id: I5052fc1fd82b5d17c1ed66fee5185addf60b9eb6
2020-11-19vcl: stop tracking vpp event queues and thread indexFlorin Coras5-60/+21
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Icbee02a39650bc792532adc714bcf4f47f3fbe59
2020-11-10vcl: remove unused configsFlorin Coras2-20/+1
Type: refactor Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ia8698c7ba63fc549f821863bb54fe72cc3a8d5be
2020-11-09vcl: remove support for shm api connectionsFlorin Coras4-54/+26
Session layer only supports bapi with socket transport or app socket api attachements. Going forward this will be further restricted to the latter. Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ib368cf2ce92bbca192cca977664800879cd4058e
2020-11-09session: default to using memfd mq segmentsFlorin Coras1-2/+2
First step towards deprecating the use of binary api's segment for mq allocation. Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I9d3d17e4d406575d64e0426bb65465130a84980a
2020-10-29vcl: support fifo segments with ct sessionsFlorin Coras1-7/+12
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Icf0194f569da88f26a4cba29d8fe75a0bddfc144
2020-10-29vcl session: minimize ct io eventsFlorin Coras1-4/+10
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ic4072fbc182fff38a28b415be0bb16f0559a4064
2020-10-29vcl: fix epoll fd cleanupFlorin Coras1-1/+1
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I2886155495ac0e518b9dc09856132cc2f6843503
2020-10-27vcl: postpone unhandled ctrl events if neededFlorin Coras2-63/+117
Unhandled control events, i.e., events delivered outside of epoll/select loops, that need to be propagated to apps should be postponed such that epoll and select can later deliver them. Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I3d05e154382631a16a19e71494c2d92c35dacb70
2020-10-26vcl: avoid epoll cleanup before app closeFlorin Coras1-69/+74
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I09f9faab72e6b77c975b8b79694081216c6ba115
2020-10-21vcl: wait for sendto to connect if neededFlorin Coras1-8/+15
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I39948b046c79dea1b034619e1eaa22dd8a4997fb
2020-10-20vcl: confirm reset on transport cleanupFlorin Coras1-3/+16
Type: fix Change-Id: Ife579f305409bf987639634213008a7d7f35acd7 Signed-off-by: Florin Coras <fcoras@cisco.com>
2020-10-20vcl: more session struct cleanupFlorin Coras3-104/+108
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I8e466e789c860caaa55f67095a57fc6ab670f32b
2020-10-20vcl: convert vep variables into flagsFlorin Coras4-66/+56
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ief017abc4879bc928746d9f5b9d2cfe04da89bd3
2020-10-19vcl: cleanup read and write readyFlorin Coras3-65/+48
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ib6afedf24c7bd7cc0d98bb324a83517030a05aa7
2020-10-19hsa: cleanup sock server testFlorin Coras1-1/+1
Type: refactor Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I769174f0023d00a59bc5a03cf0a05996b616742b
2020-10-16vcl: remove accept state and rename connect to readyFlorin Coras2-15/+10
Type: refactor Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I57fcc6f9c154a6f83e0d59873b76c2e380e6f90a
2020-10-15vcl: refactor session state enumFlorin Coras4-159/+159
Only allow one state instead of using flags. Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I08ffccbf8c3f6e2f61533996bb36c799cbc931e7
2020-10-14vcl: set STATE_UPDATED state when connect with non-blocking socket!fanyf1-1/+4
State set to STATE_UPDATED to ensure the session is not assumed to be open and to also allow the app to close it prior to vpp's connected reply! Type: fix Signed-off-by: fanyf <fanyufei521@outlook.com> Change-Id: I7a6d0914599cb9296d112205dac725ecd11a5d0f